diff --git a/backend/ai-core/cmd/main.go b/backend/ai-core/cmd/main.go index 5036d9a..0085202 100644 --- a/backend/ai-core/cmd/main.go +++ b/backend/ai-core/cmd/main.go @@ -1,3 +1,5 @@ +//go:generate go run gen_plugins.go + package main import ( diff --git a/backend/plugins/README.md b/backend/plugins/README.md index 3c7504e..8bd3053 100644 --- a/backend/plugins/README.md +++ b/backend/plugins/README.md @@ -1 +1,54 @@ -# 第三方插件目录\n\n在此目录下创建子文件夹,每个文件夹一个插件。\n插件会被 Plugin Manager 自动扫描发现。\n\n示例结构:\n plugins/\n my-hello/\n plugin.json # 插件声明\n main.go # 插件入口\n\n## plugin.json 格式\n\n```json\n{\n "name": "my-hello",\n "version": "1.0.0",\n "author": "your-name",\n "description": "我的第一个插件",\n "struct": "HelloPlugin"\n}\n```\n +# 第三方插件目录 + +在此目录下创建子文件夹,每个文件夹一个插件。 + +## 目录结构 + +``` +plugins/ + my-hello/ + plugin.json # 插件声明 + main.go # 插件入口 + ... +``` + +## 注册插件(3 步) + +Go 不支持运行时动态加载,需要通过代码生成注册: + +**1. 编辑 `ai-core/plugins.json`**,添加插件条目: + +```json +{ "name": "my-hello", "import": "你的模块路径", "struct": "HelloPlugin" } +``` + +**2. 运行代码生成器**: + +```bash +cd backend/ai-core && go run cmd/gen_plugins.go +``` + +这会生成 `cmd/plugins_gen.go`,自动包含所有插件的 import 和注册代码。 + +**3. 重新编译 ai-core**: + +```bash +cd backend/ai-core && go build -o main.exe ./cmd/ +``` + +## plugin.json 格式 + +每个插件目录下的声明文件: + +```json +{ + "name": "my-hello", + "version": "1.0.0", + "author": "your-name", + "description": "我的第一个插件" +} +``` + +## 插件开发 + +详见 [docs/api/plugin-development.md](../../docs/api/plugin-development.md)