From c7185440a15b522f6ffbc268e7dcac57466376d9 Mon Sep 17 00:00:00 2001 From: xiaoli-cli bot Date: Thu, 30 Apr 2026 03:07:55 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E9=87=8D=E5=86=99=20README=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8F=92=E4=BB=B6=E5=88=97=E8=A1=A8=E3=80=81?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=8C=87=E5=8D=97=E3=80=81AI=20=E8=B0=83?= =?UTF-8?q?=E7=94=A8=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 完整插件列表与使用示例 - 插件码注册表格式说明 - 开发插件四步教程 - AI 自然语言调用流程图解 - 关联 xiaoli-cli 主仓库 --- README.md | 195 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 173 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index ab4da99..565667c 100644 --- a/README.md +++ b/README.md @@ -1,55 +1,206 @@ # xiaoli-cli-plugins -小狸 CLI 官方插件仓库,存放社区贡献的扩展插件。 +🔌 **小狸 CLI 官方插件仓库** -## 插件列表 +为 [xiaoli-cli](https://gitee.com/shuiyu1123/xiaoli-cli) 提供可一键安装的扩展插件。 -| 插件码 | 插件 | 说明 | -|--------|------|------| -| `dglab` | [dglab_ws](./dglab_ws/) | DG-Lab 郊狼 3.0 WebSocket 控制 | -| `onebot` | [onebot](./onebot/) | OneBot v11 QQ 机器人 | - -## 安装方式 +## 快速安装 在 xiaoli-cli 中使用 `/plugin` 命令: ``` -/plugin install dglab 安装 DG-Lab 插件 -/plugin install onebot 安装 OneBot QQ 机器人插件 -/plugin list 查看所有可用插件 +/plugin list 查看所有可用插件 +/plugin install <插件码> 一键安装 +/plugin remove <插件名> 卸载 ``` -或手动安装:将插件文件夹中的 `.py` 文件复制到 xiaoli-cli 的 `plugins/` 目录。 +示例: +``` +> /plugin list +🔌 可用插件列表: + dglab ○ 未安装 DG-Lab 郊狼 WebSocket 控制 + onebot ○ 未安装 OneBot v11 QQ 机器人 -## 插件目录结构 +> /plugin install dglab +📥 正在安装: DG-Lab 郊狼 WebSocket 控制 + ✓ 文件已保存 + ✓ 已启用: ENABLE_DGLAB_WS = True + ✓ 插件已加载 +🎉 安装完成! +``` -每个插件一个文件夹,包含: +## 插件列表 + +### dglab — DG-Lab 郊狼控制 + +> 插件码: `dglab` + +基于 [DG-LAB-OPENSOURCE](https://github.com/DG-LAB-OPENSOURCE/DG-LAB-OPENSOURCE) 官方 Socket V2 协议,通过 WebSocket 远程控制郊狼 3.0 脉冲主机。 + +- A/B 双通道强度控制(增加/减少/设置) +- 波形生成与发送 +- APP 扫码配对 +- 附带模拟器,无需真机即可测试 + +```bash +# 自然语言控制(AI 自动调用) +> 帮我把通道A强度调到50 +> 发个波形,频率30强度50持续5秒 + +# 或直接命令 +/dglab connect ws://192.168.1.100:9999 +/dglab strength a + 10 +/dglab pulse a 30 50 5 +``` + +📄 [详细文档](./dglab_ws/README.md) | [DG-LAB 官方开源](https://github.com/DG-LAB-OPENSOURCE) + +--- + +### onebot — QQ 机器人 + +> 插件码: `onebot` + +让 xiaoli-cli 成为 QQ 机器人,通过 OneBot v11 协议连接 QQ 消息平台。 + +- 支持 go-cqhttp / Lagrange / LLOneBot / NapCat +- 正向/反向 WebSocket 连接 +- @机器人 / 前缀 / 全部消息 三种触发 +- 群白名单、管理员配置 +- QQ 消息 → AI 处理 → 自动回复 + +```bash +# 启动 +/onebot connect ws://127.0.0.1:8080 +/onebot config trigger_mode at + +# 之后 QQ 里 @机器人 发消息即可,AI 自动回复 +``` + +📄 [详细文档](./onebot/README.md) | [OneBot 标准](https://github.com/botuniverse/onebot) + +--- + +## 目录结构 ``` -插件名/ -├── 插件名.py # 插件代码 -└── README.md # 使用教程 +xiaoli-cli-plugins/ +├── README.md ← 本文件 +├── plugin_registry.json ← 插件码注册表(/plugin 命令读取) +├── .gitignore +│ +├── dglab_ws/ +│ ├── dglab_ws.py ← 插件代码 +│ ├── dglab_app_simulator.py ← APP 模拟器(测试用) +│ └── README.md ← 使用教程 +│ +└── onebot/ + ├── onebot.py ← 插件代码 + └── README.md ← 使用教程 +``` + +每个插件一个文件夹,包含插件代码和人读的教程。 + +## 插件码注册表 + +`plugin_registry.json` 是 `/plugin` 命令的数据源。格式: + +```json +{ + "plugins": { + "插件码": { + "name": "显示名称", + "description": "一句话描述", + "version": "1.0.0", + "file": "插件文件名.py", + "url": "下载地址", + "docs": "文档地址", + "deps": ["必须依赖"], + "optional_deps": ["可选依赖"], + "keywords": ["搜索关键词"] + } + } +} +``` + +添加远程源: +``` +/plugin add-source https://example.com/plugin_registry.json ``` ## 开发插件 -插件是一个独立 `.py` 文件,需包含 `Liugin` 类: +### 1. 创建插件文件 ```python class Liugin: + """插件主类(兼容 Plugin 类名)""" + def get_tool_info(self): - return {"name": "插件名", "description": "...", "keywords": [], "usage": "..."} + """返回插件元信息(必须)""" + return { + "name": "my_plugin", + "description": "我的插件", + "keywords": ["关键词"], + "usage": "使用说明" + } def handle(self, args): + """处理命令(必须),返回结果字符串""" return "结果" - def set_cli(self, cli): # 可选:注册CLI命令 - pass + def set_cli(self, cli): + """注册 CLI 斜杠命令(可选)""" + if hasattr(cli, 'register_liugin_command'): + cli.register_liugin_command('my', self._cmd) - def get_mcp_definition(self): # 可选:MCP支持 + def get_mcp_definition(self): + """MCP 工具定义(可选)""" return {} + + def convert_mcp_args(self, arguments): + """MCP 参数转换(可选)""" + return "" ``` +### 2. 编写教程 + +在插件文件夹内创建 `README.md`,包含: +- 功能说明 +- 安装依赖 +- 使用示例 +- 命令速查 +- 常见问题 + +### 3. 注册到注册表 + +在 `plugin_registry.json` 中添加条目,提交推送即可。 + +### 4. AI 如何调用插件 + +xiaoli-cli 的 AI 会自动发现已安装的插件: + +``` +用户: "帮我把通道A强度调到50" + ↓ +AI 看到系统提示词中的 dglab_ws 工具 + ↓ +AI 返回: {"action": "use_tool", "tool": "dglab_ws", "args": "strength a = 50"} + ↓ +插件执行,结果返回 AI + ↓ +AI 回复: "已将通道A强度设为50" +``` + +用户不需要手动输入命令,自然语言即可。 + +## 相关仓库 + +| 仓库 | 说明 | +|------|------| +| [xiaoli-cli](https://gitee.com/shuiyu1123/xiaoli-cli) | 小狸 CLI 主程序 | +| [xiaoli-cli-plugins](https://gitee.com/shuiyu1123/xiaoli-cli-plugins) | 本仓库 — 插件集合 | + ## License MIT