# Cyrene Plugins Cyrene AI 的插件系统:社区可扩展工具 SDK + Plugin Manager 服务。 ## 结构 ``` ├── sdk/ # 插件 SDK (Plugin, Tool, HostAPI 接口 + 类型定义) ├── manager/ # ToolRegistry (调用日志环形缓冲区) + PluginManager (生命周期管理) ├── calculator/ # 内置插件 (13 个) ├── crypto/ # - 加密/哈希 ├── datetime/ # - 日期时间 ├── file/ # - 文件操作 ├── http/ # - HTTP 请求 ├── iot_control/ # - IoT 设备控制 ├── iot_query/ # - IoT 设备查询 ├── json/ # - JSON 处理 ├── markdown/ # - Markdown 渲染 ├── random/ # - 随机数生成 ├── text/ # - 文本处理 ├── web_fetch/ # - 网页抓取 ├── web_search/ # - 网页搜索 ├── cmd/ │ └── plugin-manager/ # Plugin Manager 服务 (REST API, 端口 8094) └── go.mod ``` ## 快速开始 ```bash git clone git@git.yeij.top:AskaEth/Cyrene-Plugins.git cd Cyrene-Plugins go build ./... ``` ### 运行 Plugin Manager ```bash go run ./cmd/plugin-manager/ # 监听 :8094,提供 REST API 管理插件 ``` ### API 端点 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/v1/plugins` | 列出所有插件 | | GET | `/api/v1/plugins/:id` | 插件详情 | | POST | `/api/v1/plugins/:id/enable` | 启用插件 | | POST | `/api/v1/plugins/:id/disable` | 禁用插件 | | POST | `/api/v1/plugins/:id/reload` | 热重载 | | DELETE | `/api/v1/plugins/:id` | 卸载 | | GET | `/api/v1/plugins/:id/tools` | 列出插件工具 | | GET | `/api/v1/tools` | 列出所有工具 | | POST | `/api/v1/tools/:id/execute` | 执行工具 | | GET | `/api/v1/health` | 健康检查 | ## 开发插件 实现 `sdk.Plugin` 接口(`Metadata`, `Init`, `Start`, `Stop`, `Health`, `Tools`),然后在 `cmd/plugin-manager/main.go` 中注册。 ```go import "git.yeij.top/AskaEth/Cyrene-Plugins/sdk" type MyPlugin struct{} func (p *MyPlugin) Metadata() sdk.PluginMetadata { return sdk.PluginMetadata{Name: "my-plugin", Version: "1.0.0"} } // ... 实现其余接口 ``` ## 与 Cyrene 主项目的集成 主项目 `ai-core` 通过 `go.mod` replace 指令引用本仓库进行本地开发: ``` replace git.yeij.top/AskaEth/Cyrene-Plugins => ../../../cyrene-plugins ``` ## 许可证 MIT