跳到內容

Technology

新聞|Harness²:模型權重不動,agent 在沒有標準答案的任務上自己改 harness

Google Cloud AI Research 公開 Harness²,讓 agent 在執行任務時修改自己的系統提示、skills、scripts 與 plugin,不需要標準答案或評分。整理 Propose–Probe–Compose 怎麼運作、跨任務的改進庫、三個基準的數字、拆解實驗,以及成本、評審與選擇失誤等限制。

Published: at 09:00 AM
編輯本頁下載圖卡

重點

Harness 是什麼,為什麼要自動改

論文採用「Agent = 模型 + harness」的說法。harness 指模型以外、讓它能當 agent 用的一切:提示、記憶、工具、技能與調度方式。同一個模型換一個 harness,表現可能差很多;agent 從寫程式擴展到辦公文件、法律工作之後,靠人手調 harness 越來越吃力。

已經有不少方法自動改 harness,論文把它們分成兩類:

Harness² 要處理的情境是「開放世界」:任務一個接一個進來,事先沒見過,也沒有標準答案可以驗證。論文提出兩個問題:沒有驗證器時要怎麼判斷一個修改有沒有用,以及為某個任務做的修改怎麼幫到下一個任務。

八個可編輯元件

每個元件都是一個檔案,修改就是一份 diff。

元件何時進入模型作用
系統提示每次呼叫角色與整體流程
Guardrails每次呼叫不分任務都要遵守的限制
記憶每次呼叫同一領域跨任務的固定事實
工具說明每次呼叫什麼時候、怎麼用現有工具
子代理經 task 工具呼叫在自己的 context 裡做子任務,只回傳結果
Skills經 skill 工具載入特定情境的流程,不用時不占 context
Scripts經 bash 執行確定性的操作,交給程式做
Plugin在工具迴圈裡掛在工具呼叫前後,強制執行某個行為

編輯器的提示詞特別交代:常駐的文字每次都要付 token,新規則優先寫成 skill、script 或 plugin;每個 skill 的名字必須出現在系統提示或 guardrails 裡,否則整份提案驗證不過、直接丟掉。

任務層:Propose–Probe–Compose

一個改進步驟分三段:

  1. Propose。先用目前的 harness 跑一次,得到參考執行。這次執行用來觀察 harness 的行為,不判斷交付物對不對。接著提出兩個候選 harness:
    • 不變式候選:處理跨領域都可能出現的工作方式問題,例如規劃、工具使用、context 管理、委派。
    • 領域候選:補上這個領域需要的知識、流程與限制。
  2. Probe。兩個候選在同一個任務、同樣的模型與環境設定下各跑一次。拿它們的軌跡和交付物跟參考執行比,看修改有沒有解決鎖定的問題、沒有效果,還是造成退步。
  3. Compose。讀參考執行、兩個候選、它們相對目前 harness 的 diff,以及所有執行證據,組出下一版 harness。可以合併有支持的修改、修正互相衝突的修改、整個採用其中一個,或保留原樣。每個決定都要對應到軌跡裡的具體觀察。

編輯器的提示詞要求每項修改都追溯到軌跡中的某個時刻,並給了優先順序:先處理幾次執行之間表現不一致的地方(代表模型其實做得到,只需要提醒),再處理每次都重複的失敗,最後才是看得到但還沒發生的風險。

平行與序列遞迴

預算參數 kk 控制探索幅度:

k>1k>1 時,最後由一個選擇器比較匿名化的交付物,依任務要求與原始資料挑一份。選擇器不知道交付物出自哪個 harness,也不另外產生新內容。k=1k=1 時兩種形式都退化成單一步驟,不經選擇。

跨任務層:改進庫

每個任務結束後,系統回顧完整的改進紀錄,整理出「哪些修改在什麼條件下解決了哪個問題」。只有執行對照支持的心得才會留下;某份輸出被選中,本身不算可以轉移的證據。

庫裡每一筆包含整份採用的 harness 和一份 EXPERIENCE.md,記錄適用情境、心得與證據,另有索引供後續 session 查閱。下一個任務一樣從基礎 harness 出發,舊元件要經過 Propose 階段挑選或改寫才會用上,不會自動繼承。模型權重、各階段的指令和決策規則都不變,變的只有這個庫。

實驗設定

項目設定
執行器Gemini 3.5 Flash、GLM-5,權重凍結
初始 harnessOpenCode、Codex 的預設設定
編輯器與選擇器Claude Opus 4.8,在 OpenCode 中以高推理強度執行
WorkBuddy-Bench騰訊的多領域基準,測試集 Code 40、Web 35、Office 25 題,混合隱藏測試與 LLM/VLM 評審
JobBench34 題專業工作任務,由 Claude Opus 4.8 依加權量表評分
LABHarvey 的法律 agent 基準,100 題測試集,由 Claude Sonnet 4.6 評審,報 partial pass rate
重複次數每個設定跑三次,任務順序各自打亂

比較對象有四個:基礎 harness、只做記憶檢索的 ReasoningBank、離線搜尋的 Meta-Harness(用各基準的訓練半邊搜尋),以及每題各自修改的 Harness Scaling。

結果

WorkBuddy-Bench 三個領域的平均分數:

執行器與初始 harness基礎Meta-HarnessHarness²(k=1)平行遞迴 k=5 再加
Gemini 3.5 Flash,OpenCode72.476.477.5+3.3
Gemini 3.5 Flash,Codex74.573.377.5+2.9
GLM-5,OpenCode64.269.775.7+3.9
GLM-5,Codex64.474.275.3+3.0

JobBench 與 LAB:

執行器與初始 harnessJobBench 基礎 → Harness²LAB partial 基礎 → Harness²
Gemini 3.5 Flash,OpenCode31.5 → 36.079.9 → 81.9
Gemini 3.5 Flash,Codex33.9 → 35.371.6 → 75.6
GLM-5,OpenCode20.6 → 24.259.6 → 71.4
GLM-5,Codex23.6 → 24.858.1 → 65.9

幾個值得注意的地方:

拆解:哪些部分有用

以 Gemini 3.5 Flash 搭 OpenCode、k=1k=1 做拆解:

設定WorkBuddyJobBench
完整 Harness²77.536.0
拿掉改進庫74.434.2
兩個候選改成不分範圍的通用編輯器74.632.3
不組合,直接挑證據較好的候選75.934.1

其他分析:

論文的 JobBench 案例:基礎執行只拿 43.1 分,軌跡顯示問題出在流程,沒有跨檔案核對數字,寫完檔案也沒有重新打開檢查。不變式候選加了一條 guardrail,要求先盤點所有輸入、追溯每個數字的來源,並用 script 重新打開產出的檔案檢查;領域候選加了一個核對排程、場地、人力與預算檔案的 skill。組合時四項修改全部保留,重跑後分數升到 77.8。

跟既有做法比新在哪

論文整理了二十多個 harness 改進方法,Harness² 的差別在於同時具備三件事:

論文也做了一個對照:沒有參考執行、候選試跑和改進庫,只讓編輯器直接改基礎 harness,WB-Code 從 73.4 掉到 63.2,WB-Web 從 69.9 掉到 65.0。用 k=1k=1 累積的庫可以讓分數回到基礎水準;用 k=5k=5 累積的庫則在三個領域多 0.9、4.4、5.1 分。

限制

參考資料

註釋

編輯本頁

Podcast

關於語音摘要

此語音摘要由 Google NotebookLM 提供,不完全代表作者本人對文章的理解。