使用 dsh-anchored-standard 为 DeepSeek Harness 配置两阶段 Agent 预设

前言

DeepSeek Harness(简称 dsh)是 DeepSeek 开源的智能体运行时,核心理念是「一切皆插件」:模型、工具、技能、会话、沙箱、循环都可以换成可组合的插件。官方自带几套 agent preset,其中最常被拿来对比的是 MinimalStandard

Minimal 只暴露持久 bashstr_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.0license 字段为 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 明确说:这是该任务上的可复现证据,不宣称换模型、换工作负载一定更好。

核心做法是把「首次轨迹选择」和「后续工具能力」分开:

  1. 保持 Minimal 的完整 system prompt。
  2. 第一次模型请求只暴露官方 Minimal 的真实工具 schema:持久 bash + str_replace_editor
  3. 第一次请求压制自动注入的上下文(AGENTS.md / CLAUDE.md 摘要、技能目录提醒等)。
  4. 出现首次持久晋升信号后,升到 resident 目录,而不是一次性倒出完整 Standard 工具表。
  5. 阶段状态从会话事件日志推导,resume / reload 不会丢。

Issue #11 把首轮轨迹拆成三个杠杆。README 给出的实验数字如下(均来自仓库文档,不是本文复测):

  1. 工具 schema:adapter 默认 maxTokens(256000)下,真实 Minimal 工具对 5/5 锚定;所有 standard 系 schema 11/11 落入 standard-like。这是默认组装真正依赖的杠杆。
  2. 输出预算:把首请求封到 1024 也能锚定(26/32),与工具描述无关。基础模式默认不设 bootstrapMaxTokens
  3. 注入提醒:技能目录在场时锚定完全无法复现(0/9)。Issue #6 也记录过:本机没装技能能复现 “We need” 轨迹,装了技能目录注入就复现不了。基础模式现在用置顶的 context-gate 在 harness 的统一注入路径上拦截,而不是按来源名逐个删。

两阶段怎么跑

基础模式(目录 preset/)的请求生命周期可以画成下面这样,原文在 README 的「工作原理」一节:

用户第一条消息
        
        
 请求 #1 ─ bootstrap 阶段 ─────────────────────────────────┐
 工具   : bash + str_replace_editorMinimal 真实工具对)  
 上下文 :  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_searchsubagentworkflow 这类重型工具要再搜一次才出现。作者解释过:晋升时一次性倒出完整 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.bundledsh 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

然后:

  1. 完整重启 DeepSeek Harness,不要只热加载。
  2. 新建一个空会话,在 preset 列表里选择 Anchored Standard (experimental)
  3. 不要在已经产生内容的会话中途切换 preset。

其他模式同样复制对应目录即可,例如 whoami-standard/ 拷到 .agent-presets/whoami-standardengines.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.ymlpromoteOn 这类开关的开发者。

使用前建议先看这些边界:

  • 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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜