Preface¶
DeepSeek Harness (referred to as dsh for short) is an open-source agent runtime developed by DeepSeek, whose core philosophy is “Everything is a plugin”: models, tools, skills, conversations, sandboxes, and loops can all be replaced with composable plugins. The official distribution includes several agent presets, among which the most frequently compared are Minimal and Standard.
Minimal only exposes two persistent tools: bash and str_replace_editor, resulting in cleaner first-round reasoning traces. The author summarized it as a “We need…” style in the README. Standard has a wider range of tools and is suitable for actual work, but the same documentation points out: DeepSeek V4 Pro will strongly rely on the tool directory visible in the API to select execution traces, and the first round is more likely to fall into “Let me…”这类 standard-like 写法。Sticking exclusively to Minimal yields high evaluation scores, but discards capabilities like search, sub-agents, and workflows.
dsh-anchored-standard separates these two concerns: the first model request of a session starts under Minimal conditions, and after a persistable promotion signal appears in the conversation, it switches to a set of resident tool directories that can be unlocked on demand. This article introduces it based on cross-verified information from the community directory page and the GitHub repository.
What is this¶
dsh-anchored-standard is a DeepSeek Harness plugin targeting development and runtime, maintained by xiaobright. Its positioning on the community directory page is: a two-stage DeepSeek Harness preset—first align with minimal startup, then build a complete standard environment. The GitHub repository description is more specific: a Minimal-aligned bootstrap, followed by full Standard tools (and marked with a score of 98/99 on Project2).
First, we need to clarify the attribution:
- This is a community project, and both the README and NOTICE clearly state: It is not an official preset, and has no affiliation or endorsement relationship with DeepSeek.
- The DeepSeek Harness Plugin Library that hosts it is an independent community website, which should not be regarded as the official app store of DeepSeek / 幻方 either.
- The directory page was added on 2026-08-15, categorized under “Development and Runtime”, and the installation command is dsh plugin add github:xiaobright/dsh-anchored-standard.
- As of 2026-08-17, the GitHub API shows the repository has 3062 stars; the directory details page opened on the same day marked 1387 stars. The star count from GitHub is the authoritative data, and the directory figure may be delayed.
- The package.json version is 0.1.0, and the license field is MIT; the LICENSE in the repository root is also MIT (copyright holder xiaobright, with partial copyright reserved by DeepSeek). The GitHub SPDX and directory page show NOASSERTION, which is a recognition result, not a separate license.
What problem does it solve¶
The author provided the design motivation in the repository README (consistent in both Chinese and English), with data from its Project2 evaluation, not a universal conclusion across tasks:
- Standard and PTC scored 91 and 92 respectively; the official Minimal scored 99 and 96.
- The Anchored series was verified three times on Project2 for V4 Pro, with scores of 98, 99, 99.
- The methodology, caliber, and limitations are documented in xiaobright-v4-tool-surface-dose-response. The README clearly states that this is reproducible evidence for this task, and does not claim that better results will be achieved by changing models or workloads.
The core approach separates “first-round trace selection” and “subsequent tool capabilities”:
1. Retain the complete system prompt of Minimal.
2. Only expose the official Minimal’s real tool schema for the first model request: persistent bash + str_replace_editor.
3. Suppress automatically injected context (AGENTS.md / CLAUDE.md summaries, skill directory reminders, etc.) for the first request.
4. After the first persistent promotion signal appears, switch to the resident directory, instead of dumping the full Standard tool list at once.
5. The stage state is derived from the session event log, and will not be lost during resume / reload.
Issue #11 breaks down the first-round trace into three levers. The experimental figures given in the README are all from the repository documentation, not retested in this article:
1. Tool schema: Under the adapter’s default maxTokens (256000), the real Minimal tool pair anchors 5/5 times; all Standard-style schemas fall into standard-like patterns 11/11 times. This is the lever that truly relies on by default assembly.
2. Output budget: Sealing the first request to 1024 tokens can also achieve anchoring (26/32), which is unrelated to the tool description. The base mode does not set bootstrapMaxTokens by default.
3. Injection reminder: Anchoring cannot be reproduced at all when the skill directory is present (0/9). Issue #6 also records: No skills installed locally can reproduce the “We need” trace, but installing the skill directory injection will make it impossible to reproduce. The base mode now uses a pinned context-gate to intercept at the unified injection path of the harness, instead of deleting them one by one by source name.
How the two-stage workflow runs¶
The request lifecycle of the base mode (directory preset/) can be illustrated as follows, the original text is in the “How it works” section of the README:
User's first message
│
▼
┌ Request #1 ─ Bootstrap Stage ─────────────────────────────────┐
│ Tools : bash + str_replace_editor (official Minimal pair) │
│ Context: No AGENTS.md summary, no skill directory reminders │
│ Budget : Adapter default value (bootstrapMaxTokens optional) │
└───────────────────────────────────────────────────────────────┘
│ First persistent tool/call or assistant/message
▼ Promotion — derived from persistent events, safe to resume
┌ From Request #2 Onwards ─ Resident Stage ─────────────────────┐
│ Tools : Bootstrap pair + discovered tools + unlocked tools │
│ Context: Restore regular injections │
│ Budget : Adapter default value (capped when promotion strips)│
└───────────────────────────────────────────────────────────────┘
Several easily misunderstood points are clearly stated in the README’s “Important Behavior” section:
- Default promoteOn: either: The first persistent tool/call or the first assistant/message, whichever comes first triggers promotion. A pure text first response will also promote on request #2; if changed to promoteOn: tool-call, the session will stay in bootstrap if no tool is called in the first response.
- Tool execution failures will also trigger promotion, because tool/call has already been persisted to the database.
- The post-promotion directory is a resident set: the two bootstrap tools, plus discovery tools dev_tool_search / skill_search / skill_load, plus tools that the model has unlocked via dev_tool_search. Heavy tools like web_search, subagent, and workflow will only appear after another search. The author explained: Dumping the full Standard directory at once during promotion will pull the trace back to standard-like patterns.
- The context-gate must be the first line in preset/agent.cordis.yml, followed immediately by tool-bootstrap. The waterfall registration order determines whether the interception is wrapped in the outermost layer.
- The tool directory changes once during promotion, and then changes again each time a tool is unlocked; the request prefix cache will break at these points.
- The plugin itself does not initiate network requests, nor does it add telemetry. The preset has the same trust level as shell access.
There are several experimental variants in the repository, each directory is self-contained and can be copied and installed separately:
| Mode | Directory | First-round Visible Tools | Additional Cost |
|---|---|---|---|
| Anchored Standard | preset/ |
2 Minimal tools | None |
| Zero-Anchored Standard | zero-anchored-standard/ |
0 tools, first inserts a fixed test message | One extra model call |
| Whoami Standard | whoami-standard/ |
0 tools, first runs a “who are you” round | One extra model call |
| Eternal Minimal | eternal-minimal/ |
Only two tools throughout, heavy tools go through the dshx bash gateway |
None |
| Prefab Anchored Standard | prefab/ |
Pre-populate empty session with built-in successful traces | Instantiate without calling the model |
You can just use the base mode for daily use. The variants are for controlled experiments and usability exploration, not recommended as defaults.
Installation and Activation¶
The installation command given on the community directory page is as follows, run it in the DeepSeek Harness terminal:
dsh plugin add github:xiaobright/dsh-anchored-standard
For reproducible installations, pin the commit hash as per the directory page instructions:
dsh plugin add github:xiaobright/dsh-anchored-standard#<commit>
Replace <commit> with the actual commit hash in the repository. The directory page uses the placeholder notation #commit.
There is a difference that must be verified against the source code. The official Harness documentation states: If an npm package does not declare dsh.bundle, dsh plugin add can still install it, but it will only act as a regular dependency, and will not activate the configuration layer. This repository’s package.json (0.1.0, private: true) has no dsh.bundle field, nor does it have prepare / postinstall scripts to copy the presets. Therefore, the command on the directory page is the unified installation entry for the community site; the steps to actually attach the preset to sessions are subject to the copy installation instructions in the GitHub README.
First clone the repository, then copy the entire preset directory to the user’s preset root, and the target directory name must be anchored-standard.
Linux / macOS:
git clone https://github.com/xiaobright/dsh-anchored-standard.git
cd dsh-anchored-standard
dsh_home="${DSH_HOME:-$HOME/.dsh}"
mkdir -p "$dsh_home/.agent-presets"
test ! -e "$dsh_home/.agent-presets/anchored-standard"
cp -R preset "$dsh_home/.agent-presets/anchored-standard"
PowerShell:
$target = Join-Path $env:USERPROFILE '.dsh\.agent-presets\anchored-standard'
if (Test-Path -LiteralPath $target) { throw "Preset already exists: $target" }
New-Item -ItemType Directory -Force -Path (Split-Path -Parent $target) | Out-Null
Copy-Item -Recurse -LiteralPath '.\preset' -Destination $target
Then:
1. Fully restart DeepSeek Harness, do not just hot-reload.
2. Create a new empty session, and select Anchored Standard (experimental) from the preset list.
3. Do not switch presets midway through a session that has already generated content.
Other modes can be copied the same way: for example, copy whoami-standard/ to .agent-presets/whoami-standard. The engines.node requires Node.js >=22.19.0; the README states that the development and validation environment is DeepSeek Harness 0.1.0-rc.5, upstream commit 47f9438, Windows / Node.js 24. Harness is currently in developer preview, and the official allows breaking changes; this preset is a complete snapshot of Standard assembly, so you should compare against the upstream version before continuing after upgrading dsh.
How to confirm it is working¶
The verification method in the README is: export the session JSONL and check the request/header. The reproduction checklist (at least the first two items are required per issue #11) is as follows:
- When bootstrapMaxTokens is not configured, the config.maxTokens in the first header should be the adapter’s default value (the documentation example is 256000, and adapterDefaults.maxTokens: true).
- The tools in the first header must be exactly ["bash", "str_replace_editor"], not Standard’s pwsh / read.
- The first request’s messages should not contain AGENTS.md / CLAUDE.md summaries or available skill directory reminders, only the user message and the Minimal persona system prompt.
- After the first tool call or first assistant response, the next changed header should switch to the resident directory: the above two tools, plus dev_tool_search / skill_search / skill_load, and tools that the model has unlocked.
- Subsequent requests will retain this resident set, only grow via explicit dev_tool_search, and restore regular context injection.
The repository includes a zero-dependency test:
npm test
After modifying the shared plugins in shared/, you need to run npm run sync before committing the materialized copy; npm run check will verify invariants like “each mode directory is self-contained, and line references must not use ../”.
Applicable Scenarios and Notes¶
It is more suitable for the following groups of people:
- Users who are already using DeepSeek Harness and find that the official Standard’s first-round trace is too “Let me”-style, and want to first align with Minimal tools before starting work.
- Users who need to retain both shell / editor and on-demand unlocked Standard tools in the same preset.
- Developers who are willing to read session JSONL and adjust switches like promoteOn by referring to agent.cordis.yml.
It is recommended to review these boundaries before use:
- The README marks the entire mode as experimental. The “Project Status” as of 2026-08-17 states: After the official API and opencode Go subscription price increases, active development has basically stopped, and the repository remains available, only accepting maintenance updates (bug fixes and力所能及的 harness 兼容). The author believes that the mechanism conclusions and dose-response data are still valid, and basically model-agnostic.
- The plugin runs with the permissions of the current dsh process, and may execute code during installation. You should check the source code repository and license before installing. The preset has the same trust level as shell access.
- Issue #11 records that a certain pre-built profile (CLI reports 0.1.0-rc.6) will use adapterDefaults.maxTokens to override the proposed cap, at which point bootstrapMaxTokens will not take effect. The default assembly therefore only relies on the Minimal tool schema.
- On Windows, the post-promotion directory still includes pwsh; the bootstrap phase uses bash + str_replace_editor across all platforms. The Standard sandbox bash entry is disabled, using persistent PTY bash (the same-name tool cannot be registered twice in the same layer).
- The installation warning on the directory page is consistent with the README: For reproducible installations, please pin the commit hash.
- There are forks with the same name in the community. This article only covers xiaobright/dsh-anchored-standard, do not mix installation commands from other repositories.
Summary¶
What dsh-anchored-standard does is very specific: it uses the official Minimal’s real tool pair and clean first request to anchor DeepSeek V4 Pro’s trace first, then opens the resident tool surface after persistent promotion. It is not an official application, nor a guarantee that it will “comprehensively surpass Standard after installation”; the 98/99 score on Project2 only holds for the evaluation caliber published by the author.
Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-anchored-standard/
GitHub: https://github.com/xiaobright/dsh-anchored-standard
DeepSeek Harness upstream: https://github.com/deepseek-ai/deepseek-harness