DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Research Nudge — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
R

dsh-research-nudge

Research Nudge

DeepSeek Harness 的研究债务防护工具:促使编码代理在反复进行本地试错前,先搜索文档、GitHub 和网络。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Leitarkkk/dsh-research-nudge#9c89186e99485ea1c941af6fe76567907b69c606
README兼容性版本

兼容性与来源证明

Research Nudge 以 dsh-research-nudge 发布,当前版本为 0.3.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/28

版本

0.3.0stable
2026/8/28
0.1.0stable
2026/8/28

相关插件

正在加载相关插件…

最新版
0.3.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 4
周下载
0
最近提交
2026/8/28
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 search-research 分类下经过校验的插件。

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-plugin向模型提供 BrowserSkill 浏览器自动化(browser_* 工具)的 DeepSeek Harness 工具插件Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:13 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl 无需密钥;Parallel/Perplexity/SerpBase/DeepSeek 需要密钥),支持时间筛选、平台搜索和 web_fetch,并提供网页设置界面。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。

README

dsh-research-nudge

English | 简体中文

An advisory research-debt guard for DeepSeek Harness. It notices when an agent spends a long stretch reading, editing, executing, and repeating failures without consulting external evidence, then adds a short reminder to the next model step.

It does not call an LLM, perform a search, block a tool, or force the agent to browse. The reminder explicitly allows self-contained work to continue normally.

The problem

Agents sometimes fall into a local trial-and-error loop:

read → guess an unfamiliar API → edit → run → fail → edit → run → same failure

A search of the official docs, an exact error message, or an existing GitHub issue may resolve that uncertainty faster. dsh-research-nudge turns the growing cost of the local loop into a deterministic score called Research Debt.

Research Debt: a calculated example

This is a hypothetical sequence calculated from the documented default weights, not production telemetry. It shows exactly how the score would cross the threshold:

StepSignalAdded debtTotal
Read local codeordinary tool+11
Edit a filemutation+23
Run and failexecution + failure+1 +48
Edit againmutation+210
Run and hit the equivalent failure againexecution + failure + repeated failure+1 +4 +621

The default threshold is 20, so the last result carries an additional model-visible context:

[Research Nudge]

Pause and reflect before continuing:

1. What problem am I trying to solve right now? Restate it precisely.
2. What approach am I currently taking, and how many attempts has it taken without success?
3. Am I fully confident this approach will work? If I am guessing at an API, an error message, a library's behavior, or platform details I have not verified, I am not fully confident.
4. If I am not fully confident: external research is cheaper than more local trial-and-error. Search the official documentation, GitHub issues, existing libraries, or the exact error message before trying again.

Do not search merely to satisfy this reminder. If the task is self-contained and external research would not help, continue normally. If you are deliberately making progress from local evidence and do not want another reminder for a while, use the research_nudge_snooze tool.

Current signals: debt=21/20, tool_calls_since_research=5,
failures=2, repeated_failures=1.

Equivalent failures are fingerprinted after normalizing changing numbers and addresses, so TypeError at line 123 and TypeError at line 456 count as a repeat. A recognized research tool resets the accumulated state for that agent.

Install

Prerequisites:

  • DeepSeek Harness 0.1.0-rc.7 (the current next release line)
  • Node.js ^22.19.0 or >=24.0.0, matching the current DSH baseline

From GitHub:

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

Git installs run this package's prepare build. pnpm may reject that build until you explicitly trust it. Follow the exact allowBuilds entry printed by DSH/pnpm, review the source first, and pin a tag or commit for reproducible installs:

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

After the package is published to npm, the prebuilt install is:

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

Verify the composed layer, then restart the profile:

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

Local development install

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

Relative paths are resolved from the directory where dsh plugin is invoked.

Default policy

SignalDebt
Ordinary tool call+1
File mutation+2
Shell/build/test execution+1
Failed tool result+4
Repeated equivalent failure+6
Recognized external research toolreset to 0

A reminder is eligible when any condition is met:

  • Research Debt reaches 20;
  • 15 tool calls occur without recognized research; or
  • 15 minutes pass without recognized research.

After a reminder, the per-agent state continues accumulating but further reminders are suppressed for 10 minutes. Names are normalized before classification and research matching, so WebSearch, web_search, and web-search are treated consistently.

Agent snooze

An agent that is deliberately making progress from local evidence can call the model-visible research_nudge_snooze tool to suppress reminders for a while (defaults to 30 minutes, capped by maxAgentSnoozeMinutes):

  • Snoozing is per agent — other agents keep their own schedules.
  • Research Debt keeps accumulating while snoozed: snoozing neither counts as research nor erases debt or failure counters. Once the snooze expires, an already-eligible state nudges on the next tool call.
  • A failed snooze call (for example, invalid arguments rejected by schema validation) arms nothing and is recorded as an ordinary failed call. Snooze executions bypass research recognition entirely, so a custom researchTools pattern such as search (which substring-matches the snooze tool's own name) can never turn a failed snooze into a debt reset.

Configuration

The bundle inserts a row with the id research-nudge. Override that row in the profile's cordis.patch.yml:

- id: research-nudge
  config:
    enabled: true
    debtThreshold: 20
    maxToolCallsWithoutResearch: 15
    maxMinutesWithoutResearch: 15
    cooldownMinutes: 10
    ordinaryToolDebt: 1
    mutationDebt: 2
    executionDebt: 1
    failureDebt: 4
    repeatedFailureDebt: 6
    maxAgentSnoozeMinutes: 60
    researchTools:
      - web_search
      - web_fetch
      - github_search
      - docs_search
      - fetch_url
    debug: false

DSH patch layers replace a row's entire config value rather than deep-merging it. Any omitted fields above fall back to this plugin's schema defaults. reminder may also be set to a custom string.

FieldDefaultMeaning
enabledtrueRegister the lifecycle listener
debtThreshold20Debt score that makes a reminder eligible
maxToolCallsWithoutResearch15Call-count fallback threshold
maxMinutesWithoutResearch15Elapsed-time fallback threshold
cooldownMinutes10Minimum time between reminders
ordinaryToolDebt1Weight for other local tools
mutationDebt2Weight for write/edit/delete-style tools
executionDebt1Weight for shell/build/test-style tools
failureDebt4Extra weight for a failed result
repeatedFailureDebt6Extra weight for an equivalent consecutive failure
maxAgentSnoozeMinutes60Upper bound for one agent-requested snooze of reminders
researchToolscommon web/docs/GitHub namesSubstring patterns that reset state after normalization
reminderbuilt-in advisory textModel-visible reminder body
debugfalseLog resets and queued reminders to stderr

How it integrates with DSH

The plugin listens to the current tools/post-execute waterfall. It observes the typed ToolExecution and ToolExecutionResult, delegates to later listeners with next(), then prepends one official createUserMessage(...) notice through PostToolDecision.additionalContexts. Accept/block decisions and existing contexts are preserved.

The plugin declares inject: ['tools'] and registers its research_nudge_snooze tool through ctx.tools.register(...); no other service is read from ctx. State is held in a WeakMap keyed by the calling agent and disappears with the agent/runtime.

Compatibility

The adapter is compiled and tested against the official @deepseek-ai/dsh-tools and @deepseek-ai/dsh-llm 0.1.0-rc.7 contracts. DSH is still a Developer Preview and explicitly allows compatibility-breaking changes. If a later DSH release changes the tool waterfall or message contract, update the small adapter in src/index.ts; the deterministic policy in src/policy.ts is independent.

Privacy and safety

  • No telemetry, network requests, API keys, or extra model calls.
  • No tool arguments are stored or copied.
  • The in-memory fingerprint uses only failed-result text; it is not persisted.
  • The reminder is advisory and never changes a tool result or permission decision.
  • Git installs execute a local build script; review and pin third-party code before allowing it.

Development

npm ci
npm run check
npm pack --dry-run

See CONTRIBUTING.md for contribution guidelines.

License

MIT