DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
H

dsh-harness2

Harness2

Harness²(递归代理编排)插件,为 DeepSeek Harness 提供 Propose–Probe–Compose 自我改进能力。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:Asiu-x/dsh-harness2#bd9dfd077a0e6607197000c3f8706d1efe1cf257
README兼容性版本

兼容性与来源证明

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

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

版本

0.1.0stable
2026/10/28

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Headless@deepseek-ai/dsh-headlessdsh one-shot bundle:基于 dsh-base 的直接核心 Agent/Session 运行器,不包含 Host、HTTP 或浏览器层Experimental Ralph Bundle@deepseek-ai/dsh-experimental-ralph-bundle使用全新代理执行明确请求的重复工作。Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序Subagent Claude Code@deepseek-ai/dsh-subagent-claude-code基于官方 Agent SDK 的一次性 Claude Code 子代理提供方

README

dsh-harness2

Harness² (recursive agent harnessing) for DeepSeek Harness.

This is a DSH plugin that lets an agent improve its own harness from execution evidence: it runs a representative task under the current harness, proposes invariant and domain edits, probes them on the same task, composes an improved harness, selects an output anonymously, and stores the adopted harness plus the lesson in a per-domain library.

It ports the method of Google Research's Harness² (paper, Apache-2.0) onto DSH's native agent and prompt surfaces. It does not re-run the paper's benchmarks.

Status: 0.1.0, early release. Tested with DSH 0.1.5-rc.1 and Node.js 20+. See Verification and Limitations.

Install

From GitHub (public plugin package):

dsh plugin --profile web add github:Asiu-x/dsh-harness2

Restart DSH (or start dsh web) afterwards. The package declares a DSH bundle patch, so it is added to the profile's plugin tree automatically.

Local development:

git clone https://github.com/Asiu-x/dsh-harness2.git
dsh plugin --profile web add /absolute/path/to/dsh-harness2

Check that the plugin is in the composed tree:

dsh --profile web --dump-config | grep -A2 harness2

Quick start

The plugin registers three model tools:

ToolPurpose
harness2_refineRun one Harness² improvement loop on a representative task.
harness2_statusShow the adopted harness, its components, the library, and the latest run.
harness2_resetArchive the current harness and restore the seed. Requires confirm: true.

Ask the agent to use harness2_refine on a task:

Use harness2_refine on this representative task:
"Read data/orders.csv, compute the total of the amount column, and write result.md containing exactly 'Total: <number>' on one line."
domain: data-analysis
k: 1

A k=1 sequential run is roughly nine child-agent runs: one base probe, two proposals, two candidate probes, one composition, one final probe, one selector, and one reflection. Start with k=1 and a small workspace. Model calls are billed by your DSH provider.

The human-facing command:

/harness2            status
/harness2 library    list the current domain's library
/harness2 reset      archive and restore the seed harness

Once a harness is adopted, ordinary DSH agents in that workspace receive its always-on text and recent lessons as a prompt section. A fresh session sees it at startup; the session that ran the refinement receives an adoption context message on its next step.

What it does

task ──► base rollouts ──► PROPOSE (INV + DOM) ──► PROBE ──► COMPOSE ──► final probe
                                                                 │
                                                                 ├─► anonymous SELECT
                                                                 └─► REFLECT ──► library
                                                                             │
                                                                             └─► next task
  • Propose — two proposers edit the harness: INV changes how the agent works; DOM adds what a practitioner of the domain knows. Proposals are the edited files, not patch descriptions.
  • Probe — each candidate runs the same task in an isolated copy of the workspace. The evidence is the trajectory, the artifact, and whether the run delivered.
  • Compose — one composer merges, adopts, or keeps the base, with a specific supporting moment for each decision.
  • Select — an anonymous selector compares rendered deliverables, not harnesses. Base is included as a conservative check; a no-op winner is not adopted.
  • Reflect — writes what each edit did and at most one transferable lesson into .dsh-harness2/library/<domain>/.

Read docs/method.md for the full method, the eight components, the DSH mapping, and the differences from the reference release.

The editable harness

The harness lives at .dsh-harness2/harness/:

FileRoleCost
system.mdrole and procedurealways on
guardrails.mdstanding rulesalways on
memory.mdverified workspace factsalways on
tool-guidance.mdhow to use toolsalways on
skills/<name>/SKILL.mdon-demand workflowloaded only when invoked
sub_agents/<name>/AGENT.mddelegated roleseparate context
scripts/<name>.pydeterministic helperrun on demand
plugins/<name>.mdmiddleware rule (guidance)read as a rule

Always-on text is capped (default 12,000 characters). A skill must be named as a trigger in system.md or guardrails.md; referenced scripts must exist. Candidate middleware plugins are not executed by this build.

Configuration

Override the plugin entry in your profile's cordis.patch.yml (or via --patch):

- id: harness2
  config:
    maxK: 3
    concurrency: 2
    timeoutMinutes: 20
    maxWorkspaceMB: 50
    workspaceIsolation: copy
    selection: true
    reflection: true
KeyDefaultMeaning
dataDir.dsh-harness2Harness, library, and run data.
maxAlwaysOnChars12000Cap for the four always-on files.
maxK3Maximum recursion budget accepted by the tool.
modesequentialDefault recursion mode.
concurrency2Parallel child agents per phase.
timeoutMinutes20Per-child-agent timeout.
toolTimeoutMinutes120Cooperative timeout for the whole refine tool.
maxWorkspaceMB50Copy cap; larger workspaces need a smaller path or isolation: shared.
workspaceIsolationcopycopy = one workspace copy per probe; shared = run in place (can interfere).
selectiontrueAnonymous selection; if false, adopt the best successful final.
reflectiontrueWrite the experience record after adoption.
libraryLessons3Recent lessons injected into ordinary agents.
libraryEntries8Library entries copied into a proposer context.
model / provider / reasoningEffortsession defaultOverride the child-agent route.

Data layout

.dsh-harness2/
├── harness/                     # the live adopted harness (or seed)
├── state.json                   # adopted, domain, run, inventory
├── library/<domain>/
│   ├── INDEX.md
│   └── harnesses/<date>-<task>/
│       ├── harness/             # full adopted tree
│       ├── EXPERIENCE.md
│       └── experience.json
└── runs/<run>/
    ├── progress.log
    ├── run.json
    ├── rollouts/                # probe trajectories
    ├── deliverables/            # final answers + changed files
    ├── proposals/               # candidate harness + notes + meta
    ├── compositions/            # composed harness + notes + meta
    ├── contexts/                # evidence trees given to internal agents
    └── workspaces/              # isolated probe copies

runs/ and workspaces/ are ignored by the data directory's .gitignore; harness/ and library/ can be committed if you want to version the improvement.

Verification

npm test covers the harness surface and validation rules, the store/library, workspace copy/diffing, and trajectory rendering.

End-to-end, in a disposable DSH headless profile, this release was exercised on:

  • a task where the base already succeeded (composer kept the base; selector compared; no fake adoption);
  • a task with a hidden workspace rule where a DOM proposal added the verified rule to memory.md, the composer kept it, the selector chose the final, and the harness was adopted;
  • a fresh session whose system prompt contained the adopted always-on harness and the library lesson.

The plugin has not been validated against the paper's benchmark numbers, and it is not a benchmark harness.

Limitations

  • Each probe runs the real task in a copy of the workspace. Side effects are contained by copy, but the child uses your DSH profile's tools and permissions; review your permission preset before using this on sensitive data.
  • Candidate middleware plugins are guidance, not executed. Skills, scripts, subagents, and prompt text are the supported levers.
  • shared isolation runs probes in place and can produce collisions; it exists for workspaces too large to copy, not as the default.
  • Selection compares deliverables using the model, not a ground-truth grader. It is evidence, not a score.
  • Runs are expensive. k=1 is the default; k>1 multiplies model calls.
  • The tool can switch the plugin instance to another workspace via its workspace argument, but only one workspace is active per plugin instance.

License and acknowledgements

Apache-2.0. See LICENSE and NOTICE.

The method, component taxonomy, and several prompt rules are adapted from google-research/harness2, Copyright 2026 Google LLC, Apache-2.0. Harness² is a research release and is not an officially supported Google product. This integration is independent and is not affiliated with or endorsed by Google or DeepSeek.

Reference:

@article{xu2026harness2,
  title   = {Harness$^2$: Recursive Agent Harnessing for an Open World},
  author  = {Xu, Ruiyao and Chen, Yanfei and CuiZhu, Zhongying and Dalvi Mishra, Bhavana and Ming, Yifei and Yu, Han and Han, Rujun and Lee, Chen-Yu and Pfister, Tomas},
  journal = {arXiv preprint arXiv:2610.14224},
  year    = {2026},
  url     = {https://arxiv.org/abs/2610.14224}
}