前言¶
DeepSeek Harness(简称 dsh)是 DeepSeek 开源的智能体运行时,核心理念是「一切皆插件」:模型、工具、技能、会话、沙箱、循环都可以换成可组合的插件。官方自带几套 agent preset,其中最常被拿来对比的是 Minimal 和 Standard。
Minimal 只暴露持久 bash 和 str_replace_editor 两个工具,首轮推理轨迹更干净;作者在 README 里把它概括为 “We need…” 风格。Standard 工具面更宽,适合真正干活,但同一份资料指出:DeepSeek V4 Pro 会强烈依赖 API 里可见的工具目录来选择执行轨迹,首轮更容易落到 “Let me…” 这类 standard-like 写法。全程停在 Minimal,评测分高,却丢掉了搜索、子 agent、工作流这些能力。
dsh-anchored-standard 把这两件事拆开:会话的第一次模型请求按 Minimal 条件启动,等会话出现可落库的晋升信号后,再换成一套可按需解锁的 resident 工具目录。本文按社区目录页和 GitHub 仓库交叉核实后的信息介绍它。
这是什么¶
dsh-anchored-standard 是一款 开发与运行时 方向的 DeepSeek Harness 插件,由 xiaobright 维护。社区目录页的定位是:两阶段 DeepSeek Harness 预设——先最小化对齐启动,再搭建完整标准环境。GitHub 仓库描述更具体:Minimal 对齐的 bootstrap,然后是完整 Standard 工具(并标注了 Project2 上的 98/99 分)。
需要先说清归属:
- 这是社区项目,README 和 NOTICE 都写明:不是官方 preset,与 DeepSeek 无从属、无背书关系。
- 收录它的 DeepSeek Harness 插件库 是独立社区站点,同样不要当成 DeepSeek / 幻方的官方应用商店。
- 目录页收录日期为 2026-08-15,分类为「开发与运行时」,安装命令写的是
dsh plugin add github:xiaobright/dsh-anchored-standard。 - 截至 2026-08-17,GitHub API 显示该仓库 3062 stars;同一天打开的目录详情页标注 1387 stars。星标以 GitHub 一手数据为准,目录数字可能滞后。
package.json版本为0.1.0,license字段为 MIT;仓库根目录的LICENSE也是 MIT(版权人 xiaobright,并保留 DeepSeek 部分版权)。GitHub SPDX 与目录页显示为NOASSERTION,是识别结果,不是另一份许可证。
它解决什么问题¶
作者在仓库 README(中英文一致)里给出了设计动机,数据来自其 Project2 评测,不是跨任务的通配结论:
- Standard 和 PTC 分别为 91、92 分;官方 Minimal 为 99、96 分。
- Anchored 系列在 Project2 上对 V4 Pro 做了三轮验证,分数为 98、99、99。
- 方法、口径和限制写在 xiaobright-v4-tool-surface-dose-response。README 明确说:这是该任务上的可复现证据,不宣称换模型、换工作负载一定更好。
核心做法是把「首次轨迹选择」和「后续工具能力」分开:
- 保持 Minimal 的完整 system prompt。
- 第一次模型请求只暴露官方 Minimal 的真实工具 schema:持久
bash+str_replace_editor。 - 第一次请求压制自动注入的上下文(AGENTS.md / CLAUDE.md 摘要、技能目录提醒等)。
- 出现首次持久晋升信号后,升到 resident 目录,而不是一次性倒出完整 Standard 工具表。
- 阶段状态从会话事件日志推导,resume / reload 不会丢。
Issue #11 把首轮轨迹拆成三个杠杆。README 给出的实验数字如下(均来自仓库文档,不是本文复测):
- 工具 schema:adapter 默认
maxTokens(256000)下,真实 Minimal 工具对 5/5 锚定;所有 standard 系 schema 11/11 落入 standard-like。这是默认组装真正依赖的杠杆。 - 输出预算:把首请求封到 1024 也能锚定(26/32),与工具描述无关。基础模式默认不设
bootstrapMaxTokens。 - 注入提醒:技能目录在场时锚定完全无法复现(0/9)。Issue #6 也记录过:本机没装技能能复现 “We need” 轨迹,装了技能目录注入就复现不了。基础模式现在用置顶的
context-gate在 harness 的统一注入路径上拦截,而不是按来源名逐个删。
两阶段怎么跑¶
基础模式(目录 preset/)的请求生命周期可以画成下面这样,原文在 README 的「工作原理」一节:
用户第一条消息
│
▼
┌ 请求 #1 ─ bootstrap 阶段 ─────────────────────────────────┐
│ 工具 : bash + str_replace_editor(Minimal 真实工具对) │
│ 上下文 : 无 AGENTS.md 摘要、无技能目录提醒 │
│ 预算 : adapter 默认值(bootstrapMaxTokens 可选) │
└────────────────────────────────────────────────────────────┘
│ 首次持久 tool/call 或 assistant/message
▼ 晋升——从持久事件推导,resume 安全
┌ 请求 #2 起 ─ resident 阶段 ───────────────────────────────┐
│ 工具 : bootstrap 对 + 发现工具 + 已解锁工具 │
│ 上下文 : 恢复常规注入 │
│ 预算 : adapter 默认值(封顶在晋升时剥离) │
└────────────────────────────────────────────────────────────┘
几个容易误解的点,README「重要行为」写得很清楚:
- 默认
promoteOn: either:第一次持久tool/call或 第一次assistant/message,谁先到谁晋升。纯文字首答也会在请求 #2 晋升;如果改成promoteOn: tool-call,首答不调工具就一直停在 bootstrap。 - 工具执行失败也会晋升,因为
tool/call已经落库。 - 晋升后的目录是 resident 集:bootstrap 两个工具,加上发现工具
dev_tool_search/skill_search/skill_load,再加上模型已经用dev_tool_search解锁的工具。web_search、subagent、workflow这类重型工具要再搜一次才出现。作者解释过:晋升时一次性倒出完整 Standard 目录,会把轨迹拉回 standard-like。 context-gate必须是preset/agent.cordis.yml的第一行,tool-bootstrap紧随其后。瀑布注册顺序决定拦截是否包在最外层。- 工具目录在晋升时变一次,之后每次解锁再变一次;这些点上请求前缀缓存会断。
- 插件本身不发起网络请求,也不加遥测。preset 的信任等级和 shell 访问相同。
仓库里还有若干实验变体,每个目录自包含,可单独复制安装:
| 模式 | 目录 | 首轮可见工具 | 额外代价 |
|---|---|---|---|
| Anchored Standard | preset/ |
Minimal 两个工具 | 无 |
| Zero-Anchored Standard | zero-anchored-standard/ |
0 个工具,先插一条固定测试消息 | 多一次模型调用 |
| Whoami Standard | whoami-standard/ |
0 个工具,先跑一轮「你是谁」 | 多一次模型调用 |
| Eternal Minimal | eternal-minimal/ |
全程只有两个工具,重型工具走 dshx bash 网关 |
无 |
| Prefab Anchored Standard | prefab/ |
用内置成功轨迹预填充空会话 | 实例化不调模型 |
日常使用先看基础模式即可。变体是对照实验和可用性探索,不是默认推荐。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端里运行:
dsh plugin add github:xiaobright/dsh-anchored-standard
需要可复现安装时,按目录页说明把 commit 哈希钉死:
dsh plugin add github:xiaobright/dsh-anchored-standard#<commit>
把 <commit> 换成仓库里实际的提交哈希。目录页原文是 #commit 这种占位写法。
这里有一个必须对照源码说明的差异。官方 Harness 文档写过:一个 npm 包如果没有声明 dsh.bundle,dsh plugin add 仍然能装,但只作为普通依赖,不会激活配置层。本仓库 package.json(0.1.0,private: true)没有 dsh.bundle 字段,也没有 prepare / postinstall 去拷贝 preset。因此目录页这条命令是社区站点的统一安装入口;真正把模式挂进会话的步骤,以 GitHub README 的复制安装为准。
先克隆仓库,再把整个 preset 目录拷到用户 preset 根下,目标目录名必须是 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
然后:
- 完整重启 DeepSeek Harness,不要只热加载。
- 新建一个空会话,在 preset 列表里选择 Anchored Standard (experimental)。
- 不要在已经产生内容的会话中途切换 preset。
其他模式同样复制对应目录即可,例如 whoami-standard/ 拷到 .agent-presets/whoami-standard。engines.node 要求 Node.js >=22.19.0;README 写明开发和验证环境是 DeepSeek Harness 0.1.0-rc.5、上游提交 47f9438、Windows / Node.js 24。Harness 目前仍是开发者预览版,官方允许破坏性变更;这套 preset 是 Standard 组装的完整快照,升级 dsh 后要先对照上游再继续用。
怎么确认它生效了¶
README 的验证方法是:导出 session JSONL,看 request/header。复现清单(issue #11 要求至少核对前两项)如下:
- 未配置
bootstrapMaxTokens时,首份 header 的config.maxTokens应是 adapter 默认值(文档举例 256000,且adapterDefaults.maxTokens: true)。 - 首份 header 的
tools必须恰好是["bash", "str_replace_editor"],不能是 Standard 的pwsh/read。 - 第一次请求的消息里不应出现 AGENTS.md / CLAUDE.md 摘要或可用技能目录提醒,只应有用户消息和 Minimal persona 系统提示。
- 首次工具调用或首次助手回复之后,下一份变更 header 应变成 resident 目录:上面那一对工具,加上
dev_tool_search/skill_search/skill_load,以及模型已经解锁的工具。 - 再往后的请求保持这套 resident 集,只通过显式
dev_tool_search增长,并恢复常规上下文注入。
仓库自带零依赖测试:
npm test
本地改过 shared/ 里的共用插件后,需要 npm run sync 再提交物化副本;npm run check 会核对「每个模式目录自包含、行引用不得使用 ../」这些不变量。
适用场景与注意事项¶
比较适合下面几类人:
- 已经在用 DeepSeek Harness,觉得官方 Standard 首轮轨迹偏「Let me」,想先用 Minimal 工具面对齐再干活。
- 需要在同一套 preset 里同时保留 shell / 编辑器,以及按需解锁的 Standard 工具。
- 愿意读 session JSONL、对照
agent.cordis.yml调promoteOn这类开关的开发者。
使用前建议先看这些边界:
- README 把整套模式标成 experimental。2026-08-17 的「项目状态」写明:官方 API 与 opencode go 订阅涨价后,主动开发基本停止,仓库维持可用,只接受维护性更新(bug 修复和力所能及的 harness 兼容)。机制结论和剂量数据作者认为仍然有效,且基本与模型无关。
- 插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。preset 与 shell 访问同一信任等级。
- Issue #11 记录过:某个预构建 profile(CLI 报
0.1.0-rc.6)会用adapterDefaults.maxTokens盖掉提案封顶,此时bootstrapMaxTokens不生效。默认组装因此只依赖 Minimal 工具 schema。 - Windows 上晋升后的目录仍包含
pwsh;bootstrap 阶段全平台都是bash+str_replace_editor。Standard 的沙箱bash行被禁用,改用持久 PTY bash(同名工具不能在同一层注册两次)。 - 目录页的安装警告和 README 一致:如需可复现安装,请固定 commit 哈希。
- 社区里有同名 fork。本文只覆盖 xiaobright/dsh-anchored-standard,不要把其他仓库的安装命令混用。
小结¶
dsh-anchored-standard 做的事情很具体:用官方 Minimal 的真实工具对和干净首请求,把 DeepSeek V4 Pro 的轨迹先锚定住,再在持久晋升之后打开 resident 工具面。它不是官方应用,也不是「装上就全面超过 Standard」的保证;Project2 上的 98/99 分只对作者公开的评测口径成立。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-anchored-standard/
GitHub:https://github.com/xiaobright/dsh-anchored-standard
DeepSeek Harness 上游:https://github.com/deepseek-ai/deepseek-harness