Samien abcb6795bc 新增 Bot 模式插件、应用连接和工具菜单 há 1 mês atrás
..
README.md abcb6795bc 新增 Bot 模式插件、应用连接和工具菜单 há 1 mês atrás
browser-result.json abcb6795bc 新增 Bot 模式插件、应用连接和工具菜单 há 1 mês atrás

README.md

Bot 模式插件与工具入口验收

日期:2026-09-10 至 2026-09-11。参考 OpenMausBot 的插件管理和侧栏菜单;本次改动位于 Yaoyao,未修改 OpenMausBot。

已实现

  • 仅 Bot 模式在账号上方显示“工具”:插件、自动化、已连接应用。点击账号打开设置、关于、帮助菜单,管理员保留切换聊天模式入口。
  • 插件在设置中心管理,包含应用目录、已连接应用与 MCP 服务。应用目录支持搜索和分批显示。关于页显示当前构建版本;帮助链接为 https://yaoyao.samien.cn。
  • MCP 支持本机 stdio 程序及 Streamable HTTP(JSON/SSE 响应);可添加、编辑、测试、启用、停用、移除,并选择授权 Bot。新增或修改配置默认停用,测试成功后才可启用。
  • 应用连接使用当前账号自己的 Composio 项目 API Key,支持授权链接、多账号别名、逐账号断开和 Bot 授权;可填写自定义 Auth Config 映射。连接清单读取失败时保留已知状态,不能把错误当成全部断开。
  • 自动化入口复用现有 Bot 定时任务:选择 Bot 后创建任务、查看运行日志和立即执行。

隔离与兼容

  • 数据以账号为边界保存在 Web 的工作区存储中;API Key、MCP 环境变量/请求头及 Composio 会话 URL 加密保存,列表接口不回显凭据。环境变量/请求头的 true 表示保留已有值。
  • 自定义 MCP 在 Web 所在主机执行或连接,由管理员配置和使用。应用连接属于各自账号。授权只能选择当前账号的有效 Bot,远端引用和临时助手不在列表中。
  • 工具通过现有会话工具桥挂载到 Bot 当前调用,不修改 Hermes 的普通聊天配置。对应执行环境需要支持原生工具桥;停用、修改或移除插件后,旧工具调用会被拒绝。
  • 普通聊天的侧栏、账号切换和设置入口保持原行为,不显示新增 Bot 工具分类;既有团队、电脑和 Runner 工具共用原授权机制。
  • stdio 传输改编自 OpenMausBot/server/stdio-mcp.ts,保留 Apache-2.0 来源说明;子进程只获得最小环境及显式配置,不继承应用凭据。

验证

相关单元、服务端及客户端回归:11 个文件、176 项通过。

NODE_OPTIONS=--no-experimental-webstorage npx vitest run tests/server/workspacePlugins.test.ts tests/server/workspaceTeamTools.test.ts tests/server/workspaceRoutes.test.ts tests/server/workspacePanels.test.ts tests/server/workspace.test.ts tests/server/runner.test.ts tests/server/workspaceRemoteAgents.test.ts tests/server/workspacePairedNodes.test.ts tests/client/workspaceShell.test.ts tests/client/settingsCenterDialog.test.ts tests/client/botPluginsPanel.test.ts
npm run typecheck
npm run build

类型检查与构建成功。构建仍有既有的前端大 chunk 提示。

浏览器通过 CUA 在独立测试服务验收,覆盖桌面 1280 px、手机 375 px、浅色/深色、菜单键盘操作,以及切换回普通聊天后的边界。环境启动方式:

WORKSPACE_FIXTURE_PORT=18833 WORKSPACE_FIXTURE_UPSTREAM_PORT=19133 WORKSPACE_FIXTURE_PLUGINS=1 node --import tsx tests/fixtures/workspace-server.ts

临时测试账号为 fixture / fixture-pass。仅在该 disposable fixture 使用;这些不是生产凭据。

  • 从 UI 新增 HTTP MCP 服务,测试发现一个工具,授权并启用后发送 [plugin-roundtrip] 验收消息,原生工具实际返回“Bot 插件原生调用成功”。
  • 使用模拟 Composio 服务配置应用连接,授权给 Bot;停用自定义 MCP 后,再次单独验证应用工具成功返回。
  • 从自动化入口创建任务并立即执行,运行日志显示完成,结果回到 Bot 聊天。
  • SQLite 只读核验记录了三次成功运行、三个工具调用、零待执行 turn。摘要见 browser-result.json。

MCP stdio 测试启动了真实的隔离子进程;HTTP MCP 测试和浏览器验收使用回环地址 fixture。Composio OAuth/第三方账号为模拟服务验证,未用真实项目密钥授权第三方应用。

参考协议与交付范围

实现参考 Composio Session API、Composio MCP 会话 和 MCP HTTP 传输协议。

本次仅源码、构建和隔离验收,没有部署或重启 15300 / 8799 服务,也没有修改真实用户的插件配置、第三方连接或定时任务。使用应用连接时,需要在 Bot 模式的插件设置中配置自己的 Composio API Key。