63 lines
1.3 KiB
Markdown
63 lines
1.3 KiB
Markdown
# 第三方插件目录
|
||
|
||
将插件文件夹放入此目录,运行代码生成器即可自动注册——无需手动编辑 `plugins.json`。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
plugins/
|
||
my-hello/
|
||
go.mod # Go 模块声明(module xxx)
|
||
plugin.json # 插件声明(name, struct)
|
||
main.go # 插件入口
|
||
...
|
||
```
|
||
|
||
## 注册(2 步)
|
||
|
||
**1. 放入插件**:将插件目录复制到 `backend/plugins/` 下。
|
||
|
||
**2. 运行生成器**:
|
||
|
||
```bash
|
||
cd backend/ai-core/cmd && go run gen_plugins.go
|
||
```
|
||
|
||
生成器会自动:
|
||
- 扫描 `plugins/` 下所有子目录
|
||
- 读取每个目录的 `plugin.json` 和 `go.mod`
|
||
- 生成 `plugins_gen.go`(含 import + 注册代码)
|
||
- 自动向 `go.mod` 添加 `require` + `replace` 指令
|
||
|
||
**3. 重新编译**:
|
||
|
||
```bash
|
||
cd backend/ai-core && go build -o main.exe ./cmd/
|
||
```
|
||
|
||
或使用 `go generate`:
|
||
|
||
```bash
|
||
cd backend/ai-core && go generate ./cmd/...
|
||
```
|
||
|
||
## plugin.json 格式
|
||
|
||
```json
|
||
{
|
||
"name": "my-hello",
|
||
"struct": "HelloPlugin"
|
||
}
|
||
```
|
||
|
||
| 字段 | 必填 | 说明 |
|
||
|------|------|------|
|
||
| name | ✅ | 插件唯一名称 |
|
||
| struct | ✅ | 插件结构体名(实现 Plugin 接口的那个类型) |
|
||
|
||
`import` 路径自动从 `go.mod` 的 `module` 声明读取,无需手写。
|
||
|
||
## 插件开发
|
||
|
||
详见 [docs/api/plugin-development.md](../../docs/api/plugin-development.md)
|