Harness
Template:Infobox Software Concept
Harness(在人工智慧領域常被稱為AI 馬具、智能體外殼或運行外殼)是一種通用的 AI 軟體架構概念。其核心作用是將純粹進行邏輯推理的「大語言模型(LLM)大腦」,與能實際操作計算機系統的「身體部件(如文件系統、命令行、網絡檢索、網頁瀏覽器)」進行徹底解耦與連接。
「Harness」一詞原本指馬車上的馬具。在 AI 時代,該術語被借用來指代「套在大模型身上的約束、控制和賦能框架」——它既為大模型提供操控外界的接口(賦能),又嚴格限制其越權行為並記錄其一舉一動(約束)。
核心設計公式
在當前 AI 行業,普遍存在一個技術公式:
- <math>\text{Agent (智能體)} = \text{Model (模型大腦)} + \text{Harness (通用外殼)}</math>
- Model(模型):僅負責接收文本/視覺輸入,並預測輸出下一個 Token(思考、判斷、生成代碼)。
- Harness(馬具):負責解析模型輸出的代碼或工具調用(Tool Call),在真實的、隔離的沙箱環境中執行該操作,並將執行結果(如報錯信息、網頁內容、終端輸出)重新塞回模型的上下文中。
通用 Harness 的核心職能
1. 一切皆插件(解耦架構)
先進的 Harness 架構通常採用高度模塊化的插件系統(如基於 Cordis 內核)。它確保沒有任何工具擁有特權,包括以下組件均可熱插拔:
- 模型適配器(LLM Adapter):同一套外殼,既可以接入本地的 DeepSeek 模型,也可以一鍵切換至雲端的 GPT-4、Claude 或 Gemini。
- 執行工具(Tools):如文件讀寫器、Bash 終端、瀏覽器自動化工具(Playwright)。
- 交互界面(UI/UX):可以自由切換為命令行(TUI)、Web 網頁或跨平台桌面客戶端。
2. 事件溯源與運行軌跡可觀測性
通用 Harness 必須嚴格遵循「模型可見 ⟺ 已記錄」(Model-Visible ⟺ Logged)的不變量原則。AI 在執行複雜任務(如自主修 Bug)時,中間經歷的所有思考、命令調用、失敗重試、報錯日誌,都會被 Harness 以「僅追加(Append-only)」的方式記錄為一條完整的軌跡(Trajectory)。
- 回放與搜索:人類用戶可以像看錄像帶一樣回放 AI 的行為。
- 分叉與恢復(Forking):用戶可以隨時把 AI 的某一步驟「分叉」出去進行實驗,測試不同的引導詞,且不破壞原有的主線會話。
3. 安全護欄與沙箱接縫
由於 Harness 賦予了 AI 作業系統級別的極高權限,安全防護是其必不可少的核心:
- 權限隔離(Sandbox Seam):Harness 底層通常封裝了沙箱技術(如 `bwrap` / Bubblewrap、`Landlock`、Docker 等),將 AI 的讀寫範圍限制在特定的項目工作區內,防止大模型誤刪系統盤。
- 人類介入(HITL / Human-in-the-Loop):對於高危操作(如刪除文件、執行 `rm -rf`、發送網絡請求或產生經濟扣費),Harness 會自動觸發人類審批機制(`ctx.approval`),暫停 AI 運行並等待人類一鍵確認。
行業主流實現方案對比
| Harness 實現名稱 | 發起方/生態 | 核心特點 | 主要適用場景 |
|---|---|---|---|
| DeepSeek Harness (dsh) | 深度求索 開源 | 極致的聲明式配置(YML 驅動)、完全解耦、高並發、基於 TypeScript。 | 開源社區全自主、全模態 Agent 構建。 |
| Claude Code | Anthropic | 與 Claude 3.5/3.7 緊密集成,主打極致的終端自動化編碼、上下文高精度控制。 | 終端命令行、程式設計師日常編程輔助。 |
| LangGraph / AutoGen | 傳統 Agent 框架生態 | 側重於利用多 Agent 編排、有向無環圖(DAG)來規定複雜的業務流。 | 企業級多智能體協同、固定工作流自動化。 |
局限性與行業挑戰
- Token 膨脹與成本控制:Harness 為了讓大模型獲得完美的情境感知,需要不斷把工具執行結果重發給模型,易導致 Token 消耗呈指數級上升(尤其是在多輪迭代和重試中)。
- 幻覺級安全越獄:當大模型產生嚴重的「幻覺」或遭受外部提示詞注入攻擊(Prompt Injection)時,Harness 的安全護欄是否能 100% 攔截惡意的系統指令,仍是目前學術界與工業界的攻防焦點。
參見
- 智能體 (AI Agent)
- 大語言模型 (LLM)
- 沙箱 (Sandbox)
- DeepSeek Harness