Plugin
Defined in: src/plugins/plugin.ts:51
Interface for objects that extend agent functionality.
Plugins provide a composable way to add behavior changes to agents by registering
hook callbacks in their initAgent method. Each plugin must have a unique name
for identification, logging, and duplicate prevention.
Examples
Section titled “Examples”class LoggingPlugin implements Plugin { get name(): string { return 'logging-plugin' }
initAgent(agent: AgentData): void { agent.addHook(BeforeInvocationEvent, (event) => { console.log('Agent invocation started') }) }}
const agent = new Agent({ model, plugins: [new LoggingPlugin()],})class MyToolPlugin implements Plugin { get name(): string { return 'my-tool-plugin' }
getTools(): Tool[] { return [myTool] }}Properties
Section titled “Properties”readonly name: string;Defined in: src/plugins/plugin.ts:58
A stable string identifier for the plugin. Used for logging, duplicate detection, and plugin management.
For strands-vended plugins, names should be prefixed with strands:.
Methods
Section titled “Methods”initAgent()
Section titled “initAgent()”initAgent(agent): void | Promise<void>;Defined in: src/plugins/plugin.ts:68
Initialize the plugin with the agent instance.
Implement this method to register hooks and perform custom initialization. Tool registration from getTools is handled automatically by the PluginRegistry.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
agent | AgentData | The agent instance this plugin is being attached to |
Returns
Section titled “Returns”void | Promise<void>
getTools()?
Section titled “getTools()?”optional getTools(): Tool[];Defined in: src/plugins/plugin.ts:76
Returns tools provided by this plugin for auto-registration. Implement to provide plugin-specific tools.
Returns
Section titled “Returns”Tool[]
Array of tools to register with the agent