使用 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.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

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

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

小夜