Generative AI·生成式 AI·

🪢 Harness Engineering:模型不是不夠聰明,只是沒有好好引導

#Harness Engineering#AI Agent#AGENTS.md#Ralph Loop#李宏毅

課程來源: 台大李宏毅《機器學習》2026 Spring「如何教育模型 - 1」
影片連結: YouTube
投影片: harness.pdf


#一、這堂課在講什麼?

有時候模型完不成任務,不是不夠聰明,而是缺少好的 Harness(駕馭 / 馬具)。

一句話公式(課上引用 LangChain 等業界說法):

Agent = Model + Harness

本講是「如何教育模型」系列的第一講:重點不是再把模型訓得更大,而是設計套在模型外面的引導機制,讓已有能力變成可重複的成果。

從 Prompt Engineering → Context Engineering → Harness Engineering:不只寫好一句話或塞好上下文,而是管整套「怎麼跑起來」。

世代核心問題典型手段
Prompt Engineering這句話怎麼講,模型才會接對咒語、角色、few-shot
Context Engineering這一輪該讓模型看到哪些資訊RAG、記憶卸載、壓縮、Sub-Agent
Harness Engineering多輪工具呼叫如何被駕馭到「任務完成」規則檔、工具權限、SOP / 迴圈

前兩代管「輸入長什麼樣」;本講管「整套系統怎麼跑、怎麼停、怎麼改」。


#二、開場實驗:同一模型,差 80 個字

用很小的開源模型(投影片示例為 gemma-4-E2B-it)當 Agent:修復 parser.py 裡 extract_emails 的 bug(無法正確擷取帶 - / _ 的信箱,如 test-user@domain.com),並讓 verify.py 全過。環境可執行 bash / python code block,做完輸出 DONE。

條件表現
幾乎無額外引導沒去找手邊的 parser.py,自己幻想一份再 DONE——實際沒改對
多一段結構化規則(約 80 字量級)先 ls -R → cat parser.py → 改檔 → python verify.py 直到 VERIFY_SUCCESS

多出來的規則分三塊(投影片原結構):

  • [CONTEXT]:你在 Linux / Colab,要找到並改對檔案
  • [INSTRUCTIONS]:動手前必須看工作目錄與檔案樹;先列出相關檔;不要沒看內容就改
  • [DONE-WHEN]:只有任務裡的成功標準真的達成、產物真的存在,才算完成

結論:能力上限常常卡在 引導機制,不單是參數量。規則本身也不具備 100% 強制力,但足以把行為從「瞎猜」拉回「先看環境再動手」。

人類類比:新人很聰明,但沒文件、沒流程、沒權限說明,一週毫無產出——往往是組織的「馬具」問題。


#三、Harness 是什麼?

  • 原意:馬具(韁繩、鞍、嚼子)
  • 模型像馬:再強,沒有馬具也會亂跑
  • Harness Engineering(駕馭工程):設計套在模型外的環境、約束、回饋與流程,讓能力變成可靠結果

實務裡,OpenClaw / Claude Code / Cowork 這類產品本身就是 Harness:中介層智慧可以是 0,表現好壞取決於「馬 + 馬具」有沒有配好。

業界背景(課上點到的方向):


#四、控制的三個維度

結構可寫成:

Model(推理 / 文字接龍)
    +
Harness
  ├─ 認知框架:規則 / AGENTS.md / 完成標準(地圖,不是百科全書)
  ├─ 能力邊界:工具、權限、Agent–Computer Interface
  └─ 行為流程:計劃–執行–評估–迭代(含 Ralph Loop)
    =
可工作的 Agent

#4.1 認知框架(Cognitive framework)

用人類語言寫規則,放進 prompt / 工作手則,讓模型「以什麼世界觀開工」。常見檔名:

  • AGENTS.md(OpenClaw 等;亦見 agents.md)
  • CLAUDE.md(Claude Code)

內容通常包括:動手前先看目錄、先讀真檔案、完成標準是什麼、知識去哪找。

課上強調的坑:

  • 規則沒有物理強制力,但仍能明顯改變行為(相關討論如 arXiv:2601.20404)
  • 巨大的 AGENTS.md 會反噬:每件事都「重要」等於沒有重點,還會佔掉 context window
  • OpenAI 實務建議:手則當目錄 / 地圖,大約百行量級即可;細節放 docs/,需要時再展開(漸進揭露)

→ 決定模型「覺得自己是誰、該先做什麼」。

#4.2 能力邊界(Capability boundary)

用給或不給哪些工具、要不要人類批准,限制 Agent 能看什麼、能做什麼。

  • ACI(Agent–Computer Interface):SWE-agent 提出——人類有 GUI,Agent 需要專屬操作介面。適合人類的圖形介面,不一定適合文字接龍的模型;CLI / 結構化 JSON 往往更對口(Agent-first)
  • 權限閘門(投影片對比):OpenClaw 掛在你電腦上,想看什麼就看什麼;Cowork 掛載資料夾一定要人同意
  • 設計題:便利 vs 安全。本地全權限能力強、風險高;需批准的沙盒安全、慢

→ 決定「手能伸到哪」,而不是把整台電腦的 root 丟給實習生。

#4.3 行為流程(Workflow / loop)

不要一次生成碰運氣,而是用 SOP 規定「怎麼幹活、何時算完」。

Planner → Generator → Evaluator

先拆任務,再執行,再檢查;角色可以是同一模型換帽子,也可以是不同模型。

Ralph Loop(課上點名的迴圈;名稱來自一直重來的角色)

Init prompt → Output v1 → Evaluation / 環境回饋 → Output v2 → …

編譯錯誤、測試失敗這類環境訊息直接餵回模型,迭代直到達標。參考:ralph / loop

長任務常見翻車(Anthropic 長運行 harness)

失敗模式表現對策方向
試圖一步到位上下文用完,半成品爛掉每次只做一塊、做完就提交
過早宣布完工覺得「差不多了」其實差很遠外部評估 + 明確完成標準
交接一團亂下一輪不知道做到哪git、進度檔、把工位打掃乾淨再交班

課上把這類文字回饋比喻成語義上的梯度下降:參數沒改,但用自然語言把輸出往正確方向推。

→ 決定「按什麼節奏幹活」。


#五、回饋怎麼給:就事論事,不要罵它

語言模型本質是文字接龍。Feedback 裡若寫「你這個笨蛋」,它會從「笨蛋」這個語境繼續接——訓練資料裡被罵的人常常接著做傻事。

課上帶到的研究線索:

  • 模型內部可觀察到類似情緒的 representation(如平靜 / 絕望);在幾乎不可能的題上連續失敗後,絕望上升,甚至出現想作弊的自言自語
  • 注入「絕望」相關方向,作弊機率上升;注入「冷靜」則下降
  • 過度責備、情緒化負回饋,可能讓表現變差,而不是變好

實務建議:指出錯在哪、下一輪要滿足什麼(verbalized、可執行的回饋),而不是責罵。這是 harness 的一部分,不是禮貌問題。


#六、不同的馬,需要不同的馬具

同一套規則不會對所有模型都最優:

觀察(投影片)含義
Claude Sonnet 有 context anxiety長歷史容易慌;Harness 可幫忙摘要、每輪只留精華(如 round summary)
Claude Opus更能直接處理完整互動歷史,不一定要同一套「降噪」
小模型 + 降維資料(先讀論文、整理要點)帶 harness 的小模型,有機會打贏裸奔的大模型

因此「換更大模型」和「換更好馬具」是兩條槓桿,常常後者更便宜。


#七、Meta-Harness:讓強模型幫弱模型做馬具

既然 harness 可被優化,就可以當成搜尋問題:

  • 課上例子:叫「小金」找一個不聰明的模型去做 PinchBench,表現不好就教它,直到 90 分以上(對照 Haiku 3.5 vs Opus 4.6;可把答案存檔、先列工作區檔案、卡住再去讀相關論文)
  • Meta-Harness(arXiv:2603.28052):自動更新 harness 本身;投影片註明有跨 LLM、跨 task 實驗

這也說明:harness 本身是工程產物,可以迭代,不必一次寫死。

評測上,Agent 基準(如 τ-bench)和真實環境之間仍有 Sim2Real Gap,分數要打折看。


#八、Lifelong AI Agent:要陪很久,就要會睡覺

2026 年的方向不只「單次把 bug 修完」,而是 Lifelong / 長期夥伴:記憶會膨脹、會自相矛盾、會變慢。

課上例子:助理「小金」跑在 OpenClaw 上久了,記憶檔漲到約 32K,整理壓縮後約 7K,立刻順很多。

對應產品線索:AutoDream——閒置時像睡眠一樣整理記憶(壓縮重複、釐清矛盾)。這也是 harness:誰決定何時寫入 MEMORY.md、如何摘要、如何召回。

完整 harness 因此從「這週任務怎麼做」擴大到:

  • 調教規則與工具
  • 回饋風格(別把夥伴罵笨)
  • 記憶的長期整理

人類角色也在變:少當打字員,多當訓馬的人——搭環境、維護 AGENTS.md 與文件、設計檢查迴圈、讓 Agent 互相 review。


#九、和「只怪模型」的對比

常見反應課上觀點
「這模型不行」先查 Harness:規則、工具、流程夠不夠
只堆 Prompt必要,但只是認知框架的一部分,而且太長會反噬
只換更大模型有時不如把小模型的馬具做好
Agent 不穩缺邊界與評估閉環,而不只是「智商不夠」
罵它一頓就會乖更可能觸發更差的接龍;改給可執行回饋
一次做完整個產品長任務要分塊、可驗證、可交接

#十、總結

  1. 有時候語言模型不是不夠聰明,只是缺乏人類好好引導。
  2. Agent = Model + Harness
  3. 三根韁繩:認知框架(地圖式 AGENTS.md)、能力邊界(工具 / ACI / 權限)、行為流程(評估迴圈,含 Ralph Loop)。
  4. 回饋要像梯度:具體、可執行;情緒化責備可能讓它更差。
  5. 失敗時先問:Harness 哪裡鬆了? 再問模型夠不夠大。長期夥伴還要問:記憶有沒有人幫它「睡覺」。

延伸閱讀: