This is NOT a breaking change.BaseToolV2 is an abstract class that implements the Tool interface — plain Tool implementations continue to work exactly as before. However, they do not support the hooks and policies system (e.g., HcsAuditTrailHook, MaxRecipientsPolicy, RejectToolPolicy). To enable those features, migrate your tool to BaseToolV2.
Extending BaseToolV2 splits execution into a 7-stage lifecycle that hooks and policies tap into automatically. For complete step-by-step instructions, see the Python ToolV2 Migration Guide.
def tool(context: Context) -> Tool: return Tool( method=MY_TOOL, name="My Custom Tool", description=my_tool_prompt(context), parameters=MyToolParams, execute=my_tool_execute, # all logic in one function )
To create a plugin to be use with the Hedera Agent Kit, you will need to create a plugin in your own repository, publish an npm package, and provide a description of the functionality included in that plugin, as well as the required and optional parameters.Once you have a repository, published npm package, and a README with a description of the functionality included in that plugin in your plugin’s repo, as well, add it to the Hedera Agent Kit by forking and opening a Pull Request that includes:
Include the name, a brief description, and a link to the repository with the README, as well the URL linked to the published npm package.
If you would like to include your plugin functionality in the Hedera plugin built for ElizaOS simply make a PR to add your plugin name to the plugins array in the Hedera ElizaOS plugin where the configuration is initiated. The hedera-agent-kit adaptor architecture means your plugin functionality will be usable with no additional configuration needed.
Please also reach out in the Hedera Discord in the Support > developer-help-desk channel or create an Issue in this repository for help building, publishing, and promoting your plugin.
## Plugin NameThis plugin was built by <?> for the <project, platform, etc>. It was built to enable <who?> to <do what?>_Feel free to include a description of your project and how it can be used with the Hedera Agent Kit. ### Installation```bashnpm install <plugin-name>```### Usage```javascriptimport { myPlugin } from '<plugin-name>';``````javascript const hederaAgentToolkit = new HederaLangchainToolkit({ client, configuration: { context: { mode: AgentMode.AUTONOMOUS, }, plugins: [coreTokenPlugin, coreAccountPlugin, coreConsensusPlugin, coreAccountQueryPlugin, coreConsensusQueryPlugin, coreTokenQueryPlugin, myPlugin], }, });```### FunctionalityDescribe the different tools or individual pieces of functionality included in this plugin, and how to use them.**Plugin Name**_High level description of the plugin_| Tool Name | Description |Usage || ----------------------------------------------- | -------------------------------------------------- |--------------------------------------------------------- || `YOUR_PLUGIN_TOOL_NAME`| What it does | How to use. Include a list of parameters and their descriptions|