DeepSeek 最近除了新模型之外,又丟出了一個我覺得很值得開發人員注意的東西:DeepSeek Harness。
這次不是模型,而是一個真正開源的 Agent Harness Framework。
DeepSeek Harness,簡稱 dsh,以 MIT License 開源。官方對它的介紹很直接:
Everything is a Plugin.
模型是 Plugin、Tool 是 Plugin、Session 是 Plugin,甚至連 Agent Loop 本身都是 Plugin。
目前它仍屬於 Developer Preview。比起「現在能不能立刻拿來上 Production」,另一件事情更值得注意:
這其實反映了 AI Coding 正在發生的一個重要轉折。
到底什麼是 Harness?
過去我們談 LLM,通常很直覺的是:
在上面這樣的情況下,模型越強,用戶得到的答案就越好。
但到了 Agent,尤其是 Coding Agent 時代,事情早就不是這麼單純。
中間包著模型、讓模型真正有辦法「做事」的這整套環境,就是現在大家講的 Harness。
LLM 是大腦,Harness 是讓這顆大腦能夠工作的整套環境。
所以 Harness 不是單純一個 Prompt,也不是某一個 Framework。
它比較接近:
一個(一套) Harness 應該有哪些東西?
不同產品的實作當然不一樣,但我認為至少會包含以下幾個核心元素。拿一套用來幫助開發人員的 Agent 來說(像是 GitHub Copilot App, Codex App),它的 Harness 應該要有底下這些...
1. Model
首先當然是模型,例如 GPT、Claude、Gemini、DeepSeek、Kimi 或 Local Model。
2. Context
因為有 Context Window 的限制,因此 AI 在這一刻到底能知道多少東西?知道哪些東西?例如 Repository、Architecture Document、Current Files、Issue / PBI、Git History、Previous Conversation、Business Rules、Coding Convention。這一塊就是 Context。
3. Instructions / Rules
例如 AGENTS.md、copilot-instructions.md、CLAUDE.md、Skills、Custom Instructions、Architecture Rules。這些東西在告訴 Agent:這個專案怎麼寫、哪些事情不能做、完成的 Definition of Done 是什麼。
4. Tools
LLM 本身其實什麼都做不了,它只會輸出 Token。真正讓它變成 Agent 的,是 Harness 給它工具(Tools)。
Read / Write File
Shell / Terminal
Git
Browser / Database / MCP / API
5. Agent Loop / Workflow
Agent 不只是「回答」,而是持續進行 Think → Act → Observe → Adjust。
6. Session / State / Memory
Agent 做長時間任務時,不可能每一次都從零開始。它需要知道目前做到哪裡、剛才改過哪些東西、上一個 Tool Call 發生什麼事,以及哪些 Context 還需要留下。
7. Sandbox / Permission
當 AI 可以執行 Shell、git push、安裝套件、連資料庫與修改檔案之後,哪些事情可以直接做、哪些事情需要 Human Approval,就會變成 Harness 的基本能力。
8. Validation / Feedback
這可能是最重要的一層。
真正好的 Harness,不是叫 AI「確認自己寫對了」,而是讓環境可以實際驗證它。
不是讓 AI 覺得自己做對了,而是讓環境證明它到底有沒有做對。
為什麼 Harness 開始變得重要?
因為我們正在慢慢發現一件事情:
模型真正展現出來的能力,不等於模型本身的能力。
以前我們很習慣比較 GPT、Claude、Gemini、DeepSeek 的 Benchmark。但到了 Agent 時代,尤其是 Coding Agent,真正的體驗開始比較接近:
所以同樣一顆 Model ,放在不同 Coding Agent 裡面,你真的可能會覺得「怎麼明明是同一個模型,但是在這裡好像比較聰明?」
現在真正應該比較的是「Model + Harness」
+ Claude Code
+ Codex
+ DeepSeek Harness
+ GitHub Copilot
DeepSeek 自己也正在證明這件事。當 Coding Agent 的 Benchmark ,其實都是透過特定 Harness 來執行時,我們看到的其實已經不只是「模型裸能力」,而是某個 Model + Harness 組合的能力。
換一個 Harness,結果就可能不一樣。
GitHub Copilot App 其實也是 Harness
如果用這個角度重新看 GitHub Copilot App 這類的 AI Coding Tool,整個架構就會變得很好理解。
GitHub Copilot App 不只是「一個可以跟 AI 聊天的 App」,而是一套已經產品化的 Agent Harness。它可以取得 Repository / Local Folder 、Context、閱讀檔案、修改程式、執行 Terminal、維持 Session、處理 Workflow,並選擇不同模型。
以前的想法
我要用哪個 AI?
- 我要用 Claude
- 我要用 GPT
- 我要用 Gemini
現在的想法
我要用哪一套 Harness?
- 這個 Task 要掛哪一顆 Model?
- 需要什麼 Context?
- 需要什麼 Tools 與 Validation?
而 GitHub Copilot 很值得注意的一點,是它讓 Model 可以切換。當同一套 Harness 可以使用不同模型時,「模型只是 Runtime 裡的一顆引擎」這件事就變得非常具體。
Model 正在逐漸從「產品」變成「Runtime 裡可以換的一顆引擎」。
那 DeepSeek Harness 特別在哪?
這次 DeepSeek 做得更直接。它不是只做一套 Coding Agent 給你用,而是把 Agent Harness 本身給開源了。
Everything is a Plugin.
最有趣的地方是,它讓 Model Adapter、Tools、Session Log、Persistence、Sandbox、Approval、Skills、UI,甚至 Agent Loop 都被設計成可替換元件。
換句話說,DeepSeek Harness 不是:
而更接近:
它很像 Agent 世界的 DI Container
如果是 .NET 開發人員,我覺得可以用一個很熟悉的東西理解:Dependency Injection。
.NET 世界
Runtime 決定真正注入哪一個 implementation。
Agent 世界
Harness 決定真正掛入哪一個 Agent 能力與模型。
今天 Model 換 DeepSeek,明天可以換 Claude;今天是 Coding Agent Loop,明天也可能換成 Research Agent Loop;今天用 Local Sandbox,明天可以換 Container。
它代表了一個很重要的轉折
我們過去一年一直在討論:GPT、Claude、Gemini、DeepSeek,到底哪一顆模型比較強?
這個問題當然還是重要,但可能已經沒有以前那麼重要了。
因為當模型能力逐漸接近,而且模型開始可以被替換,真正形成差異的東西會慢慢往上一層移動。
真正好的 Agent,未來不一定是用了世界上最強的 Model,而是...
它有沒有把正確的資訊,在正確的時間,交給正確的模型;提供正確的工具,並且有一套機制可以持續驗證、修正它的工作。
這其實跟軟體工程過去幾十年的發展很像。我們從來不會說「只要 Developer 夠強,其他都不重要」。
我們還是需要 Architecture、Framework、Library、CI/CD、Testing、Coding Standard、Code Review、Monitoring、DevOps...。這一切搭配起來,才是最終的成果。
AI Agent 也開始走到同一條路上。
模型是能力。Harness 是工程。
AI 時代下一個競爭的戰場,可能即將開始從 Model,往 Harness 移動。
以前我們在 Engineering the Code。
接下來,我們會花愈來愈多時間在:
lets AI engineer the code.