Walking Whale · 走路鯨魚

Popular Science · conversational ai · beluga · agent harness · open source

Beyond the model: the harness

The same AI model can behave very differently from one product to the next, and the difference usually sits outside the model. We read the source of DeepSeek Harness and Google's Harness², and use them, along with our own Beluga, to explain what a harness does and how to judge one.

By Walking Whale

科普 · Harness 筆記

模型之外的另一半:Harness

同一個 AI 模型,放進不同的產品,表現可以差很多。差別常常不在模型本身,而在模型外面那一層。這篇用幾個近期的開源專案,說明那一層在做什麼。

重點

Harness 是什麼

英文的 harness 原本指馬具:韁繩、馬鞍、挽具。有了它,一匹馬的力氣才能變成載人、拉車、往對的方向走的能力。在 AI 領域,harness 指的是包在模型外面的那一整套系統。這個詞還沒有通用的中文譯名,本文直接用 harness。

模型很會讀、也很會寫,但它本身不會查資料、不記得上週的對話,也不知道哪些事情不能做。讓模型變成能把事情做完的 AI 代理(agent),靠的是外面這一層:給它什麼指示、能用哪些工具、記得什麼、每一步怎麼接到下一步、出錯時怎麼收場。業界常用一個簡單的式子描述這件事:AI 代理 = 模型 + harness。

以我們自己的 Beluga 為例,它是在 LINE 與 WhatsApp 上替店家回答客人問題的 AI 助理。客人問「這週末還有位子嗎?」,模型負責讀懂這句話;harness 決定它要去哪裡查空位與價格、能不能先幫客人留位、什麼時候該把對話交給真人。同一個模型,harness 設計得好不好,客人的體驗會完全不同。

Claude 也是一樣。Claude App、Claude Code 與 Claude Design 背後是同一系列的模型,做起事來卻很不一樣。我們在〈同一個 Claude,不同的 Harness〉裡,用整理 40 份訪談逐字稿的同一份工作走過這三種做法,看差別從哪裡來。

這個詞在 2026 年開始被大量使用。OpenAI 在 2 月發表〈Harness engineering〉一文,描述內部團隊花了五個月,靠 AI 代理寫出約一百萬行程式碼的產品。工程師的主要工作,變成設計讓代理能做事的環境:文件、架構規則、自動檢查與可觀測性。之後,harness engineering 成了這類工作的統稱。

Harness 的八個零件

每個專案切分 harness 的方式不同。Google Research 的 Harness² 把它整理成八個可以修改的零件,是目前相當清楚的一種分法。下表的例子是假想的訂位客服,真實產品的拆解見下一節。

表 1 Harness 的八個零件,分類取自 Harness²
零件做什麼範例:假想的訂位客服
系統提示定義角色、語氣與主要任務用繁體中文、以店家的口吻回覆
防護規則必須遵守的規則與禁止事項不透露其他客人的資料
記憶跨對話保留的資訊記得這位客人常訂的人數
工具說明有哪些工具、何時用、怎麼用查空位前先確認日期與人數
子代理把一段工作交給另一個獨立的代理另一個代理專門整理客訴內容
技能遇到特定情境才載入的做法說明客人要改期時,照改期流程處理
腳本固定、可重複執行的程式計算套用優惠後的金額
外掛在執行迴圈中強制生效的程式取消訂位前,一定要客人確認

前四個零件在每一輪都會放進模型的上下文(context),也就是模型每次讀到的全部內容;後四個則是需要時才啟用,或直接用程式執行。這個區分很重要:每次都放進去的文字,每次都要付出成本,也會分散模型的注意力。

拆解我們的 Beluga

Beluga 是走路鯨魚的 AI 助理模組。它接上我們替店家打造的系統,在 LINE 與 WhatsApp 上接走重複的問題,接不了的,就連同客人講過的事情一起交還給店家。它的可靠,大多來自模型外面那一層。下表把它公開過的行為,對應回 harness 的設計:

表 2 Beluga 的行為與對應的 harness 設計
Beluga 怎麼做對應的設計
價格與空位每次都即時查店家系統,不靠記憶工具,加上數字只能來自系統的規則
送出前由程式核對數字,把 8,800 打成 8,080 的回覆會被攔下模型之後的程式檢查
店家指定的字眼,例如退費、客訴,直接轉給真人模型之前的程式閘道,不經過模型
可以先留位,時間到自動釋放;成立訂單、收訂金、取消都要店家核准依能否復原,決定要不要人核准
查不到就直說,帶著已知資訊轉給真人;連續三回合沒解決也會轉執行迴圈的停止條件與交接
客人連傳兩則訊息,等一秒合併成一次回覆訊息進入迴圈前的整理
營業時間、轉接字眼、語氣與每月用量上限由店家設定;換了語氣,時段不變設定與提示分開,語氣與事實分開
開發前先讀過一千多組舊對話;孩子的姓名與住址在進入 AI 前移除需求與評測的起點,以及進入模型前的隱私處理

這張表有一個共同點:最關鍵的幾條規則,都不是寫在提示裡拜託模型遵守,而是由程式在模型前後把關。模型負責聽懂與說清楚,數字與權限由系統把關。這也是它取名 Beluga 的原因,白鯨在又暗又濁的水裡不靠猜,而是靠回聲認路。

牠知道的每件事,都是有東西告訴牠的。

這句話出自我們介紹 Beluga 的文章,裡面也寫了它目前還做不到的事。

為什麼最近大家都在談

原因很實際:模型已經強到足以處理許多工作,瓶頸開始移到模型外面。軟體公司 Marmelab 在 2026 年 9 月發表一份調查,盤點了 246 個開源 harness 專案。以下三個數字可以看出現況:

20個百分點:同一個模型只換 harness,任務成功率從 68% 到 88%(Composio 以 8 種 harness 測 25 題,引自 Marmelab)
21,500個 2026 年新建立、自稱 agent harness 的 GitHub 專案(Marmelab 統計)
60%可測試的 harness 專案中,既沒有測試也沒有評測(eval)的比例(Marmelab 檢查 97 個專案)

換句話說,harness 很重要,大家也都在做,但多數專案還無法證明自己的 harness 真的有用。同一份報告也引用一項研究:在 481 份寫給 AI 程式助理看的規則檔裡,安全相關的規則只有 4.4% 有實際的程式控制在背後把關,其餘都只是文字。

DeepSeek Harness 怎麼做

DeepSeek 在 2026 年 8 月開源了自己的 harness,簡稱 dsh,採 MIT 授權。它的核心主張是一切皆外掛:讀寫檔案、執行指令、整理過長的對話、委派子代理,甚至主要的執行迴圈,都是可以替換的外掛。它也能把工作委派給 Claude Code、Codex 等其他代理。目前仍是開發者預覽版,官方明確表示之後會有不相容的變更。

我們讀了它的原始碼,以下幾個設計特別值得參考:

採用前要看清楚

dsh 的沙盒只限制寫入檔案,不限制讀取、網路與程式行為。官方的安全說明也表示它尚未經過安全稽核,建議在可以丟棄的虛擬機或容器裡執行。另外,使用 DeepSeek 官方 API 時,預設會把對話紀錄一併送出,包括對話內容、工具參數與結果,這個功能可以在設定中關閉。這些都寫在它的文件裡,值得在使用前讀過。

它的定位是在個人電腦上執行的程式開發代理,不是給多個客戶同時使用的客服平台:沒有串接訊息平台,也沒有區分不同客戶資料的設計。對多數團隊來說,它最大的價值是當作設計參考。

Harness²:讓 AI 自己調整

Google Research 在 2026 年 10 月發表論文並開源 Harness²。它問的是另一個問題:既然 harness 這麼重要,能不能讓 AI 自己改進它?整個過程不重新訓練模型,只修改前面提到的八個零件,而且預設由同一個模型修改自己的 harness。

難處在於,真實世界的新任務通常沒有標準答案可以對照。Harness² 的做法是讓不同版本的 harness 實際跑同一個任務,再比較它們的行為差異:

  1. 先照原樣做一次

    用原本的 harness 執行任務,留下完整的執行紀錄。

  2. 從兩個方向提出修改

    一份修改做事的方法,例如工具出錯時怎麼處理;另一份補充專業知識,例如這類文件應該包含哪些部分。

  3. 實際執行並比較

    修改後的版本各跑一次,由 AI 比對執行過程,合成新的 harness。需要挑選時採匿名盲選,原本的版本也在候選之中。

  4. 記下教訓

    逐項判斷每個修改是有幫助、有害、沒影響或無法判斷,只把有證據支持的一條教訓,存進該領域的經驗庫。

論文在法律、職場與辦公室三類專業任務的測驗上,對 GLM-5 與 Gemini 3.5 Flash 都看到進步,最多提升 11.5 分(WorkBuddy-Bench,GLM-5 從 64.2 到 75.7)。這是不同設定中的最大值,不代表每次都有這麼多。成本也要算清楚:在最基本的設定下,每個任務要完整執行 4 次,再加上至少 3 次負責修改的 AI 工作階段。

對多數團隊而言,它比較像一本教材。我們讀它的提示詞時,記下了幾個寫 harness 時普遍適用的原則:

關於安全

研究版本為了實驗,執行時不限制網路,使用 Codex 時也關閉了沙盒。第三方實測時,曾觀察到代理自行下載了測驗的評分標準。另外,防護規則本身就是可以被修改的零件,所以真正的安全界線,必須放在 harness 之外。

其他值得認識的專案

以下幾個專案,各自代表 harness 世界裡的一個方向。

想先讀文章的話,Marmelab 的年度調查是很好的起點。它也坦白指出,這個領域還有許多沒有被驗證的說法,例如加一個負責審查的代理,在某項研究中反而讓成功率下降。

如果您也在做 AI 代理

我們自己也在 LINE 與 WhatsApp 上打造 AI 代理。讀完這些專案,我們整理出幾件對多數團隊都適用的事:

  1. 先有能重跑的測試,再談框架。從真實對話整理出一組題目,記得先去除個資,每次修改都重跑一次。Harness² 與 Meta-Harness 的前提,都是任務可以重跑。
  2. 把 harness 當成程式碼管理。放進版本控制、寫自動檢查,每次修改都留下理由。
  3. 硬規則寫在程式裡,不只寫在提示裡。退款、取消、個資這類不能出錯的規則,由系統強制執行,不靠模型自律。Beluga 送出前的數字核對就是一例。
  4. 看清楚框架預設送出了什麼資料。對話紀錄與工具結果會不會離開您的環境,要在上線前確認。
  5. 保持精簡。只為實際觀察到的失敗增加規則,並定期刪掉過時的規則。模型進步得很快,去年必要的設計,今年可能已經多餘。

名詞小抄

表 3 本文用到的名詞
名詞意思
AI 代理(agent)能自己決定下一步、使用工具把事情做完的 AI 程式
Harness模型以外的一切:指示、工具、記憶、執行迴圈與安全機制
執行迴圈(agent loop)模型思考、呼叫工具、讀取結果、再思考的重複過程
上下文(context)每一次送進模型的全部內容,有長度上限
上下文壓縮(compaction)對話太長時,把舊內容整理成摘要,騰出空間
技能(skill)特定情境才載入的做法說明
子代理(subagent)被分派一段工作、擁有自己上下文的另一個代理
程式化工具呼叫(PTC)模型寫一段程式,一次呼叫多個工具
沙盒(sandbox)限制代理能動到哪些檔案或資源的隔離環境
評測(eval)用固定題目衡量代理表現的測試

資料來源

本文內容以 2026 年 10 月 19 日的版本為準。這些專案更新得很快,引用前請以原始資料為準。

Beluga 適合您的店嗎

走路鯨魚為想走得長遠的團隊,打造客製化 AI 與軟體系統。跟我們說說您的客人最常問什麼,我們會誠實告訴您 Beluga 幫不幫得上忙,包括幫不上的時候。

寫信給我們,或先認識 Beluga。

Articles