前言¶
在 DSH 里接 OneBot(例如 NapCat)做 QQ 私聊时,常见做法是「主人发一句、机器人回一句」。对话一旦停顿,往往就停在最后一条回复上,除非主人再次开口。若希望机器人在双方已经聊热之后,还能顺着刚才的话题自然接一两句、而不是干等下一条指令,就需要在 Harness 里单独处理「续话节奏、冷却和发送时机」。下面介绍社区插件 dsh-proactive-chat(展示名「更像人的聊天」),维护者为 shuaig22,在 SkillHub 分类为模型推理;它以主动续话为核心,并支持本机人格文件热更新。
这是什么¶
dsh-proactive-chat 是 DeepSeek Harness 的插件 bundle(当前 package 版本 0.4.0,MIT 许可证)。主人发来消息时插件会先正常回复;在对话变密或进入「热聊」后,会按可配置的间隔主动生成并发送短续话,而不是只在被动回合里说话。插件不内置人格,需在本机准备 UTF-8 的 .md 或 .txt 人格文件并在设置里填写绝对路径;未配置有效人格时不会调用模型或发送续话。
- 目录页:https://www.skillhub.cn/plugins/shuaig22/dsh-proactive-chat
- 源码与说明:https://github.com/shuaig22/dsh-proactive-chat
SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,安装前请自行查看源码与许可证。
主动续话怎么工作¶
README 里把流程写得很具体,可按下面理解:
- 主人发来消息,插件先接住并自然回复。
- 连续聊天进入热聊后,从上一条实际发送成功的消息起,默认约 10 秒后准备主动续话;普通聊天节奏默认约 2 分钟。
- 第一次主动续话若无人回应,热聊下第二次等待会延长到约 20–30 秒;连续两次没回应后进入冷却,停止追发。
- 6 小时没有互动后停止自动续话,等下一次聊天再开始。
- 夜间在普通状态下免打扰;已进入热聊时仍允许自然续话。
每次主动续话只发一两句短话,优先接住最近聊到的具体内容;不会写标题、列条目或客服腔收尾。若同一 OneBot 通道上已有身份插件负责普通回复,本插件会保留入站上下文并安排主动续话;若身份插件自己的主动陪聊也已开启,则让出全部发送权。
OneBot 离线时每 30 秒检查一次,不调用模型;连接恢复后仍受免打扰、未回应次数和预算限制。发送失败时不增加已发送条数,30 秒后重新检查是否适合续话。
模拟打字与消息打断¶
普通回复和主动续话都会在发送前按最终文本长度计算等待:默认每个非空白 Unicode 字符 120 毫秒,约 ±15% 随机浮动,最短 0.8 秒,最长 12 秒。额外等待为 max(0, 目标时长 - 模型生成耗时);模型生成已超过目标时长则不再额外等待。另有「收到消息后的延迟」,默认 300 毫秒,在生成前独立生效。
等待期间若收到新的主人消息,会取消未发送的旧回复,用最新上下文重新回复;重复投递的同一消息不会打断。关闭插件、停止运行或切换主人后,旧回复不会发送;消息一旦交给 OneBot 发送则无法撤回。配置每 2 秒同步一次,观察到开关或主人变更后旧发送任务永久失效。
可在设置里关闭「模拟打字等待」,改为生成完成后直接发送。
可调参数与人格文件¶
在 DSH 设置左侧导航 「更像人的聊天」 中可调整,分组包括:连接、续话节奏、限额与冷却、免打扰、模型、人格文件。README 列出的项包括:
- 热聊续话间隔(默认 10 秒)、普通续话间隔(默认 2 分钟)
- 模拟打字等待开关、每字打字时间、打字等待上限
- 多少分钟内连续聊天算热聊
- 连续几次没回应后冷却
- 夜间免打扰时间
- 每日消息数和 Token 限额
- 聊天模型、单次输出长度和人格文件
人格文件示例路径格式:
C:\Users\you\Documents\persona.md
插件在每次回复和主动续话前检查文件;修改后下一条消息即用新内容,无需重启 DSH。默认最多读取 3000 字,可在「人格读取上限」调整。若文件曾成功读取、之后被移动或删除,会沿用最后一次成功内容并在日志提示。
设置页必填项包括:
ownerId:主人 QQonebotUrl:NapCat WebSocket,例如ws://127.0.0.1:3002onebotToken:NapCat 鉴权 TokenpersonaFile:本机人格文件绝对路径
Token 留空时保存不会覆盖原值。
安装与启用¶
插件要求 Node.js >= 22.19.0 或 >= 24.0.0,dsh >= 0.2.0。官方 README 给出的安装方式为本地路径添加(请将路径换成本机上的插件目录,勿直接使用占位路径):
dsh plugin --profile desktop add file:C:\path\to\dsh-proactive-chat
安装后确认 profile 的 dsh.profile.bundles 包含 dsh-proactive-chat,重启 DSH。保存设置后直接应用。
运行态数据:$DSH_HOME/storages/dsh-proactive-chat/state.json(状态只保存 Owner QQ 的哈希标签,不保存原始号码);Token 只保存在本机 DSH 配置。模型已消耗的 Token 会计入每日预算,即使回复被新消息取消或 OneBot 发送失败。
开发与自测¶
若你在本地改插件代码,README 提供:
npm install
npm test
测试脚本为 node --test test/*.test.mjs。
适用场景与注意¶
适合:已通过 NapCat 等 OneBot 实现 QQ 私聊、希望机器人在热聊中偶尔主动接话、并想用独立人格文件控制语气与关系的 DSH 用户。
务必注意:插件以当前 DSH 进程权限运行,会连接 OneBot、读取本机人格路径并调用配置的聊天模型;安装前请阅读 仓库源码 与 MIT 许可证,自行评估 Token、每日限额与主人 QQ 绑定是否符合你的安全预期。
结尾¶
dsh-proactive-chat 把「热聊间隔、冷却、夜间免打扰、打字等待」和「人格文件热更新」收进一个 DSH 插件里,核心仍是主动续话——让对话在停顿后仍可能自然往下走,而不是永远停在最后一轮被动回复。