最後更新於 2026 年 9 月 18 日。本文依官方倉庫、外掛設定目錄與安裝說明核對,依據是 DeepSeek Harness 官方倉庫、Plugin Config Catalog、外掛打包與安裝文件,以及 DeepSeek API 定價頁。
設定目錄能列出幾十個 @deepseek-ai/dsh-* 套件。常見第一反應是能裝的都裝,Agent 就會更會寫程式。結果通常相反——工具名擠滿上下文,MCP 行程在沙箱外裸跑,工作階段日誌膨脹,帳單先響,補丁品質並沒有跟著上去。
結論先說:DeepSeek Harness(dsh)的口號是 Everything is a Plugin,但寫程式時你真正要買的不是「外掛個數」,而是讀倉庫、改檔案、跑測試、按需說明書、可回放、可計量這六件事。下面 10 個套件覆蓋這六件事;其餘多半是介面、示範或可替換後端,等場景到了再加。
8 月我們寫過 DeepSeek Harness 架構解析,9 月寫過 Harness / Skill / Sandbox 實測。那兩篇回答「執行層為什麼要拆開」。這篇只回答更日常的問題:已經決定用 dsh 寫程式了,該裝哪幾個、怎麼搭配、一個月大概花多少。
別先裝全家桶:外掛是組合,不是功能清單
官方把模型適配、工具註冊、工作階段日誌、Agent 迴圈都做成可替換套件,再用 Cordis 疊進 Profile。安裝入口是 dsh plugin --profile web add <套件名>,它把命令轉給 profile 目錄裡的 pnpm,並只把宣告了 dsh.bundle 的套件推進層疊。後寫的 bundle、profile 自己的 cordis.patch.yml、家目錄補丁和 --patch 依序覆蓋。
對寫程式的人,這代表三件事。
- 能載入,不等於該暴露給模型。MCP 客戶端會把外部工具登記成
mcp__服務名__工具名。官方寫得很清楚:每個 MCP server 都是沙箱外的受信任可執行程式,預設一個都不開。 - 層序決定誰贏。你要換模型、換沙箱或關掉某個工具,優先打 Patch,不要複製核心套件。用
dsh --profile web --dump-config看機器實際啟動的樹,比看文件目錄更準。 - 倉庫仍是開發者預覽。相容性破壞變更可能發生。把它當可替換的執行層來驗證可以,別當成已經認證完的正式平台。
所以這篇的 10 個套件,不是「官網最全清單」,而是按 AI Coding 出現頻率篩過的最小夠用集。工具迴圈一旦失控,欄位名不同、失敗模式幾乎一樣——如果你已經在別的模型上踩過,可以對照 Kimi K3 Tool Calls 止損:先停迴圈,再談外掛。
10 個對 AI Coding 真正有用的 Plugin
下面每個套件只寫「它替你扛哪一類翻車」。名稱以設定目錄為準;成對出現的是同一能力縫的定義、提供者或消費者,安裝時要一起看,不要只裝半邊。
1. dsh-tool-fs + dsh-tool-fs-search:先看見倉庫
模型還沒讀過目錄,就開始「重構」。讀檔與依符號/文字搜尋,是後續編輯的前提。沒有這一對,後面的精確取代只會在錯誤路徑上自信地改。
2. dsh-tool-str-replace-editor:按區塊改,不要整檔重寫
寫程式最貴的失敗不是「沒改到」,而是一次呼叫把整個檔案重寫成模型記憶裡的舊版本。字串取代編輯器逼模型給出舊片段和新片段,衝突時失敗,而不是靜默覆蓋。多檔重構時,它比「產生完整檔案」便宜,也比較好回滾。
3. dsh-tool-bash + dsh-bash-sandbox:測試必須能跑,也必須關得住
修紅燈、跑 linter、看建置日誌,最終都要進 shell。官方 Process Sandbox 只管同機子行程的檔案副作用:read-only 拒寫,workspace-write 只許寫工作階段工作區,danger-full-access 則繞過隔離。請求了隔離卻沒有後端,必須報 SANDBOX_UNAVAILABLE,禁止裸跑。網路隔離不在這套模式裡,別指望唯讀模式順便擋住出站。
4. dsh-tool-lsp + dsh-lsp-stdio:把編譯器的嘴接到迴圈裡
模型自己「覺得型別對了」,和語言伺服器報錯,不是一回事。stdio LSP 把跳轉定義、診斷和符號查詢變成工具。適合 TypeScript、Go、Rust 這類強診斷語言;腳本倉庫或純文件任務可以先不裝,少佔一輪工具名。
5. dsh-tool-skill + dsh-skill-filesystem:說明書按需出現
把程式風格、發版清單、測試入口寫成 Skill,模型平時只看見目錄,動手時再 skill({ name })。專案根下 .dsh/skills 優先於 .agents/skills。Skill 不是權限系統:手冊寫得越清楚,沒有沙箱時越危險。細節見上一篇實測,這裡只強調——寫程式時它取代的是系統提示裡那堆「務必遵守」。
6. dsh-mcp-client:把 GitHub 一類外部工具接進來
一個實例對應一個 MCP server。stdio 可拉 @modelcontextprotocol/server-github,模型看到的是 mcp__github__create_issue 這種限定名。它適合「對著 PR 評論、列 issue、讀 checks」,不適合當預設日常工具。密鑰走環境變數,行程在沙箱外,多開一個 server 就是多一份信任面。
7. dsh-plan-mode:先寫計畫,再碰工作區
跨檔重構、改公共 API、動遷移腳本,最怕模型邊想邊寫。Plan mode 把「先列出步驟並等人看」變成外掛行為,而不是靠提示詞求它冷靜。單測修復可以不開;一旦改動會碰到三個以上目錄,先開它。
8. dsh-tool-todo:把多步任務釘在工作階段裡
一次「修 flaky + 補回歸 + 更新 README」如果只靠聊天記憶,模型會漏最後一步。Todo 工具讓清單成為工作階段裡的可更新物件。它不替代 Skill(Skill 是怎麼做),也不替代 Plan(Plan 是做不做、先做什麼)。
9. dsh-compaction-tool-result-pruner + dsh-token-meter:長工作階段先剪結果,再談換模型
AI Coding 的帳單很少死在第一輪,而死在第十輪還把完整測試日誌、完整 diff 和完整網頁擷取留在上下文裡。結果裁剪負責丟掉不再被引用的工具輸出;token meter 讓你看見每一輪花了多少。沒有計量,你分不清是模型貴,還是外掛把視窗餵滿了。
10. dsh-session-persistence-sqlite:工作階段要能回放,不要只活在記憶體
行程重啟、切頁、換人排障,下一輪必須能從落盤日誌重建。JSONL 也能記,SQLite 更適合依工作階段查詢和事後對照「它為什麼改了那一行」。沒有這一層,上面 9 個外掛的現場都只能靠截圖復盤。
四個常見寫程式場景,怎麼選外掛
同一套 10 個套件,不會在每個任務裡全開。按任務選,比按「看起來專業」選更省錢。
場景 A:修紅燈測試。最小集是 fs / search、str-replace、bash+sandbox。先讀失敗日誌,再改最小範圍,再跑同一條測試。Skill 只在倉庫有固定「先跑哪條命令」時值得載入。Plan 和 MCP 此時是噪音。
場景 B:跨檔重構。在 A 的基礎上加 plan-mode、todo、LSP。先讓模型寫出將改哪些符號、哪些測試必須綠,再批准寫入。沒有計畫就開放取代,常見結局是公共函式改了一半,呼叫端還留著舊名字。
場景 C:對著 GitHub 做審查或補丁。加 MCP 客戶端,只開這一個 server。用它拉 PR diff、checks 和評論,真正改檔仍走 editor + sandbox。不要把「建立 issue、合併、刪分支」和日常編輯放在同一條預設工具列表裡。
場景 D:長工作階段、多輪探索。加 compaction 和 token-meter,工作階段改走 SQLite。模型連續讀了 20 個檔案之後,再不剪工具結果,後面每一輪都在為已經過期的日誌付錢。換更強的模型救不了膨脹的視窗。
三套搭配:日常、團隊、控成本
把上面的場景收成三套可複製的 Profile,比每次任務手改 cordis.yml 不容易回潮。
| 搭配 | 預設打開 | 先別開 | 適合誰 |
|---|---|---|---|
| 日常寫碼 | fs / search、editor、bash+sandbox、skill | MCP、子 Agent、全量 Web Search | 一個人修 bug、寫小功能 |
| 團隊協作 | 日常 + plan + todo + SQLite + 一個 GitHub MCP | 第二個 MCP、danger-full-access | 要回放、要對著 PR 工作 |
| 控成本 | 日常 + token-meter + 結果裁剪 + Flash 模型 | Pro 當預設、長日誌不裁剪 | 每天幾十輪迴圈 |
Web 搜尋和子 Agent 不是不能用,而是預設成本高、失敗面大。官方設定目錄裡有 dsh-web-search-deepseek、dsh-tool-web 和多種子 agent 實作;需要查文件或拆出唯讀調研時再打 Patch 打開,不要寫進日常 bundle。
安裝時記住層序:@deepseek-ai/dsh-base 先上,再 dsh plugin --profile <名> add 你的套件,最後用 profile 自己的 patch 關掉不想暴露的工具。GitHub 託管、帶 prepare 的原始碼外掛,pnpm 10 會攔住建置腳本,按官方提示放行後再裝,不要改成全域危險權限。
部署成本:權杖、機器、外掛稅
外掛本身幾乎沒有授權費用。你真正付錢的是模型權杖、常駐機器,以及每一個逃出沙箱的外部行程。
權杖是大頭。2026 年 9 月官方價卡按 100 萬 token 計:deepseek-flash(V4.1-Flash)快取命中約 0.003 / 0.006 美元,快取未命中 0.15 / 0.30 美元,輸出 0.60 / 1.20 美元(離峰/尖峰);deepseek-v4-pro 未命中 0.66 / 1.32,輸出 1.98 / 3.96。尖峰是週一到週五 UTC 01:00–04:00 與 06:00–10:00,對應台北時間上午與下午兩段工作時間,離峰半價。一次「讀 8 個檔 + 兩輪測試日誌 + 一小段補丁」很容易吃掉數萬輸入 token;如果不裁剪,第十輪會把前九輪的日誌再付一遍。
粗算日常:每天 30 輪迴圈、平均每輪 2 萬輸入(未命中)+ 1 千輸出,用 Flash 離峰大約每天 0.11 美元,一個月約 3 美元。同樣次數若預設 Pro、再把完整測試輸出留在視窗裡,月帳單可以輕易上到數十美元。省錢的順序是:先裁工具結果和復用快取,再決定要不要上 Pro,而不是先換模型。
機器是第二項。npx @deepseek-ai/dsh web 預設只在本機 127.0.0.1:3080 打開介面,適合白天開發、晚上關機。你若希望工作階段 SQLite、Skill 目錄和沙箱策略 24/7 可連,就需要一台不關機的節點。筆電合蓋掉線、家裡 NAT 變化,都會讓遠端同事看不成同一條工作階段。雲端 Mac mini 的價值不在「比 API 更聰明」,而在於把預覽版 Harness 從正在出包的機器上拆出去:Seatbelt 沙箱、Unix 工具鏈和固定 cwd 都比在 Windows 上遠端控一台會休眠的筆電可預期。
外掛稅是第三項。多開一個 MCP server,就多一個沙箱外行程和一套密鑰。LSP 要常駐語言伺服器。Web 擷取會把整頁 HTML 灌進上下文。這些都不出現在 DeepSeek 價卡上,但會把 Flash 的便宜優勢吃掉。日常四件套的「稅」接近零;團隊套多一個 GitHub MCP,通常仍划算;把搜尋、子 Agent、第二個 MCP 全部預設打開,成本會從權杖漏到維運。
倉庫仍是預覽。把 Harness 和客戶工程焊在同一台建置機上,等於把迴圈、手冊和檔案隔離三件事疊在發布路徑上。隔離節點可以丟、可以回滾、可以限權,這才是部署成本該買的東西。
什麼時候該加外掛,什麼時候別加
| 你的情況 | 建議 | 理由 |
|---|---|---|
| 只要補一個函式、跑一條測試 | 日常四件套 | Plan / MCP / LSP 都是額外工具名 |
| 改公共 API 或三個以上目錄 | 加上 plan + todo + LSP | 先對齊步驟,再允許寫入 |
| 要對著 PR 評論或 checks 工作 | 只開一個 GitHub MCP | 外部工具預設信任面,不要堆 |
| 每天幾十輪、帳單開始跳 | meter + 裁剪 + Flash | 先看視窗裡堆了什麼,再換模型 |
| 還沒分清 Skill 和 Sandbox | 先不要擴外掛 | 手冊越全,裸寫越危險 |
和自研「while 迴圈 + 兩三個工具」相比,dsh 的收益是層序、工作階段和隔離已經分開;成本是預覽階段的破壞性變更,以及你必須克制自己不去點齊設定目錄。每年如果你真的會換模型後端、換沙箱或把同一套 Skill 用在多個倉庫,這 10 個套件才值。只是想看模型會不會聊天,不必上完整棧。
最後一句話:2026 年用 DeepSeek Harness 寫程式,贏的不是裝得最多的人,而是能說清「這一次任務只需要哪幾層」的人。先讀、再改、再跑、再按需說明,工作階段可回放、權杖可計量。外掛是組合,不是收藏。
常見問題
10 個外掛要一次全部安裝嗎?
不用。先裝 fs / search、editor、bash+sandbox 和 skill。Plan、LSP、MCP、裁剪和 SQLite 按場景再加。設定目錄裡的其餘套件多半是可替換後端或介面,不是寫程式的必選項。
MCP 外掛安全嗎?
官方把每個 MCP server 寫成沙箱外的受信任可執行程式,預設一個都不啟用。只開你需要的那一個,密鑰放環境變數,不要和日常編輯工具混在同一條預設列表。
為什麼不建議預設用 Pro 模型寫程式?
寫程式的費用主要來自多輪工具結果,不是來自「模型不夠聰明」。官方 Flash 離峰輸出約 0.60 美元/百萬 token,Pro 約 1.98 美元。先裁剪日誌和命中快取,再決定單次任務要不要升 Pro。
現在能當正式編碼平台直接上嗎?
可以當執行層樣板做驗證和隔離實驗,不建議視為已完成正式環境認證。官方倉庫仍是開發者預覽。把預覽版和正在出包的機器分開,比爭論「能不能上正式環境」更實際。
在雲端 Mac mini 上跑一套可丟棄的 dsh 節點
AI Coding 的外掛棧要固定 cwd、常駐 SQLite 工作階段,還要在 macOS 上走 Seatbelt。拿唯一的出包機建置機去跑預覽版 dsh 和 GitHub MCP,等於把迴圈、手冊和外部行程疊在客戶工程上。M4 Mac mini 統一記憶體適合一邊跑穩定建置,一邊放一套可限權、可回滾的 Harness;待機功耗約 4W,原生 Unix 和 SSH 讓 Skill 目錄和沙箱工作區釘在同一台不休眠的機器上。
若你要把日常寫碼節點和發布機建置拆開,Kvmkit 雲端 Mac mini M4 可按需擴一台隔離機——立即了解方案,讓外掛組合和權杖實驗有地方試,而不拖累正在出包的機器。