AI 開發 ·

DeepSeek Harness dsh 安裝教學:Web 啟動、Headless 與 AI Coding 實測

夜間書桌上有一台筆電,深色螢幕左側是終端命令 npx @deepseek-ai/dsh web 與 127.0.0.1:3080,右側是 dsh 工作臺

dsh 已經能跑 DeepSeek 官方的 Agent Coding 執行階段;截至 2026 年 9 月仍是 developer preview。第一步在隔離目錄開啟 Web UI,或跑通一條唯讀 headless 任務,不要先讓它改整個專案。

倉庫是 deepseek-ai/deepseek-harness,命令列叫 dsh。它把工作階段、工具、權限和工作臺打成一套執行階段,30 分鐘就能驗證它在你機器上站住沒有。值得試;現在不適合當成正式環境的編碼 Agent。

DeepSeek Harness dsh 是什麼?

DeepSeek Harness 是 DeepSeek 開源的 Agent 執行框架,MIT 授權,命令列叫 dsh。產品頁的說法是:模型、工具、Skill、工作階段、沙箱、儲存、迴圈和 UI 都是可替換外掛,底層用 Cordis,口號是 Everything is a plugin。(deepseek.com/harness

搜「DeepSeek Harness 是什麼」時,真正要分清的是三件東西,而不是再聽一遍函式呼叫協定。

API 是引擎,dsh 是已經裝好方向盤、工具箱和駕駛邏輯的 Runtime。 自己寫 while 迴圈調 chat/completions,是另一條路;8 月那篇 DeepSeek Harness AI Agent 指南 講自建迴圈。這篇只驗收官方啟動器:怎麼裝、Web 開在哪、第一條編碼任務怎樣算跑通。

方案 負責什麼 適合誰
DeepSeek API 模型、Tool Calling 自己開發 Agent
dsh Runtime、工具、工作階段、權限、UI 想直接跑官方 Agent
自建 Agent 自己設計迴圈 要完全控制架構

官網還列了幾種執行模式。第一次用 Standard 的 Web UI 就夠:完整編碼 Agent,能改檔案、跑 shell、做搜尋。Code 模式是在 Standard 之上讓模型用 TypeScript 編排多輪工具呼叫,等 3080 穩定再開。Minimal 幾乎只留 bash 和編輯器,適合對比模型,不適合當日常 IDE。Creator 用來看執行階段、試外掛,第一小時可以跳過。

安裝 dsh 前要準備什麼?

官方 README 的零安裝路徑只有兩句:先裝 Node.js,再跑 npx @deepseek-ai/dsh web。社群文件提過 Node ^22.19.0>=24.0.0;以你本機 npx 能否拉起 @deepseek-ai/dsh 為準,不必為對齊某篇博客去降級系統 Node。

金鑰按官方 CLI 說明解析:程序環境 → ~/.dsh/.credentials.yaml → 目前目錄 .env~/.dsh/.env。第一次選一種即可,不要同時寫四份還對不上:

zsh
export DEEPSEEK_API_KEY=sk-你的金鑰
mkdir -p ~/.dsh
printf 'DEEPSEEK_API_KEY=sk-你的金鑰\n' >> ~/.dsh/.env
chmod 600 ~/.dsh/.env

官方適配器名稱是 deepseek-official,預設走官方模型路由。要把請求打到自建閘道,屬於第二步,先看 OmniRoute 實測 有沒有必要,第一小時不必換 Base URL。

CLI 把你執行命令時所在的目錄當作預設 workspace。先建一個空倉庫或副本,例如 ~/work/dsh-first-run。SAFETY.md 建議最小權限,並優先用可丟棄的虛擬機器、容器或專用環境。金鑰和隔離目錄沒準備好,就先別執行 npx:介面能開、任務不能控,比裝不上更糟。

第一次執行
  • 獨立 workspace,不用 $HOME 或正式環境倉庫
  • 第一條任務唯讀;預設權限,不開 danger-full-access
  • 金鑰只放環境變數或 ~/.dsh/.env;留著 ~/.dsh/sessions/ 回看呼叫
仍是 developer preview
能執行命令、改檔案、載入外掛。第一次用空倉庫或專用機器。官方說明見 SAFETY.md

DeepSeek Harness 怎麼安裝並開啟 Web UI?

第一次不必 clone。進入隔離目錄:

zsh
cd ~/work/dsh-first-run
npx @deepseek-ai/dsh web

這是官方 README 的安裝入口。dsh web--profile web 的別名,第一次會按範本初始化 ~/.dsh/profiles/web/。預設在 http://127.0.0.1:3080 起工作臺,本機啟動還會開啟預設瀏覽器。透過 SSH 啟動時只列印主機 URL,本機轉送由 SSH 用戶端或編輯器處理。預覽階段命令會改,以 deepseek-ai/deepseek-harness 當天 README、CLI 說明為準。

常用參數
npx @deepseek-ai/dsh web --no-open
npx @deepseek-ai/dsh web --port 8080

預設只綁迴路位址。需要遠端看介面,用 SSH 本機轉送即可;第一天沒有必要把 UI 暴露到區域網路。官方使用指南寫:workspace 在 Web UI 裡用目錄選擇器指定,不是一條 CLI 旗標。開啟 3080 後,先確認目前目錄就是隔離倉庫,再發任務。

設定落在 ~/.dsh/:家目錄讓它自己建;sessions/ 用來回看工具呼叫;.env 只放金鑰,權限 600;profiles/web/ 第一天不用手改 patch。

三種情況才值得 clone 原始碼:要跟某個 commit、要改外掛,或 npx 拉套件失敗、需要對照建置產物。那時再 git clone 官方倉庫,pnpm installpnpm run buildpnpm dsh webpnpm dsh web 直接用建置產物,不會再編一次。原始碼樹裡跟 AGENTS.md,不要把示範命令抄進正式環境指令稿。

dsh Headless 怎麼用?

dsh run 已刪除。一次性任務用 headless:新開工作階段,把最後一段非空助手文字打到 stdout,然後結束。

zsh
cd ~/work/dsh-first-run
npx @deepseek-ai/dsh --profile headless "列出目前目錄下的檔案名稱,不要修改任何檔案"

這就是第一條值得寫進筆記的實測:程序結束代碼、stdout 有沒有最終回覆、~/.dsh/sessions/ 有沒有多一條可回看的日誌。任務必須唯讀。官方還有 sdk / sdk-minimal / acp 等 profile,給別的程序用 JSON-RPC 或 ACP 接入,那是第二週的事,第一小時不要並行開。

用 DeepSeek Harness 做 AI Coding

Web 或 headless 能說話,還不等於「可以讓它改倉庫」。按官方 Standard 能力,它確實能改檔案、跑 shell、做搜尋和子 Agent;預覽軟體加上模型會寫命令,所以第一條編碼任務必須能對照 git diff。下面不是跑分,而是確認 dsh 會不會在你指定的目錄裡改對一個函式。

先做一個能看清對錯的小倉庫:greet.ts 故意回傳 hi Ada,測試預期 Hello, Ada。對錯你自己能看出來,不依賴模型「說得像那麼回事」。

zsh
mkdir -p ~/work/dsh-first-run && cd ~/work/dsh-first-run
git init
printf '%s\n' 'export function greet(name: string): string {' '  return "hi " + name' '}' > greet.ts
printf '%s\n' 'import { greet } from "./greet.ts"' 'if (greet("Ada") !== "Hello, Ada") {' '  throw new Error("unexpected greeting")' '}' > greet.test.ts
git add . && git commit -m "chore: isolated dsh first-run repo"
  1. 唯讀:閱讀 greet.ts 和 greet.test.ts,說明測試為什麼會失敗。不要修改任何檔案。 通過:它指出回傳值和測試預期不一致,工作區 git status 仍是乾淨的。
  2. 單一檔案:只修改 greet.ts,讓 greet("Ada") 回傳 Hello, Ada。不要改測試,不要提交。 改完後自己跑測試,沒有現成 runner 就直接看函式回傳值,再執行 git diff。通過:diff 只動 greet.ts,回傳值對上測試。
  3. 測試仍失敗,就把失敗輸出貼回去,讓它再改同一檔案。最後提交前必須你自己看 diff。編碼任務失敗時,開啟 ~/.dsh/sessions/ 或官網 Trajectory,區分「選錯工具」「參數不合法」「你拒絕了核准」「工作區根本不是這個目錄」。

第一次用預設 Standard / native 工具。單一檔案任務已經穩定,再考慮 DSH_TOOLS_MODE=codeboth,讓模型用 TypeScript 編排多輪呼叫。官方參考裡,DSH_PERMISSION_MODE 的程序級回退接近 workspace-writedanger-full-access 幾乎不再問核准,第一次執行清單已經排除它。卡在 JSON 工具參數時,先讀 JSON Schema 與 AI Agent,再考慮換模型。任務拆太大、來回改,見 AI Coding 工作流——dsh 只解決「官方執行階段在不在」。

DeepSeek Harness 安裝成功了嗎?

標題裡的「實測」在這裡不是跑分榜,而是一份半小時清單。五項都過,才算「dsh 在這台機器上能用」。缺一項就回到對應步驟,先別擴大改檔案範圍。

驗收項 通過標準 不通過先做什麼
程序 npx @deepseek-ai/dsh web 保持前景執行 查 Node、npx 快取、連接埠
介面 開啟 127.0.0.1:3080 --no-open 後手動造訪;核對 --port
金鑰 不再報缺少 official provider 憑證 只留一份有效的 DEEPSEEK_API_KEY
唯讀任務 headless 打出回覆並結束,無新 diff 縮小任務
軌跡 ~/.dsh/sessions/ 能回看這次呼叫 DSH_HOME

五項裡缺任何一項,都先別進入「自動改幾十個檔案」。預覽版迭代快,把命令、Node 版本、dsh 套件版本和日期記在筆記裡,下週再跑時才分得清是你的環境變了,還是上游 breaking change。

dsh 常見報錯與解決方法

npx 失敗或很慢。 第一次要拉 @deepseek-ai/dsh。網路不穩就換原始碼建置,或先確認 npm registry。半套快取目錄不能當成「已經安裝成功」。

3080 打不開。--no-open 後手動造訪;檢查連接埠是否被占用,或你用了 --port 卻仍開啟 3080。

介面開了但模型不運作。 多半是金鑰層沒對上。程序環境優先順序最高,~/.dsh/.env 只是備援。改完重新啟動 web 程序,不要指望熱更新金鑰。

改錯了目錄。 看啟動時的目前目錄,以及 Web 裡選取的倉庫。最常見的誤操作是把家目錄當成 workspace。

還在用 dsh run,或 headless 不結束。 官方使用指南寫明該子命令已移除,一次性任務改 --profile headless。把任務收成一句唯讀指令,確認程序沒有在等核准,再看 session 日誌卡在哪一步。

dsh 不是 Claude Code、Codex 的換皮。出品方分別是 DeepSeek、Anthropic 和 OpenAI;形態上 dsh 是獨立執行階段加 Web / headless,另外兩套是各自的 CLI。設定目錄也不互通:dsh 在 ~/.dsh。第一次驗收,dsh 看 3080 或一條 headless,另外兩套走各自官方冒煙測試。可以同時安裝,但不能假設 Key、權限和工作階段互通。真的要把三套請求併到一個入口,再評估閘道;第一天先把 dsh 自己跑通。

現在不適合當成正式環境執行階段。官方 README 寫明處於 developer preview,會有破壞相容性的變更。SAFETY.md 寫得更硬:未經安全稽核;它能執行模型產生的命令、載入第三方外掛、存取網路和你交給它的檔案。沙箱和核准能降低風險,不能當唯一的安全控管。現在適合隔離目錄裡的安裝驗收、單一函式級 AI Coding、對照 session 日誌做實驗。現在不適合對著正式環境倉庫開高權限、無人值守改整個 monorepo、把 preview 寫進對外 SLA。

常見問題

dsh 是什麼?

dsh 是 DeepSeek 開源 Agent 執行框架 DeepSeek Harness 的命令列,負責工作階段、工具、權限和 Web UI,不是 Chat API。

dsh 怎麼安裝?

先裝 Node.js,在隔離目錄執行 npx @deepseek-ai/dsh web。只有改外掛、跟 commit 或對照建置產物時,才 clone 後 pnpm run build

dsh 需要 API Key 嗎?

需要。沒有金鑰介面能開,編碼任務跑不成。把 DEEPSEEK_API_KEY 放程序環境,或寫入 ~/.dsh/.envchmod 600

dsh 支援 Web UI 嗎?

支援。npx @deepseek-ai/dsh web 預設在 http://127.0.0.1:3080 開啟工作臺。不想彈瀏覽器就加 --no-open;連接埠占用時用 --port

dsh 能不能做 AI Coding?

能改檔案、跑 shell、做搜尋,但截至 2026 年 9 月仍是 developer preview。第一次應在隔離倉庫裡走唯讀分析、單一函式修改、跑測試、看 git diff。

dsh 和 Claude Code 有什麼差別?

dsh 是 DeepSeek 獨立執行階段,設定在 ~/.dsh,和 Claude Code、Codex 不共用 Key 與工作階段。可以同時裝,第一天先把 dsh 自己跑通。

長期跑 dsh,可以把測試環境獨立出來

dsh 會碰 workspace、API Key、session 和命令執行。筆電闔上蓋,3080 和 headless 工作階段就會停;把預覽版 Agent 關在可快照、權限可收回的目錄裡,也比一直占用自己的主目錄更容易重設。

本機唯讀任務和單一函式 diff 跑通之後,如果還需要一台 7×24 線上的獨立 macOS 環境,再看雲端節點,比一上來就把正式環境倉庫交給 preview 軟體更接近可重複的實驗。 查看 ZekVPS 雲端 Mac mini 套餐

限時優惠