Funny1Potato/dsh-onebot-hub ↗★ 0
dsh-onebot-hub
OneBot v11 hub for DeepSeek Harness: connects to an upstream OneBot v11 implementation (forward WebSocket client) and serves/dials downstream bot implementations with the same protocol, relaying events and actions verbatim so DSH can observe every message and learn how each downstream bot is used. 连接上下游OneBot实现并转发事件,适合需要让DSH监控和介入群聊消息的用户。
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Funny1Potato/dsh-onebot-hub常用配置
设置页里每一项都有中文名与说明,下面是真正需要你手动改的那些:
| 键 | 什么时候改 |
|---|---|
agent.groups / agent.privates | 白名单。写了的群/QQ 才调模型,没写的连 @ 都不理;两张都不写 = 不过滤。条目可带 mode(observer 只看不答) |
agent.mode | 平时是 assist(被叫到才醒、参与完自己睡回去),active 更活跃。名单里的某一类会话可在条目上单独覆盖 |
chatCommands.superUsers | 谁能用 /help /status /memes /perm 等命令。留空 = 整条命令链沉默(不猜谁是管理员) |
probe.isolation | 测试用命令时注入给下游的账号:link(默认,另开一个探针账号,真人消息进不去)或 time |
vision.mode | 看图方式:describe(把图交给视觉模型写成人话,默认)/ segment(把图本身给模型)/ off |
persona.presets | 群里的角色设定(名字、性格、说话风格),可按群名套用 |
memes.enabled | 表情包库;收哪张由 agent 自己决定,memes.maxSend 限一次最多发几张 |
imageGen.enabled | 让 agent 自己生图(默认关,填 model/baseUrl/apiKey 才开) |
code.scopes | 下游 bot 的源码目录。地址不写进 prompt,agent 需要时调 onebot_code_scopes 取位置,读文件用它自带的 read/grep |
memory.isolation.level | 记忆隔离:strict(跨会话一律不可见)/ scoped / balanced(默认) |
agent.speakAssistantText | 默认 false:普通回复文本只是内部草稿,只有 onebot_reply 会真的发进聊天 |
retention.days | 原始报文与媒体保留天数(默认 7) |
agent.replyGapMs / agent.replyMaxText / agent.replyMaxImages | 一次回复发多条时的间隔(默认 400ms)、文字条数上限(默认 3,图另算)、图片上限(默认 9) |
使用前要知道的行为
- 默认很安静:群里没人叫它,它不会插话。被
@、被引用、或者私聊发消息时才会醒;激活一会儿没人理就自己睡回去。 - 发言只有一条出口:agent 写在普通回复里的字不会发进 QQ,只有调
onebot_reply才会发。判断不该说话时它可以不调(沉默是正常手段)。 - 下游应答过就不插话:下游 bot 刚回过,agent 不会再凑一句(防复读)。
- 一次调用可以发多条:
onebot_reply的文字里空行断条、每张图各成一条、连续的@与文字合成一条;超过上限的部分会被如实告知。 - 记东西是有边界的:它会记住人、群、承诺与话题,但隔离等级决定跨会话能不能看见(默认
balanced:同群可见,私聊内容不进群上下文)。 - 测试下游用探针:排查/试探下游插件时注入的消息走另一个账号,真人在群里说的话不会串进去。
- 超管给的权限只管这一次:
.perm(见chatCommands.superUsers)改的是本次激活那个 agent 会话的权限;下一次唤醒是全新会话、自动回到部署默认——一次授权一次用。权限不够时它会在群里说清缺什么、要它干什么,请超管敲一条命令授权,而不是绕路或假装能做。