限時優惠

DeepSeek Harness 是什麼:dsh 怎麼組合模型與工具

DeepSeek Harness · dsh · 外掛
2026-09-14 約 12 分鐘閱讀

我們用 npx @deepseek-ai/dsh 拉到 0.1.5-rc.1,跑了說明和 --dump-default-config。

DeepSeek Harness 是可替換的 Agent 底盤,不是模型價目表。預設 web 樹 152 條外掛,模型 deepseek-flash,埠 3080。

實測要點

  1. DeepSeek Harness 是開源 Agent 底盤,CLI 叫 dsh;它不是 DeepSeek 模型,也不是一張 API 價目表。
  2. 我們用 npx @deepseek-ai/dsh 拉到 0.1.5-rc.1(Node.js v24.14.1)。dsh --help 把產品說成「依序疊加的外掛組合包」。
  3. dsh --profile web --dump-default-config 打出 152 條外掛;預設模型 deepseek-official / deepseek-flash;Web 預設 127.0.0.1:3080;Agent preset 預設 standard。
  4. 模型走 ctx.llm 適配器,工具走 ctx.tools,循環走 ctx.agentLoop。換模型 ≠ 換工具,也 ≠ 換循環。
  5. 開發者預覽會破壞相容。官方入口:deepseek.com/harness、GitHub。
先分清「模型 / 工具 / 循環」三層,再決定要不要把 dsh 當日常編碼 Agent。
開發者在編輯器前查看 DeepSeek Harness 外掛組合
dsh 把模型、工具和循環拆成可替換外掛;先看組合層,再談好不好用。

DeepSeek Harness 是什麼

DeepSeek Harness 是 DeepSeek 開源的 Agent 執行時。倉庫 README 寫得很直:它由 Cordis 撐起「一切皆外掛」——模型適配器、工具登錄、工作階段日誌、沙箱,以及 Agent 循環本身,都可以在設定層替換,而不必去改 Harness 源碼。產品頁同樣把能力列成外掛:模型、工具、技能、工作階段、沙箱、儲存、循環、排程、UI。

命令列名字是 dsh。這和「DeepSeek V4-Flash 多少錢」不是同一類搜尋。後者買的是模型推理;前者裝的是把模型、工具和工作階段串起來的底盤。Token 帳單仍看模型提供方,見 DeepSeek V4-Flash API 價格。

官方同步標明:這是開發者預覽,會有破壞性變更。2026-08-13 倉庫公開後,文件比行銷頁細,但預設把讀者當成要寫外掛的人。本文只回答「是什麼、怎麼組合、我們實際跑出了什麼」,不把 Cordis 事件域當入門課文。

我們測了什麼:環境、命令、原始數字

標題若寫「實測」,就必須有環境、任務、方法和原始輸出。下面是我們本機跑過的部分,不是官網截圖複述。

環境:macOS(darwin 25.4.0),Node.js v24.14.1。用 npx --yes @deepseek-ai/dsh,不 clone 源碼。為避免寫進預設 ~/.dsh,把 DSH_HOME 指到隔離目錄後再 dump 設定。

任務:① 讀 CLI 說明與版本;② 讀 web 子命令說明;③ 匯出 web profile 的預設組合樹(不含使用者層、不含 --patch)。我們沒有在這篇裡跑帶 API Key 的完整編碼任務,因此下面不把「改了某個倉庫」寫成實測。

本機實際執行
npx --yes @deepseek-ai/dsh --version
# 0.1.5-rc.1

npx --yes @deepseek-ai/dsh --help
npx --yes @deepseek-ai/dsh web --help

export DSH_HOME="$PWD/.tmp_dsh_home"
npx --yes @deepseek-ai/dsh --profile web --dump-default-config

dsh --help 原文把產品定義為:在使用者覆蓋之下,依序疊加外掛組合包。子命令只有兩條主線:web(--profile web 的別名)和 plugin(把剩餘參數轉給該 profile 目錄裡的 pnpm)。範例裡還有 headless 一次一任務、--dump-config 列印組合樹、--from-default-profile 從範本派生自訂 profile。

dsh web --help 印出的監聽預設值與文件一致:--host、--port(0 讓作業系統選空閒埠)、--no-open、--trusted-host。設定樹裡 webserver 預設 127.0.0.1、3080。

項測到的值證據
npm 套件版本0.1.5-rc.1dsh --version
預設模型deepseek-official / deepseek-flashdump 裡 agent-default-model
Web 監聽127.0.0.1:3080dump 裡 webserver
預設 presetstandarddump 裡 agent-presets
預設組合樹行數539 行 YAML / 152 條 id--dump-default-config
標記 disabled26 條(多為 tool-*)同一份 dump

26 條 disabled: true 主要是 tool-bash、tool-fs、tool-skill、tool-web 這類面向模型的工具:dsh-web-app 先把它們關掉,等工作區 / preset 再開。所以「dump 裡工具是灰的」不等於「Web UI 沒有 bash」。這是組合層的細節,行銷頁不會寫。

模型、工具、循環怎麼組合

架構文件把執行中的 dsh 寫成一棵啟動時按層疊加的外掛樹。你日常只碰四樣東西:

  • Profile:$DSH_HOME/profiles/<name> 裡的具名組裝。隨附範本有 web、headless、sdk、sdk-minimal、acp。
  • Bundle:帶 dsh.bundle 的 npm 套件,貢獻一份 patch。第一次初始化時,@deepseek-ai/dsh-base 是第一層。
  • 外掛模組:匯出 apply(ctx) 的 TypeScript。模型適配器 ctx.llm.registerAdapter();工具 ctx.tools;循環是 ctx.agentLoop。
  • 覆蓋順序:各 bundle patch → profile 自己的 cordis.patch.yml → home 級 patch → 命令列 --patch。
層你碰什麼換成什麼別搞混
模型Settings → Models,或 $DSH_HOME/settings.yaml官方卡、內建提供方、自訂閘道換模型不會自動換 bash 實作
工具preset / DSH_TOOLS_MODE / 工具外掛標準全套、極簡雙工具、自己註冊工具 schema 進提示詞,和模型目錄是兩本帳
循環預設 dsh-agent-loop,可整段替換另一個 loop 外掛大多數產品把 loop 寫死,dsh 故意不寫死
入口dsh web / headless / sdk / acp同一套 CLI,不同 profile不要再發明第二個可執行檔

裝第三方外掛的官方路徑是 dsh plugin --profile web add <套件名或 git>。我們跑 dsh plugin --profile web --help 時,它直接把 pnpm 的說明打出來——文件說「轉發給 pnpm」不是比喻。本地試驗可以 dsh web --patch ./cordis.yml,教學見 第一個外掛。發佈到 GitHub 時加上 dsh-plugin topic。

綁模型時,DeepSeek 官方卡只收一把 API Key,金鑰進 $DSH_HOME/.credentials.yaml。自訂閘道要小寫 Provider ID、base URL、協定(openai-completions / openai-responses / anthropic-messages)。Provider ID 不能改名:工作階段和預設模型都指向它。閘道能通 Key 仍可能 400——推理模型可能把系統提示發成 developer 角色、輸出上限發成 max_completion_tokens。官方要你在 settings.yaml 寫 compat.supportsDeveloperRole: false 和 maxTokensField: max_tokens。步驟見 Configure models。

Web UI 還要先選 workspace,否則輸入框不可用;官方建議先發一句「總結這個倉庫」。見 Use the Web UI。技能(Skills)是另一套程序性說明,和 dsh 外掛不是同一個東西;背景見 Hermes Agent Skills 清單。

四種模式怎麼選

產品頁列了四種執行模式。我們 dump 到的預設 preset 是 standard,與「標準模式」對齊。其餘三種以官方說明為準,下表不把未跑過的模式寫成「我們測了」。

模式官方給什麼什麼時候用別指望
標準檔案編輯、Shell、檢索、Skills、計畫、目標、子代理、工作流程日常編碼 Agent它不會替你選對模型價
PTC標準能力 + Code Mode SDK,模型用一段 TypeScript 組合多步工具工具呼叫鏈很長、想少來回閘道協定不對時一樣失敗
極簡持久 bash + str_replace_editor給模型做最小工具基準沒有完整檢索/工作流程
創造標準能力 + 檢查執行時、記憶體裡試外掛、寫新 preset你要自製組合,而不是只聊天預覽期 API 會變

權限另有三檔,寫在 dump 的 permission 外掛裡:read-only、workspace-write(預設,可用 DSH_PERMISSION_MODE 改)、danger-full-access。標準模式不等於「已經放開寫整個磁碟」。

和 Claude Code / Hermes 誰該用

把 dsh 理解成「可拆的底盤」,選擇會清楚很多。

  • 要可替換的模型、工具、循環,並準備寫外掛:用 DeepSeek Harness。預覽期請鎖版本。
  • 要產品化編碼 Agent、帳單按套餐走:先看 Claude Code 2026 價格,不要指望 dsh 複製同一套訂閱體驗。
  • 要 Skills / Gateway 那套程序性記憶:Hermes 更貼;dsh 也有 dsh-skill,但預設 dump 裡 filesystem skill 是關掉的,直到組合打開它。
  • 已經在跑 MCP:協定層仍獨立,見 MCP 開發者指南。dsh 文件把它當作用戶端能力,不是「裝了 dsh 就不用 MCP」。

第三方評測提到可選 bundle 能把任務委派給 Claude Code / Codex。我們這份預設 web dump 沒有出現 subagent-claude-code 這類條目,所以不寫成「開箱即委派」。Agent 技術棧怎麼疊,見 2026 AI Agent 技術棧。

FAQ

DeepSeek Harness 和 DeepSeek 模型是一回事嗎?

不是。Harness 是執行時;模型是推理服務。預設路由指向官方 DeepSeek,但你可以加 OpenAI、Anthropic 或自訂閘道。帳單跟你選的提供方走。

dsh 怎麼安裝、Web UI 預設埠?

官方:npx @deepseek-ai/dsh web。我們測到套件版本 0.1.5-rc.1,預設 127.0.0.1:3080。SSH 場景加 --no-open。源碼路徑是 clone 後 pnpm install && pnpm run build && pnpm dsh web。

模型、工具到底怎麼組合?

Profile 疊 bundle,bundle 用 patch 插入外掛。模型註冊在 ctx.llm,工具在 ctx.tools,循環在 ctx.agentLoop。看自己機器上的樹:dsh --profile web --dump-config。

四種模式怎麼選?

日常編碼用標準(預設)。要比模型本身,用極簡。工具鏈很長,看 PTC。要自製 preset,用創造。預覽期名稱和能力可能改。

開發者預覽能不能上生產?

官方警告會有破壞性變更。可以在隔離目錄、鎖 npm 版本做實驗;不要把未鎖定的 npx 直接掛到生產憑證機。

小結

DeepSeek Harness 回答的是「Agent 底盤怎麼拆」,不是「DeepSeek 模型排第幾」。我們在 0.1.5-rc.1 上看到的硬事實:web 預設樹 152 條外掛、預設 Flash、3080 埠、preset=standard。組合順序是 profile → bundle → 模型適配器 / 工具登錄 / 循環,而不是在一個二進位檔裡寫死。

把 dsh 放在一台不合蓋的 Mac 上,比筆電掛著 Web UI 更穩

dsh web 要常駐 Node、工作區磁碟和 API Key。筆電合蓋,工作階段、子代理和 Trajectory 回放一起斷。雲端 Mac mini 適合當隔離的 Harness 主機:SSH 裡跑 dsh web --no-open,DSH_HOME 和工作區留在同一台機器,白天用的憑證機不兼做預覽版 Agent。權限先停在 workspace-write,日租驗完再鎖月租。

對比套餐 · 查看方案 · 開通驗收清單 · 開始使用