插件开发
扩展 AxonCog 的功能
插件结构
# my_plugin/
├── Cargo.toml
├── src/
│ └── lib.rs
└── plugin.toml
示例代码
// src/lib.rs
use axoncog_plugin::{Plugin, Tool, ToolResult;
pub struct MyPlugin;
impl Plugin for MyPlugin {
fn name(&self) -> &str {
"my_plugin"
}
fn tools(&self) -> Vec<Box<dyn Tool>> {
vec![Box::new(MyTool)]
}
}
pub struct MyTool;
impl Tool for MyTool {
fn name(&self) -> &str {
"my_tool"
}
fn execute(&self, params: Value) -> Result<ToolResult> {
// 你的实现
Ok(ToolResult::success("Done"))
}
}
plugin_register!(MyPlugin);