Rice Patrol:DSH 推理循环检测与自动恢复

前言

在 DeepSeek Harness(DSH)里跑 Agent 时,模型有时会在推理区反复输出极短的重复行,任务迟迟不前进。常见做法是手动停止生成、清空或改写上下文再重试,既打断会话,也容易丢掉已完成的工具结果与文件修改。

Rice Patrol(leelizuoliu/rice-patrol)面向这类「有界推理重复」:在确认循环后停止当前生成,并在同一会话里让原 Agent 接续未完成的任务。下面介绍它的检测规则、恢复流程,以及如何在 DSH 中启用与配置。

这是什么

Rice Patrol 是 DSH 社区插件,维护者为 LeeLizuoLiu,在 SkillHub 目录中归类为 admin-security(安全管理)。一句话定位:对 DSH 暴露的推理流做重复模式检测,确认后截断生成并执行「干净恢复」,而不是仅告警或依赖人工切会话。

当前包版本为 0.2.11-desktopcompat.1,源码在 GitHub 同步维护;README 说明本次更新不发布 npm 包。项目采用 MIT 许可证。

核心功能

自动恢复,无模式选择

启用插件后不需要选择 Stop / Observe / Recover 等响应模式。每次确认循环后,流程固定为:停止当前生成 → 清理流 → 在原会话中恢复任务。

旧配置里的 mode: stop、mode: observe、mode: recover 已不再决定行为;保留这些字段也不会阻止自动恢复。若要完全关闭能力,应使用 DSH 自带的插件启停开关,而不是依赖旧 mode 字段。

恢复过程中仍可使用界面上的「停止恢复」;发送新的用户输入也会中断本次恢复。若无法核对会话或宿主后台任务状态,插件会暂停恢复并给出说明。

循环检测规则

检测逻辑与具体模型服务商无关;每个模型请求使用独立的检测器,普通输出 token 上限不在检测范围内。

  1. 插件读取 DSH 暴露的推理文本,按行拆分,去掉首尾空白,忽略空行。
  2. 对最近 50 行非空行评分:行长度中位数 ≤ 20 个字符,且至少 70% 的行在该窗口内存在完全相同的重复行 → 记为预警。
  3. 预警不会停止生成。再累积至少 50 行非空行,且再次满足上述窗口条件 → 确认循环并停止生成。

README 明确说明:这一版未修改上述检测阈值。

接续(恢复)行为

确认循环并停止后,插件会:

  • 等待当前生成与流清理结束,并核对宿主后台任务;
  • 将本次被中断的推理从模型可见历史中排除;
  • 通过原来的 Agent 与同一会话继续;已完成的文件编辑与工具结果仍可用;
  • 在接续提示中要求模型先检查工作区状态,再重复产生副作用。

同一次截断只提交一次交接;每次新确认的循环都可以再次恢复。失败或受阻的旧恢复任务不会自动重试。恢复后的 Agent 仍遵循 DSH 原有策略;插件不额外发起摘要类模型请求,也不对接续后的模型/工具调用次数施加插件级上限。

resumeTimeoutMs 默认 5 分钟,用于交接等待与首次接续响应,不是整个后续任务的总时限。插件保留最小化的恢复状态与防重复交接记录,不提供逐块观察日志。

安装与启用

已抓取资料与 SkillHub 目录页均未给出形如 dsh plugin add … 的固定 CLI 安装语句;安装方式以你当前 DSH 发行版在 Plugins 页从社区/GitHub 源安装为准(目录页:https://www.skillhub.cn/plugins/LeeLizuoLiu/rice-patrol)。

环境要求(来自 README):

  • DSH 0.2.0-rc.2 或更高(含 0.2.1-rc.1),对 0.2.x 不设上限,后续补丁版一般可直接加载。
  • 插件声明的对等依赖:@deepseek-ai/dsh-llm、@deepseek-ai/dsh-compaction 均为 >=0.2.0-rc.2;DSH 加载时会校验声明,版本钉死在单一具体值上的插件会被跳过。

启用步骤:

  1. 在 DSH 的 Plugins 页面安装并启用 Rice Patrol 及其组件。
  2. 阅读插件页上的自动恢复说明;恢复状态会显示在对话输入区附近。
  3. 若更新了插件文件,需重启 DSH 以加载新宿主代码。

配置字段示例见仓库内 config/recover.example.yml(GitHub 路径:LeeLizuoLiu/rice-patrol)。

典型用法与配置要点

典型用法以「启用即生效」为主:无需切换响应模式,也无需单独启动观察日志。日常只需在 Plugins 中保持启用;当推理区出现持续短行重复时,插件按两阶段窗口规则自行预警与确认。

仍可配置的项目(README 列举)包括:

  • 服务商 / 模型过滤;
  • 状态目录;
  • 恢复相关超时(含 resumeTimeoutMs)。

不可再配置「响应模式」;与其他会取消并恢复同一推理流的插件同时使用时,应只保留一个恢复控制器,避免互相抢流。

更完整的恢复设计与历史实现说明见仓库文档 docs/SINGLE_AGENT_RECOVERY.md。

适用场景与注意

适合谁:长期在 DSH 中运行 Agent、且遇到过推理区「短句复读、任务卡住」的开发者或运维;希望在同一会话内保留工具与编辑结果、减少手工停生成与重开会话的场景。

使用前请知悉:

  • 插件在当前 DSH 进程权限下运行,会读取推理文本并参与截断与恢复;安装前应自行审阅 GitHub 源码 与 MIT 许可证。
  • SkillHub(https://www.skillhub.cn)是社区插件目录站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,目录与宿主能力解耦。
  • 检测针对推理流的行级重复特征,不能替代输出 token 上限、业务层超时或人工审核;预警阶段模型仍会继续生成,直到二次窗口确认。

结尾

Rice Patrol 把「推理复读」从纯人工介入,变成可预期的两阶段检测与同会话自动恢复,并尽量保留已完成的工作区副作用。若你需要在 DSH 里降低 Agent 卡在短行循环上的成本,可在满足版本要求的前提下从目录页安装并在 Plugins 中启用。

  • 目录页:https://www.skillhub.cn/plugins/LeeLizuoLiu/rice-patrol
  • 源码与 README:https://github.com/LeeLizuoLiu/rice-patrol
羽毛球分组比赛记分
小程序二维码

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

Xiaoye