DSH 米饭守卫(dsh-rice-guard):助手流重复输出的被动看门狗

前言

在 DeepSeek Harness(DSH)里跑 agent 时,模型偶发会在同一回合里反复输出相同片段,或按「第 N 步」换数字假进度。这类跑飞回合会持续消耗 token,且已输出的内容无法撤回。常见做法是人工盯着对话区手动停掉,或事后从日志里筛。下面介绍维护者 XiaoSHang05 发布的独立插件 dsh-rice-guard(README 中称「米饭守卫」):它不生成任何模型文本,只订阅当前回合的思考流与正式输出流,在检测到重复模式时报警,并可选自动取消该回合。

这是什么

dsh-rice-guard 是 DSH 的工作流类插件:被动监视 agent/assistant-stream 的实时增量,命中规则后可通过宿主调用 agent.cancel 做回合级止损。无需群聊插件;功能坞桥接可用时会注册入口,不可用仍可走监控页与全局浮层报警。

仓库:https://github.com/XiaoSHang05/dsh-rice-guard
许可证:MIT(见仓库 LICENSE)。

核心功能

插件自身不产字,检测在尾部窗口内增量进行。默认同时监视全部会话的思考流与输出流;可在监控页全局开关,或对单个会话暂停/恢复。

四条检测规则按固定顺序评估,先命中者生效:周期重复 → 自定义短语 → 编号循环 → 重复行密度。

  1. 周期重复:在尾部窗口寻找连续相同片段;「重复次数」默认 5,控制连续周期重复阈值。
  2. 自定义短语(默认关闭):在监控页开启并一行一句填写最怕复读的句子(每句至少两字),在短跨度内出现 customRepeat(默认 5)次即报警;长文里正常引用不会误触。
  3. 编号循环:识别「同一句式、每行只换一个数字」的假进度;默认连续 ≥12 行同句式且字母占字母加数字的比例 ≥60%。可用 structLines: 0 关闭,或调高行数阈值。
  4. 重复行密度:归一化行首尾与连续空白后比较相同行;「重复行占比」默认最近 8 行中 75% 为已出现行。调高「重复次数」不会关闭本条,需同时改占比。

命中后展示会话、流、重复片段、次数与打断状态。报警卡片需点击「知道了」才关闭;提示音走 WebAudio,浏览器可能要求先与页面交互。同一流在同一请求中只报告一次。

行为开关(配置或监控页):

  • cancel: false:只报警,不自动打断。
  • alarm: false:不显示报警卡片。
  • sound: false:关闭提示音。

打断实现为回合级取消,已输出字符无法收回;keepInbox: true 保留排队输入,不等于撤销已执行的工具操作。

安装与启用

README 写明兼容当前验证的 DSH 0.2.0-rc.2;包声明 peer 范围为 >=0.2.0-0 <0.3.0。宿主需提供 webServer、agent 运行时,以及 @deepseek-ai/schemastery ^3.18.1。

在包含 README 与 package.json 的插件目录中,本地链接安装:

dsh plugin --profile desktop add "link:$($PWD.Path)"

从 GitHub 安装(无需 clone):

dsh plugin --profile desktop add "github:XiaoSHang05/dsh-rice-guard"

安装或更新宿主代码后重启 DSH,再刷新网页。对话区会出现「监控」标签页;报警挂在全局浮层。若本机曾登记旧目录链接,请先在插件管理器处理旧链接再装交付目录,避免同名插件混用。安装走 DSH 包流程;若 profile 其他依赖触发供应链限制,安装可能失败——不要为本插件放宽整个 profile 的安全策略,按失败信息处理对应依赖。

典型用法

  1. 安装并重启 DSH 后,打开对话区「监控」标签页。
  2. 确认「启用监控」为开;按需调整「重复次数」「重复行占比」「编号循环占比」。
  3. 若已知模型常卡在某几句,打开自定义短语开关并逐行填写句子。
  4. 某会话临时不需要盯防时,在会话行暂停监控;需要全局静默时可设 cancel: false 仅保留报警。

监控页修改会立即生效,并尽力通过宿主 Settings 持久化;Settings 不可用或写入失败时,配置仅保存在内存。会话级暂停名单与命中历史为内存数据,重启后清空;历史最多 50 条,界面默认展示最新 20 条。

HTTP 读写位于 /dsh-rice-guard/api/(如 health、state、config、monitor、hits、events);SSE 仅通知重新读取,状态以 GET state 为准。

配置要点

配置键 默认值 含义
enabled true 全局监控开关
minRepeat 5 连续周期重复阈值
minUnit / maxUnit 6 / 1024 搜索周期长度范围
windowChars 8192 各流保留的尾部窗口
densityLines / densityRatio 8 / 0.75 重复行窗口与占比
structLines / structShare 12 / 0.6 编号循环行数与字母占比
customPhrases [] 自定义短语,空数组即关闭
customRepeat 5 自定义短语命中次数
cancel / alarm / sound true 自动打断、报警卡片、提示音
scopeDefault all 默认监控全部会话

checkEvery=32 为内部扫描步长,不是宿主 HTTP 配置字段。

适用场景与注意

适合:长时间 unattended 跑 agent、担心思考流或输出流复读/编号循环刷字的 DSH 桌面 profile 用户。

边界(README 明示的取舍):很长的正常枚举(例如多行 port xxxx is listening)可能与编号循环在语法上重叠,可能触发报警;不认同时可关闭编号循环或调高阈值。单字符刷屏、超出窗口/周期长度的重复可能漏检;插件加载前的输出无法回溯。正常文章里故意大量重复也可能被打断,可按场景暂停监控或改为只报警。

安全:插件以当前 DSH 进程权限运行,安装前请阅读源码与 MIT 许可证,确认接受其订阅全局 assistant 流并在命中时调用 cancel 的行为。接口使用宿主 Web 的认证边界,不额外提供公网认证。

社区目录站点 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件为社区独立交付。

结尾

dsh-rice-guard 把重复输出检测做成零 token 开销的旁路看门狗:思考与输出双流、四条互补规则、可选自动 cancel 与可关闭的报警。需要细节、验证记录与开发说明时,请直接查阅仓库 README、CONTRACT.md 与 VALIDATION.md。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜