Skip to content

feat: MCP 与 SealDice 指令桥接及 OB11 工具重构(4.16.0) - #126

Merged
error2913 merged 20 commits into
mainfrom
feat/ob11-core-bridge
Aug 19, 2026
Merged

feat: MCP 与 SealDice 指令桥接及 OB11 工具重构(4.16.0)#126
error2913 merged 20 commits into
mainfrom
feat/ob11-core-bridge

Conversation

@error2913

@error2913 error2913 commented Aug 17, 2026

Copy link
Copy Markdown
Owner

变更概览

本 PR 汇总并整理 4.15.2 以来的 MCP、OB11、SealDice 指令和消息链路改造,并准备发布 4.16.0。

功能增加

  • 新增标准 Streamable HTTP MCP 即插即用适配:按 mcpServers 配置连接服务器,通过 tools/list 自动发现工具,支持 headers/token、工具重载清理、会话失效自动重连和远端工具冲突处理。
  • 新增 run_core_command 核心指令桥:经 OB11 核心桥中间件注入假消息,支持多消息收集、空闲窗口、超时、并发 lane 串行化和 forward 控制。
  • 重构 run_ext_command 为本地直接调用扩展 solve,不再依赖旧的中间件指令转发。
  • run_ext_command / run_core_command 增加 triggerat:默认触发用户为当前会话用户,at 为用户 ID 数组;核心桥注入平台前缀、sender/user_id、真实昵称/群名片和 CQ at。
  • 新增统一 call_ob11_api,提供 OB11 网络后端与 SealDice 原生后端,统一覆盖消息、媒体、文件、合并转发、用户/群查询和协议 action。
  • 新增「录卡」默认技能:读取角色卡表格,优先提取可直接执行的 st 命令,必要时用 pc new 新建角色并用 st 查询确认。
  • SealDice 核心/内置扩展命令及别名自动生成默认白名单与 Skills 帮助;本地文件、语音、视频资源支持路径配置。

功能调整与删除

  • MCP 工具按远端原名注册,取消不必要的服务器名前缀;同名工具自动跳过。
  • web_readrender_markdownrender_html 等旧的内置包装工具改由标准 MCP 工具提供。
  • 删除独立 draw_deck 工具入口;牌堆、模组、今日人品等能力统一走扩展指令。
  • 旧的消息/OB11 工具包装收敛为 call_ob11_api;工具监听改为多消息收集器,工具摘要改为按需加载。

修复与配套改造

  • 修复核心/扩展假消息的群身份、平台前缀、trigger 昵称、at 注入和多条回复捕获。
  • 修复 MCP 尾逗号、标准响应块、重载残留、会话重连、工具冲突和扩展指令“日志显示已发送但 AI 收不到内容”等问题。
  • 完善 OB11/Milky 文件、视频、语音、卡片、音乐、reply、负数消息 ID、未知表情、全体 at、嵌套节点等消息段的接收、上下文展开和发送。
  • AI 回复中的字面量 \\n / \\r\\n 发送前还原为真实换行,\\f 继续作为多消息分隔符。
  • 同步目标 ID、上下文、记忆、会话、资源和严格类型检查;资源路径兼容 Windows/Unix 分隔符。

配置与文档

  • 版本推进到 4.16.0,新增「是否启用MCP」总开关,默认关闭。
  • MCP 配置统一为标准 mcpServers JSON;网页读取和 Markdown/HTML 渲染配置迁移到 MCP 服务器配置。
  • 新增 OB11 action 禁止/默认关闭配置;指令白名单改为代码生成的核心/内置扩展命令及别名,核心命令使用 core|...
  • 删除「内置扩展列表」「提供给AI的牌堆名称」配置;技能配置同步核心命令和 OB11 API 帮助。
  • 同步 README、工具系统、命令配置、后端项目、核心桥使用指南和 FAQ,并新增运行时/监听/端到端测试记录。

验证

  • npm run lint
  • npx tsc --noEmit --strict
  • npm run build
  • npm run smoke
  • npm run test:ob11
  • npm run package:check
  • 测试群 1064487252 实测 run_core_command rav,验证 trigger=2484294762at=[2913949387]、CQ at 和真实昵称均正确。

- 移除文档中残留的旧版 /control 插件控制 WS、反向 WS、CORE_URL 描述
- docs/04 拓扑与环境变量改写为:SealDice 正向连接 /core(/core/ws)、协议端 /onebot、插件走 MCP /mcp
- docs/08 表格改为「核心正向 WS」并去掉 /control 兼容说明
- docs/09 与 README 同步:通过 MCP 接入、capture.forward 说明
- 新增 docs/11-ob11-core-bridge-使用指南.md:部署/SealDice/协议端/MCP 接入、工具参数、白名单、捕获与转发语义、并发与多核心、排障
- docs/README 导航表补充第 11 篇
@error2913 error2913 changed the title refactor: MCP 工具即插即用适配,移除内置包装工具 feat: MCP 与 SealDice 指令桥接及 OB11 工具重构(4.16.0) Aug 19, 2026
@error2913
error2913 merged commit b7905cf into main Aug 19, 2026
1 check passed
@error2913
error2913 deleted the feat/ob11-core-bridge branch August 19, 2026 05:33
error2913 added a commit that referenced this pull request Aug 22, 2026
- 根因:#126 OB11 重构删除了旧 send_msg 工具的标签解析,call_ob11_api 把文本原样发给后端,模型写的 [msg_id:...]/[img:虚拟ID] 直接进群
- dispatchOb11Api 对 send_group_msg/send_private_msg/send_msg 发送前用 resolveSendMessage 把文本渲染标签解析为真实消息段:
  - 内部标签 [from]/[msg_id]/[system]/[time] 剥离不外发
  - [img:]/[avatar:]/[group_avatar:] 解析为图片段,[audio:] 解析为语音段
  - [at:]/[poke:]/[quote:]/[face:] 转换为对应消息段
- call_ob11_api 工具把 session 传入,支持按 id 查图(findImage)
- 新增单元测试 testSendMessageResolveRenderTags,覆盖字符串/数组消息、内部标签剥离、缺图丢弃
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant