DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

dsh-harness2

A

dsh-harness2

Identified★ 1

该仓库暂未提供项目说明。

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}
}

Comments

Loading…

From the same category

awesome-dsh-plugin

by awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Development & Infrastructure

★ 21.4k

CC0-1.0

Python

Oct 28, 2026

Index only — not installable

by 0xsline

DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.

Development & Infrastructure

★ 1.3k

CC0-1.0

Python

Oct 16, 2026

Index only — not installable

by Yuuyuko-uu

DSH 鱼的记忆:给会话一份会淡忘的长期记忆,每条都带时间

Development & InfrastructureMemory & ContextSessions & MessagesManifest valid

★ 361

MIT

JavaScript

Oct 29, 2026

dsh plugin --profile web add dsh-fish-memory

by pax-beehive

Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub

Development & Infrastructure

★ 277

MIT

TypeScript

Oct 20, 2026

Index only — not installable

by xiajiajun516

DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.

Development & InfrastructureManifest valid

★ 268

MIT

TypeScript

Oct 28, 2026

dsh plugin --profile web add dsh-config-manager

by ECNU

DBLP and arXiv literature search, BibTeX retrieval and full-text acquisition with session-owned background jobs; an EduWork-maintained fork of SihanLv/dsh-literature.

Tools & CapabilitiesUI & ExperienceDevelopment & InfrastructureMemory & Context

★ 255

MIT

JavaScript

Oct 28, 2026

Index only — not installable