dsh-research-nudge:给 DSH 编码智能体加一个研究提醒

前言

在 DeepSeek Harness(DSH)里做编码智能体时,一个常见情况是:agent 反复读代码、改文件、跑命令,然后遇到同样的失败。此时查一下官方文档、GitHub 或网页,可能比继续本地试错更快。

dsh-research-nudge 是为这类情况提供的 advisory research-debt guard。它不直接执行搜索,也不拦截工具,只是在下一个模型步骤里加入一条短提醒,提醒 agent 先判断是否需要外部证据。

这是什么

dsh-research-nudge 是 Leitarkkk 维护的 DSH 插件,采用 MIT 许可证。它观察 agent 的工具执行情况,当一段时间内出现读取、编辑、执行和重复失败,但没有使用被识别的外部研究工具时,会加入一个短提醒。

它主要做这几件事:

  • 把本地循环的累积成本变成一个确定性分数,称为 Research Debt。
  • 当状态满足条件时,在下一个模型步骤中加入提醒。
  • 提供一个模型可见的 research_nudge_snooze 工具,供 agent 按 agent 粒度临时静音。
  • 在 DSH 配置中注册一个 research-nudge 行,便于覆盖设置。

它不做这些:

  • 不调用 LLM。
  • 不执行搜索。
  • 不阻塞工具调用。
  • 不强制 agent 浏览网页。

核心功能

观察本地试错

插件关注的是 agent 在本地循环中的信号:读取代码、编辑文件、执行命令、失败、再次失败。它会把这些成本累积成 Research Debt。

加入提醒

当 Research Debt 或相关状态达到插件设定的条件时,插件会把一条短提醒加入下一个模型步骤。提醒会建议 agent 暂停并判断:当前任务是否可以靠本地证据完成;如果不确定 API、报错或平台行为,是否需要查官方文档、GitHub 或网页。

提醒后,默认会进入 10 分钟冷却,期间不再重复提醒。

识别外部研究

当 agent 使用被识别的研究工具时,该 agent 的累积状态会被重置。这里的“研究工具”由插件配置中的 researchTools 规则匹配。

临时静音

如果 agent 确实想基于本地证据继续推进,可以调用 research_nudge_snooze 工具临时抑制提醒。默认持续 30 分钟,并受 maxAgentSnoozeMinutes 上限约束。

需要注意:

  • 静音是按 agent 的,其他 agent 不受影响。
  • 静音期间 Research Debt 继续累积,它不算研究,也不会清除失败计数。
  • 如果 research_nudge_snooze 调用失败,它会被记录为普通失败调用,不会重置债务。

安装与启用

先确认环境满足前置条件:

DeepSeek Harness 0.1.0-rc.7
Node.js ^22.19.0 或 >=24.0.0

从 GitHub 安装:

dsh plugin --profile web add github:Leitarkkk/dsh-research-nudge

如果希望固定版本,可以固定 tag 或 commit:

dsh plugin --profile web add github:Leitarkkk/dsh-research-nudge#<tag-or-commit>

如果该包已发布到 npm,也可以使用预构建安装:

dsh plugin --profile web add dsh-research-nudge

Git 安装会运行包中的 prepare 构建。pnpm 可能会拒绝该构建,直到你显式信任它。建议先检查源码和 MIT 许可证,再按 DSH/pnpm 提示处理构建信任问题。

安装后,检查组合后的配置层,然后重启 profile:

dsh --profile web --dump-config
dsh web

典型用法

覆盖插件配置

插件会在 DSH 配置中注册一个 research-nudge 行。你可以在 profile 的 cordis.patch.yml 中覆盖这一行:

- id: research-nudge
  config:
    enabled: true
    debtThreshold: <number>
    researchTools:
      - <research-tool-pattern>
    reminder: <custom-string>
    debug: false

DSH 的 patch 层会替换这一行的整个 config 值,而不是深合并,因此覆盖时建议把该行需要保留的字段写完整。

本地开发安装

如果你要修改或调试插件,可以本地克隆并安装:

git clone https://github.com/Leitarkkk/dsh-research-nudge.git
cd dsh-research-nudge
npm install
npm run check
dsh plugin --profile web add .

使用临时静音

在 agent 工具调用上下文中,可以使用模型可见工具:

research_nudge_snooze

它用于抑制一段时间的提醒,默认 30 分钟,并受 maxAgentSnoozeMinutes 限制。

适用场景与注意

适合使用它的场景:

  • 在 DSH 的 web profile 或其他 profile 中运行编码 agent。
  • agent 经常进行本地读取、编辑、执行和失败重试。
  • 你希望用轻提醒方式,减少无外部证据的重复试错。
  • 你接受插件以 advisory 方式工作,不直接搜索、不拦截工具。

使用前注意:

  • 插件作为 DSH 插件运行,使用当前 dsh 进程可用的权限;安装前应检查源码与许可证。
  • 该插件是提醒型,不是强制搜索;提醒会允许不需要外部研究的任务继续。
  • 配置覆盖是整行替换,不是深合并。
  • 临时静音只影响调用它的 agent,不重置 Research Debt。
  • npm 安装命令以该包已发布为前提;未发布时优先使用 GitHub 安装或本地路径安装。

链接

插件目录页:

https://www.skillhub.cn/plugins/Leitarkkk/dsh-research-nudge

GitHub 仓库:

https://github.com/Leitarkkk/dsh-research-nudge
羽毛球分组比赛记分
小程序二维码

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

小夜