Harness

出自jwjp-Just Wiki Join Portal
跳至導覽 跳至搜尋

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% 攔截惡意的系統指令,仍是目前學術界與工業界的攻防焦點。

參見