2026 年 DeepSeek Harness(dsh):架構、模式、版本與安全評估

更新於 2026 年 9 月 13 日;本指南基於 dsh-v0.1.5-rc.2。
DeepSeek Harness(dsh)適合評估為 Agent 執行階段,但對「是否已穩定到足以用於生產」的答案仍是否定。DeepSeek 將它標示為開發者預覽軟體,警告將出現破壞相容性的變更,並說明尚未通過安全稽核、未獲生產就緒認定。這不表示 dsh 沒有價值;正確作法是固定評估版本、隔離它可接觸的資源,並在交付有價值檔案或憑證前測量自己的工作負載。
本文說明架構、區分面向使用者的模式和 CLI profile,並提供可重現的評估路徑。內容反映 2026 年 9 月 13 日檢查的 dsh-v0.1.5-rc.2 儲存庫標籤及發布頁面。移動分支上的文件可能含有安裝版本尚未包含的工作。
DeepSeek Harness 是什麼
官方儲存庫將 dsh 描述為 DeepSeek AI 開發的開源 Agent harness。模型提供推理;harness 提供模型轉接器、工具、工作階段、檔案系統和子行程存取、核准政策、設定及 Agent 迴圈。
設計建基於 Cordis 和「一切皆為外掛」模型。此標籤的架構文件指出,外掛向共用內容貢獻服務、型別事件與可逆效果;模型轉接器、工具登錄、工作階段日誌及 Agent 迴圈都可替換,profile 按既定順序組合 bundle 與 patch 檔案。
這使你可經由 profile 和 patch 更換 provider 或增加能力,毋須 fork 整個執行階段。但不代表每個元件可在任何任務中安全替換,亦不代表外掛故障會隔離於行程可存取的資料之外。安全說明表示模型產生的命令及第三方外掛可能存取開放給它們的檔案、行程、網路和憑證。
為何工作階段日誌重要
dsh 將持久工作階段事件寫入只追加日誌。架構文件指明日誌是模型歷史來源,且模型可見輸入必須可由日誌重建;官方頁面也將重播、續接、搜尋與 fork 視為同一事件流上的操作。
這提供的不是模糊「記憶」,而是模型看過什麼、哪些工具事件已提交的紀錄。不過結果仍非確定:模型、provider 回應、工具環境、外掛集合及外部系統都會影響下次執行。將日誌視為稽核與除錯輔助,並驗證所需行為。
工作階段格式改變亦影響升級計畫。v0.1.5-rc.1 版本說明提到遷移至 V3:支援的舊日誌遷入新版本且保留原件,但升級後工作階段不能由降級版本讀取。回復執行檔不等於回復工作階段資料;升級重要工作區前先複製 Harness home,並在可丟棄工作階段測試遷移。
四種面向使用者的模式
DeepSeek 官方 Harness 頁面列出四種模式:
| 模式 | 官方描述 | 合適的評估問題 |
|---|---|---|
| Standard | 完整編碼 Agent,含檔案編輯、Shell、檔案和網頁擷取、Skills、計畫、目標、子 Agent 與工作流程。 | 核准和工具政策能否限制欲執行任務? |
| PTC | 透過 Code Mode SDK 暴露 Standard 能力,模型可在 TypeScript 程式組合多項工具操作。 | 批次操作能否改善工作流程又不令審查更困難? |
| Minimal | 官方產品概覽描述為持久 bash 與 str_replace_editor。 |
小而明確的工具面能否完成欲基準測試任務? |
| Creator | 檢查執行階段、在記憶體實驗 Cordis 外掛並建立自訂 Agent preset。 | 能否原型 preset 而不將它當生產政策? |
舊「Code Mode」標籤容易誤讀:官方稱模式為 PTC,並說明它使用 Code Mode SDK;它不是名為 code 的獨立、廣泛記錄執行階段 profile。
產品概覽和 rc.2 隨附 profile 在不同層級使用「Minimal」。rc.2 CLI 行為參考中,Web minimal preset 只組合平台持久 shell,其他模型可見外掛不存在,故 str_replace_editor 必須在 Web profile 明確啟用。rc.1 發布說明對 Web minimal 和 Python sdk-minimal 說明同樣預設。Python 指南另有獨立 sdk-minimal 樹及選用編輯器,不能只由四模式概覽推斷編輯器存在。
模式與 CLI profile 是不同層
rc.2 @deepseek-ai/dsh CLI 參考稱 dsh 是受支援 Node 應用啟動器:
| CLI 入口 | 角色 |
|---|---|
dsh web |
Web UI;dsh --profile web 的別名。 |
dsh --profile headless "job" |
一個新的持久工作階段,列印最終答案後結束。 |
dsh --profile sdk |
透過 stdio 提供 SDK 用戶端的 JSON-RPC 伺服器。 |
dsh --profile sdk-minimal |
使用獨立 minimal Agent 樹的 SDK 伺服器。 |
dsh --profile acp |
透過 ACP stdio 面向自動化用戶端。 |
profile 是有序外掛 bundle 層。Web profile 可即時重載 patch;headless、SDK、SDK-minimal、ACP 在啟動時套用各層,因為一次性或 stdio 應用取得工作後替換相依項會使生命週期失效。因此 profile 名稱說明 dsh 如何啟動與組合執行階段,並非與四種產品模式一對一。
rc.2 Python SDK 指南中,sdk-minimal 使用獨立樹、持久 shell、沒有執行階段內容或壓縮、未壓縮 JSONL 日誌;str_replace_editor 可選。指南更稱可見路徑為 danger-full-access,所以要求隔離工作區或容器。較少工具並非更強安全邊界。
最新版本紀錄改變了什麼
檢查的候選是 v0.1.5-rc.2,標籤 dsh-v0.1.5-rc.2,標示 Pre-release;GitHub 顯示於 9 月 10 日 15:09 發布。rc.2 說明有回饋提交和交付檔案卡 UI 改善。
此前 v0.1.5-rc.1 候選在 9 月 10 日 03:09 發布,包含新的 DeepSeek 模型轉接器項目、任意檔案上傳、可續接子 Agent 控制、模型宣告支援時的動態系統提示更新、模型發現改善、代理環境處理、V3、工作階段鎖定、預設工具變動,以及串流工具呼叫續接、Web 重連等大量修正。
這些說明沒有可用率、失敗率、平均復原時間或生產可靠性結果。長修正清單是閱讀說明和跑回歸任務的理由,不是穩定性統計。測試記錄應分開 GitHub 發布和標籤、可能檢查的 master commit、以及環境實際安裝版本。
安全且可重現的首次評估
評估時只使用一條已固定的來源路徑。下列命令遵循 rc.2 README及 rc.2 CLI 參考。它們是文件記載的入口,並非本文實際執行的命令。
首次啟動之前,先建立 checkout、一次性工作區與新的 Harness home。範例使用 POSIX shell 語法,並假設 Git、Node.js 與 pnpm 已依 rc.2 README 的要求可用;它不規定任何未經驗證的執行階段版本:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
git checkout dsh-v0.1.5-rc.2
pnpm install
pnpm run build
export DSH_HOME="$(mktemp -d)"
EVAL_WORKSPACE="$(mktemp -d)"
printf '%s\n' 'Disposable dsh evaluation workspace.' > "$EVAL_WORKSPACE/README.md"
printf 'DSH_HOME=%s\nEVAL_WORKSPACE=%s\n' "$DSH_HOME" "$EVAL_WORKSPACE"
把列印出的兩個絕對路徑存到執行筆記。Web UI 檔案選擇器應使用顯示的 EVAL_WORKSPACE 路徑;任何第二個 shell 都應貼上顯示的 DSH_HOME 路徑,不要以為該 shell 會繼承變數。DSH_HOME 僅供這次評估使用。rc.2 會在其中建立 profile 檔案、設定、憑證參照與工作階段。暫存工作區與來源 checkout 是分離的。不要在其中放憑證,啟動前也要從行程可見的所有位置移除敏感檔案。若任務需要 OS 層級隔離,請把這個 checkout、home 與工作區放在一次性 VM 或容器內;dsh 的工作區選擇器與核准提示不提供那條 OS 邊界。
在來源根目錄,以來源入口啟動 Web UI:
pnpm dsh web --no-open
rc.2 README 記載預設位址 http://127.0.0.1:3080。瀏覽器開啟 Choose workspace,選擇上述確切路徑;別因來源 checkout 是呼叫目錄就用它當任務工作區。再開啟 Settings → Models,設定模型,執行不碰祕密或生產檔案的無害任務。
首次試用時還有第二條邊界必須理解。rc.2 中,base-backed profile 的新工作階段預設為 workspace-write:Bash 與檔案系統的變更被限制在工作階段工作區及平台暫存根,但讀取與網路存取不受此 preset 限制。已啟用的公開 HTTP 擷取不會為每一次呼叫要求核准。已儲存的 General 權限設定套用到之後的 Web 工作階段,不套用到已開啟的工作階段;變更後請在新工作階段確認設定。這些是 dsh 的政策細節,不是 OS 隔離;啟動之前要讓敏感資源無法觸及。
啟動別的 profile 或比較 patch 前,以相同 checkout、home 檢查組成:
pnpm dsh --profile web --dump-config
Web 行程會佔用第一個終端。複製 home 或檢查最終狀態之前,停止服務與任何活躍工作階段;若改開另一個 shell,請明確 export 已記錄的 $DSH_HOME 路徑,並在執行命令前回到來源 checkout。rc.2 CLI 參考說明,此命令會初始化缺少的 profile 檔案、列印組合後的樹,且不會啟動 Web app。記錄標籤、來源 checkout、profile、patch 檔案、模型識別碼、$EVAL_WORKSPACE、$DSH_HOME 與任務結果。CLI/help 和發布說明描述的是行為,並不是本機命令已成功的證據。
小心設定模型或閘道
Models 支援內建、自訂 provider。rc.2 provider 指南要求 provider ID、base URL、API 協定、憑證和至少一個模型。支援 openai-completions、openai-responses、anthropic-messages。模型發現只是方便功能;端點沒有支援列舉形狀時手動輸入模型 ID。
OpenAI 相容閘道仍可能因請求形狀不同拒絕。指南特別指出 system-prompt role、輸出 token 欄位相容性;影像或推理宣告只描述端點,不測試端點。成功儲存 key 只是設定進展,不代表實際任務可行。
若把 Tokenhot 當成要評估的 provider 路徑,其保存的 Quick Start 文件記載 API 設定使用 https://api.tokenhot.ai/v1 以及 Bearer Token/API key 驗證。Web UI 中請使用 Settings → Models → Add a custom provider,輸入該文件化 base URL,選擇所選 Tokenhot 路徑實際提供的協定,並加入已經驗證的模型 ID。provider 設定屬於這次評估的 $DSH_HOME/settings.yaml;Web UI 將憑證保存在 $DSH_HOME/.credentials.yaml,設定中只保留它的參照。請透過 UI 或文件化的環境機制輸入 key,絕不可寫進一次性工作區或原始碼控制。
只有所選 Tokenhot 路徑記載或確認 openai-completions 協定時才使用它。請以自己的帳戶與工作負載驗證模型 ID 和請求形狀。本文可取得的 Tokenhot 材料並未證實目前模型供應、價格、延遲、可用率或成功的 dsh 請求,因此這個例子不作出任何此類承諾。
升級與回復檢查
候選版本切換前,停止 Web 行程與任何活躍工作階段,然後複製上述實際使用的 $DSH_HOME 及一次性工作區,讓副本放在版本紀錄旁。該 home 包含使比較能重現的 profile、設定、憑證參照與工作階段。閱讀發布說明中工作階段格式、預設工具、provider 轉接器與外掛 API 的變更;在舊、新環境執行同一個小任務,然後比較:
- Web UI 或 headless profile 能否以預期工作區、模型啟動?
- 工具核准是否在政策預期位置顯示?
- 任務能否續接,日誌是否含需檢查模型可見輸入、工具結果?
- 外掛和 patch 能否無設定錯誤載入?
- 新執行失敗時能否回復複製 home,繼續使用舊工作階段檔?
遷移測試時不要覆寫唯一的工作階段副本。若新版寫入較新的工作階段格式,請將原件留在旁邊,並在副本上測試降級行為。若新的來源 checkout 失敗,請同時回復已複製的 $DSH_HOME 與工作區;只回復執行檔可能留下舊版無法讀取的工作階段資料。只有這些檢查在自己的檔案、provider、工具與核准政策上都通過,才把某版本推廣到有價值的環境。
常見問題
DeepSeek Harness 是官方軟體嗎?
它發布在 deepseek-ai/deepseek-harness 組織,由 DeepSeek 官方 Harness 頁連結,採 MIT 授權;兩者是了解目前行為、發布狀態的適當來源。
dsh 是 LLM 嗎?
不是。它是模型周邊執行階段:provider、工具、工作階段、Agent 迴圈、政策和應用 profile;仍需相容模型端點與憑證。
CI 應使用哪個入口?
從文件化 headless profile 的一次性命令開始,提供一次性工作區與明確 Harness home,固定版本,測試要自動化的確切 provider、任務。Headless 是入口,並不保證確定或生產安全。
版本修正清單能證明穩定性嗎?
不能。發布說明描述變更、修正,並不衡量跨人群或工作負載可靠性。用它選回歸案例,再收集自己的結果。
我能經 Tokenhot 路由 dsh 嗎?
有可能:所選端點必須提供 dsh 支援協定,模型 ID 和請求形狀必須相容。Tokenhot API 設定提供 base URL、Bearer Token 模式;實際相容性需要帶憑證請求,超出本文範圍。
應從哪裡開始?
閱讀 rc.2 儲存庫 README,選隔離工作區,針對無害任務執行 Web UI 或 headless profile。provider 實驗若需 Tokenhot API 欄位,遵循 Quick Start,並在下結論前驗證模型、協定。
dsh 是會有破壞性變更、尚未安全稽核的開發者預覽軟體。本文區分產品模式與 CLI profile,說明隔離、固定版本、工作階段遷移及自有工作負載評估。


