English: README.en.md | 中文: README.md
🗂️ 文档索引(全部文档一句话说明 + 是否仍然有效)见 docs/README.md;仓库目录/脚本命名约定见 docs/FOLDER_MAP.md。
🔒 QQ 会话的权限边界与安全承诺见 RULES.md。
🎤 独立的「发语音」工具已拆到仓库上一级的
../voice-tool/(命令行voice-cli.mjs/ 图形界面voice-gui.mjs),不再依赖 qq-bridge 运行。
把 QQ 消息接入 DSH agent:QQ 好友/群发来的消息会变成 DSH 会话里的用户消息,agent 的回复(含提问、工具审批)会发回 QQ。
⚠️ 当前版本
v0.2.1-r1,适配 DSH 0.2.1-rc.2(0.2.0-rc.2 亦兼容;两个版本上都逐项实测:npm run verify:adaptation)。 鉴权用~/.dsh里持久化的浏览器会话签名密钥离线铸造 Cookie —— DSH 0.1.7 起进程启动 token 只存在于内存、不再落盘,旧版「从 guard 日志里读 token」的方式已失效。agent preset 是 DSH 0.1.7 起的@deepseek-ai/dsh-agent-presetCordis 行(~/.dsh/.agent-presets/目录机制已废)。协议代次 (Cookie 鉴权 / 斜杠 RPC //api/remote.mux事件流)自 DSH0.1.2-alpha.1起引入,与更早的点号 endpoint 协议不兼容 —— DSH0.1.1-rc.2及更早请改用 tagv0.1.0;DSH 0.1.5-rc.1 用v0.1.5;DSH 0.1.7-rc.2 用v0.1.7。v0.2.0 修的主要是会话待处理队列读不出来:桥接退役/重置 QQ 会话时要先清掉 DSH 侧没跑的队列, 而那段解析认的是一个从来不存在的字段(
session/controlbaseline 的value.queues[<id>])—— 于是每一次退役都抛invalid session/control baseline,队列清不掉、旧任务继续在 DSH 里跑, 而日志里只有一行警告。注意:这不是 0.2.0 引入的——该代码随 v0.1.7 发布,报错日志早于 0.2.0-rc.2 的发布,0.2.0 只是把它翻了出来。现在读队列以一元 RPCsession/projections为主路径、 以projections[<id>].values.inbox为回退形状,并补了两条回归网。 同一轮还按 0.2.0 的真实工具清单重新对账了 QQ 安全守卫(新增 15 个必须隐藏的工具名, 含全局层默认启用的read_mcp_resource、plugin_manager、subagent_codex等)。逐条改动说明见 docs/guides/DSH_020_ADAPTATION.md(0.2.0) 与 docs/guides/DSH_021_ADAPTATION.md(0.2.1)。
r4 主要改动:QQ 表情包/动图链路(表情 CDN 优先、
emoji_id兜底、DNS 多地址故障切换)、 联网搜索改用与 DSH 同源的 DeepSeek 搜索(Bing 仅兜底)、qq_wait_for_messages改 5 分钟长轮询、 控制台切模式被 5 秒轮询改回去、回合永久「繁忙」、机器人身份未注入等 issue 修复,外加一轮整体体检。 逐条见 Release v0.2.0-r4。v0.2.1-r1 主要改动:适配 DSH 0.2.1-rc.2。修掉一处 P0——persona 里的
{{cwd}}提示词变量在 0.2.1 被删除,导致每个回合在系统提示词装配阶段直接 error、模型一次都不跑 (QQ 侧表现为「发消息完全没反应」);同时把 0.2.1 新进全局层的working_directory与 terminal / session-query / plugin_market 一族补进安全守卫名单。 逐条见 docs/guides/DSH_021_ADAPTATION.md。默认分支
main就是本版本,git clone直接拿到,无需切换分支。
QQ 消息 ──► SnowLuma(OneBot v11 WS)──► 本桥接进程 ──► DSH Web API (127.0.0.1:3080/api)
▲ │
└── agent 回复/提问/审批 ┘