dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 的 QQ 渠道插件(OneBot v11 / SnowLuma):工具面、长期记忆、知识库、主动行为与管理后台
把 QQ 接入 DeepSeek Harness 的渠道插件。 通过 OneBot v11(协议端默认用 SnowLuma, NapCat 仍可作回滚方案)收发消息, 以 cordis Service 形式挂进 dsh,提供工具面、长期记忆、主动行为与管理后台。
非官方项目,与腾讯 / QQ 无隶属关系。协议端属于非官方实现,**账号风控、掉线、
要求重新验证都是常态**——请自行遵守 QQ 用户协议与当地法律。
tools.v2 下合并为 17 个动作组(qq_message、qq_lookup…)qq_memory_search 深召回原文块(带文件行号)deploy/embed-server/),不开就退回关键词SKILL.md),按房间定可见范围(全部 / 仅私聊 / 指定群 / 指定房间 / 仅管理员),模型自动发现 + /名字 直接触发; 后台可增删改、从 URL 或粘贴导入(先落待审区)
/api/healthz 用一次 get_status 往返判断"消息发不发得出去",不产生消息、只接受本机请求
可看登录态、清除登录、先搜一首歌自检,不必等群里点歌才发现没登录
(待批 / 申请 / 批准 / 拒绝,全程不经模型)
/chatlog,默认保留 14 天),qq_group_digest 可按日期翻某群聊了什么
qq_person_note 手动记录「谁爱用什么说法、忌讳什么」,按群分开存,与自动侧写互补
后台「安全」页批准后才放行(也可切白名单或全放行)
dsh 生态里已经有几种 QQ 接入,定位不同:
方案 · 接入 · 适合 官方 dsh-qqbot · QQ Bot API v2 · 官方机器人身份、扫码、流式回复;不接个人号 dsh-im · 13 个 IM 渠道 · 一个插件同时接多种平台,广而薄 本项目 · OneBot v11(SnowLuma) · 个人 QQ 号 + 完整群能力:长期记忆、知识库、主动行为、审批、技能包、群运营
选型建议:要官方身份与流式,用官方插件;要一次接多个平台,用 dsh-im; 要一个「住在群里」的长期陪伴/群运营机器人,用本项目。
需要 Node.js 22+、一个 dsh 宿主、一个 OneBot v11 协议端。
npm install
npm run build # 生成后台前端 + 编译 TypeScript
npm run verify # 类型 + 测试 + 分层 + 体积,全绿再继续挂载(/profiles//cordis.patch.yml):
- id: channel-qq
config:
connection: { mode: forward, url: ws://127.0.0.1:3001 }
accessToken: <OneBot access token>
selfId: <机器人 QQ 号>
admins: [<管理员 QQ 号>]
primaryGroup: <主群号>
workspacePath: /path/to/agent-workspace部署与运维细节见 docs/deployment.md。
文档 · 内容 docs/architecture.md · 分层、消息旅程、关键决定、往哪里加东西 docs/configuration.md · 配置三层覆盖、生效方式、环境变量 docs/deployment.md · 部署、发布、回滚、故障排查 docs/memory.md · 记忆系统:夜间任务、embed 服务、评测与限制 docs/memory-standalone.md · 记忆库插件化:脱离 cordis 独立使用 SECURITY.md · 威胁模型与部署清单 CONTRIBUTING.md · 门禁、硬规则、提交信息
npm run verify # 门禁
npm run eval # 行为评测(红队 7 + 场景 15 + 人格 30 + 转录 8 + 记忆基准)
npm run audit # 静态审计
npm run probe:admin # 后台浏览器回归(headless Chrome)test/golden/** 是逐字节快照:改动输出必须先解释差异,不能静默更新。src/
core/ 纯逻辑(可重放)
app/ 入站流水线、组包、回合
features/ 子插件(工具、记忆、主动行为、后台、审批…)
adapters/ 宿主与外部世界
config/ 配置 schema 与页面清单
assets/persona/ 人格与提示词(纯文本)
deploy/ 发布、备份、审批执行器
eval/ 行为评测
scripts/ 构建与门禁管理后台是远程控制面:默认只监听 127.0.0.1,请通过 SSH 隧道访问;口令只从 环境变量读取。详见 SECURITY.md。
访问门控:默认 access.mode = pairing——陌生 QQ 的私聊、以及尚未批准的群里的 消息,只会收到一句「待主人批准」,不会进入 agent;主人在后台「安全」页批准后放行。 管理员始终允许。需要预先授权时可把模式改成 allowlist,用 access.allowUsers / access.allowGroups 指定名单;open 是旧的全放行行为,不建议在公网使用。
管理员也可以直接私聊机器人处理,不必开后台:
私聊命令 · 作用 待批访问 / 访问请求 · 列出待批的人/群,并给出可复制的放行命令 放行 999 · 批准某个 QQ 的私聊 放行群 107 · 批准某个群 拒绝访问 999 / 拒绝访问群 107 · 拒绝
这些命令只认管理员私聊,且在高危命令审批网关之前处理(动词刻意用「放行」, 不与网关的「批准/拒绝」冲突)。
群策略 access.groupPolicy:
值 · 行为 member(推荐) · 机器人已经在的群直接放行——加群本身就是主人操作,不用逐群批准 pairing(默认) · 未批准的群先申请,和私聊一样待主人批准 allowlist · 群只认 allowGroups 与后台已批准列表
私聊始终按 mode 走配对/白名单。群消息仍然受 groupEnabled、requireMention 与「群聊与房间」里的按群覆盖约束——那两处管的是“怎么回”,访问门控管的是“能不能触发”。
未批准的群默认完全安静:只有真正 @ 或命中关键词的消息才会生成一条请求并私聊通知 主人,群里不回「待主人批准」(access.replyPendingInGroups 可打开,且每个请求只回一次)。 没人叫机器人的闲聊不会触发配对,也不会刷屏。