文档/插件开发

插件开发

扩展 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);