前言¶
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