☰
如何为Seele开发Botmux插件:botmux-skill MCP服务器搭建与调试指南
2026/10/27 18:43:24 网站建设 项目流程

【免费下载链接】Seele

希儿最初的家~

项目地址:https://gitcode.com/gh_mirrors/seele/Seele
点击查看免费下载

Seele 是一个用「语音识别 + TTS + AI 大模型 + 影刀 RPA」实现的桌面宠物项目,它的 Botmux 扩展就放在botmux-skill/目录里:一个包含seele-rpaSkill 和 MCP 服务器的自包含插件。本文将带你从零开始搭建这个 MCP 服务器,并完成安装、配置与调试全流程。

一、先搞懂插件的整体架构

在动手之前,建议先理清 Seele 的三层结构(详见 README.md):

层级职责
桌面宠物PyQt5 界面、角色 GIF、气泡、托盘与输入窗口
Botmux 连接订阅 Botmux Dashboard 的会话与 SSE 事件,展示机器人工作状态
RPA 桥接只允许调用已登记的影刀工作流,通过带 token 的本地 HTTP 接口供 Botmux MCP 调用

Botmux 扩展位于botmux-skill/,它提供三样东西:seele-rpaSkill、一个暴露白名单工作流工具的 MCP 服务器,以及不修改Botmux 的 daemon、worker 或 CLI adapter。

二、搭建开发环境:Node.js 22+ 与 Python 3.11

插件端和桌面端分别需要两套环境:

  1. 插件端(botmux-skill):Node.js 22+ 和 Botmux 3.8+,用于构建、测试与安装插件。
  2. 桌面端(Seele 本体):推荐 Conda + Python 3.11:
conda create -n Seele python=3.11 conda activate Seele pip install -r requirements.txt python Seele.py

三、配置 Seele 本体:让 RPA Bridge 上线

MCP 服务器并不会直接操作影刀,它通过本地 HTTP 请求 Seele 的 RPA Bridge(源码见 rpa_bridge.py)。

  1. 复制botmux_config.example.json为botmux_config.json;
  2. 把bridge.token替换为长随机 token(可用python -c "import secrets; print(secrets.token_urlsafe(32))"生成),并开启bridge.enabled;
  3. 注意:botmux_config.json已加入.gitignore,不要把 token 提交到仓库。

四、安装 botmux-skill 插件并启用 seele

进入插件目录执行官方流程(完整说明见 botmux-skill/README.md):

cd botmux-skill npm test botmux plugin install . --link botmux plugin enable seele
  • npm test会依次执行构建(scripts/build.mjs)、校验(scripts/validate.mjs)和冒烟测试(scripts/smoke.mjs);
  • --link表示以链接方式安装,方便开发期热更新;
  • 启用插件后,务必开一个新的 Botmux 会话,Skill/MCP 快照才会刷新。

五、创建插件私有配置 config.json

安装完成后,创建~/.botmux/plugins/seele/config.json(模板见 config.example.json):

{ "bridgeUrl": "http://127.0.0.1:8765", "bridgeToken": "与botmux_config.json中相同的token", "allowedOpenIds": ["ou_你的飞书open_id"] }

然后收紧权限:

chmod 600 ~/.botmux/plugins/seele/config.json

几个关键细节:

  • allowedOpenIds可以是数组或逗号分隔字符串;留空时仍要求 Botmux 认证的飞书调用者,但接受机器人已允许的任何用户;
  • SEELE_BRIDGE_URL、SEELE_BRIDGE_TOKEN、SEELE_ALLOWED_OPEN_IDS三个环境变量可在手动启动 MCP 进程时覆盖文件配置,但 Botmux 以受限环境启动插件进程,私有配置文件才是可靠的生产路径;
  • WSL2 用户注意:mirrored 网络下127.0.0.1直接可用;NAT 网络下要把bridgeUrl指向 Windows 宿主地址,并把 Seele 的 bridge host 设为0.0.0.0,同时保留 bearer token、用 Windows 防火墙限制端口。

六、MCP 服务器工作原理与调试

MCP 服务器入口是 src/mcp/server.js,通过 src/mcp/index.json 声明stdio传输方式。它基于 JSON-RPC 2.0 处理initialize、tools/list、tools/call等请求,对外暴露 3 个工具:

工具对应 Bridge 接口说明
seele_list_workflowsGET /v1/workflows列出可用的工作流名称与 ID
seele_run_workflowPOST /v1/workflows/run提交工作流,返回request_id
seele_workflow_statusGET /v1/jobs/:request_id查询已提交任务的最新状态

用冒烟测试快速验证

npm test中的 scripts/smoke.mjs 会临时起一个 mock Bridge 服务,然后向真实 MCP 进程发送 JSON-RPC 请求,验证:

  1. initialize返回seele-rpa服务器信息;
  2. 未携带可信调用者身份时,seele_run_workflow被拒绝;
  3. 携带botmuxTrustedCaller身份后成功提交,Bridge 端恰好收到 1 次运行请求。

输出Seele MCP smoke test passed.即表示本地链路健康。

调试时的三个高频问题

  • A trusted Botmux/Lark caller identity is required.:请求没有_meta.botmuxTrustedCaller身份,只有 Botmux 宿主真实调用才会注入该身份,手动测试需要自行携带;
  • 401 unauthorized:插件config.json里的bridgeToken与 Seele 的botmux_config.json中的bridge.token不一致;
  • accepted不等于完成:Bridge 返回accepted只代表已提交,需要影刀工作流回调POST /v1/jobs/:request_id/status后,才能看到真实的completed或failed。request_id是幂等键,同一请求不会重复启动工作流,拿不准结果时复用原 ID,不要换新 ID 重试。

行为约定(包括安全红线)写在 SKILL.md 中:不要用 shell 命令、文件路径或 URL 冒充工作流名,工作流运行中也不要操作鼠标键盘。

七、小结

  • 插件自包含在botmux-skill/,npm test+botmux plugin install . --link+botmux plugin enable seele三步完成安装;
  • 两份 token 配置(Seele 端与插件端)必须一致,私有配置记得chmod 600;
  • 调试顺序建议:先跑冒烟测试,再核对 Bridge 的/healthz,最后在新的 Botmux 会话里验证工具调用;
  • 安全边界:Bridge 只接受白名单工作流、非 loopback 监听强制 token、MCP 要求可信飞书调用者身份。

完成以上步骤后,你就可以在飞书里直接让希儿帮你列出并启动影刀工作流了。祝开发顺利 🎉

【免费下载链接】Seele

希儿最初的家~

项目地址:https://gitcode.com/gh_mirrors/seele/Seele
点击查看免费下载

相关推荐

上一篇:openGym贡献者指南:如何提交你的第一个Pull Request
下一篇:如何读懂 Evolver 输出的第一个 GEP Prompt:输出结构逐项详解

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询