Skip to content

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.

class LoggingPlugin implements Plugin {
get name(): string {
return 'logging-plugin'
}
initAgent(agent: LocalAgent): 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]
}
}
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:.

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.

| Parameter | Type | Description | | --------- | ------------ | --------------------------------------------------- | | agent | LocalAgent | The agent instance this plugin is being attached to |

void | Promise<void>


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.

Tool[]

Array of tools to register with the agent