Agent Harness 才是真正的產品:為什麼大廠的 Agent 架構都長得一樣?
想像一下你去夜市買鹹酥雞。
你不會在意老闆用的油是哪一牌的吧?你在意的是他怎麼炸、幾分熟起鍋、胡椒粉撒多少。同一桶油,A 攤炸出來酥脆到你想哭,B 攤炸出來軟趴趴像被雨淋過的報紙。
AI Agent 的世界也是這樣。大家天天在吵哪個 Model 最強,但真正決定一個 Agent 好不好用的,根本不是 Model 本身——而是包在 Model 外面那一層叫做 Harness 的東西 (๑˃ᴗ˂)ﻭ
來看幾個數字你就知道差異有多誇張:
同一個 Claude Opus 4.5,在 CORE-Bench 上換個 scaffold,成績從 42% 直接跳到 78%。Cursor 搞了個延遲載入工具的機制,token 用量直接少掉 46.9%。更狂的是 Vercel——他們把 Agent 80% 的工具砍掉,結果本來會失敗的任務反而跑成功了。
同一個模型、同一個 Benchmark,唯一不同的就是 Harness。
那 Harness 到底是什麼?為什麼所有大廠的 Agent 架構最後都長得差不多?我們一個一個來拆。
Harness:Model 的保母兼經紀人
LangChain 的 Harrison Chase 有句話講得很好:Framework 是抽象,通常沒什麼主見。Harness 則是「電池內建」,它幫你把所有髒活都包好了。
白話一點說,如果 Model 是一個天才學生,Harness 就是那個幫他安排生活起居的經紀人——決定他今天看什麼資料、手邊有什麼工具可以用、考試考砸了要怎麼善後。天才歸天才,沒有經紀人打理,他可能連早餐都忘記吃。
而所有上線跑起來的 production agent,不管品牌多響亮,最核心的東西都長這樣:
while (model 呼叫 tools):
執行 tool → 捕捉結果 → 加進 context → 再次呼叫 model
就這麼簡單。Claude Code 是這樣、Cursor 是這樣、Manus 也是這樣。真正的工程挑戰全部藏在這個迴圈外面——你怎麼決定哪些資訊該進來、哪些工具該開放、出錯了怎麼接住。
Clawd 吐槽時間:
這個迴圈跟你去便利商店微波便當的流程一模一樣:掃條碼、設定時間、等叮一聲、打開來看熟了沒、沒熟再轉 30 秒。Agent 做的事就是這個,只是它微波的是 code,而且有時候會把便當炸開 ┐( ̄ヘ ̄)┌
拆解四大門派的 Harness 哲學
Claude Code:放手讓 Model 自己開車
Claude Code 被大家逆向工程得差不多了,Anthropic 自己也發過詳細文章。它的架構驚人地簡單——一個扁平的 message list,大概 18 個基礎工具,然後一個叫 nO 的 while 迴圈。沒有什麼花俏的 DAG 排程,沒有多重 Agent 角色扮演。
Anthropic 的哲學是「讓 Model 控制迴圈」,而不是「用程式碼控制 Model」。這就像教小孩騎腳踏車——你可以在後面一直扶著龍頭替他轉彎,也可以放手讓他自己摔、自己學。Claude Code 選了後者。
不過放手不代表放生。每次 tool 執行完,系統會在結果尾巴偷偷附上「系統提醒」。這比寫在 system prompt 裡有用得多,因為 Model 每次呼叫 tool 都會看到,就像你媽每天出門前都要叮嚀你「記得帶鑰匙」——說了一百次,你真的不會忘。
Clawd 偷偷說:
那個 TodoWrite 工具是我最喜歡的設計。它其實什麼事都沒做——就是個 no-op,純粹強迫 Agent 把計畫寫下來。就像你考期末考之前老師逼你交一份讀書計畫,不是因為計畫本身有用,而是逼你想過一遍「我到底要幹嘛」。自己在刻 Agent 的人拜託偷學這招 (◕‿◕)
Cursor:一切皆檔案
Cursor 的做法很有趣。他們會根據不同的 frontier model 去「特調」整個 Harness——給 OpenAI Codex 的工具命名得像 shell command(rg、grep),給 Claude 的則是另一套推理格式。同一個 Harness,面對不同 Model 會變成不同的樣子,像一個會看人說話的業務。
但 Cursor 最核心的設計理念只有一句話:檔案就是一切。所有東西都對應到 file。為什麼?因為檔案可以被搜尋、可以版本控制、可以分群。比起發明一套新的抽象概念,直接用檔案系統簡單又安全。這就像整理房間——與其花三萬塊買一套複雜的收納系統,不如買十個透明收納箱,反而找東西最快。
更狠的是,他們拿 Agent 的對話軌跡去訓練自家的 embedding model。分析 Agent 在解任務時哪些檔案「應該」要更早被找到,然後用這些資料 fine-tune 搜尋模型,準確率提升了 12.5%。等於是讓 Agent 的失敗經驗變成下一次的導航地圖。
Clawd 忍不住說:
「用失敗經驗訓練搜尋模型」這招很像期末考完對答案——你不是為了改分數,而是為了知道下次該先讀哪幾章。Cursor 把這件事自動化了,我覺得這比什麼 RAG 架構都務實 (๑•̀ㅂ•́)و✧
Manus:被 KV-Cache 教訓過的人
Manus 上線以來已經把 framework 重寫了五次。五次。你沒看錯。
他們最慘痛的一課是關於 KV-cache。一開始他們想說:這個 tool 現在不需要?那就動態拿掉。聽起來很合理吧?結果發現,你只要在 context 前面改了 tool 定義,後面所有 token 的 KV-cache 全部失效——等於之前計算過的快取全部作廢,要重算。這就像你在圖書館把目錄重新排了,結果所有書的位置標籤全部報廢,每本書都要重新上架。
所以 Manus 學乖了。他們把 29 個 tools 永遠載入,然後用 logit masking 在 decoding 階段控制 Model 當下能用哪些。工具全都在菜單上,但服務生會跟你說「這道今天沒有」。
他們最大的體悟也很反直覺:效能提升最多的時刻,幾乎都發生在「移除」東西的時候。把複雜工具換成 shell 指令、把花俏的多 Agent 系統換成單純的 handoff。Harness 越複雜,Model 越笨。
Clawd 歪樓一下:
五次重寫 framework。五次。我算了一下大概是把整間房子拆了重蓋五次的概念。但 Manus 團隊最後得出的結論跟裝潢界的名言一樣——less is more。如果你的 Agent 越來越複雜但效果沒變好,那你需要的不是更多功能,是一把刪除鍵 (╯°□°)╯
SWE-Agent:幫 LLM 量身訂做的介面
Princeton 的 SWE-Agent 引入了一個有趣的概念叫 ACI(Agent-Computer Interface)。人類用 GUI,AI 用 ACI——專門為 LLM 的思考方式設計的介面。
他們做了一件很聰明的事:Agent 每次改完 code,系統會自動跑 linter。語法有錯?直接退貨叫你重寫,不讓壞 code 進到下一輪。少了這個 Harness 層的守門員,效能直接掉 3%。聽起來不多,但在競賽裡 3% 就是排名差好幾名的距離。
另外,SWE-Agent 會把除了最近 5 筆動作以外的所有觀察結果壓縮成一行摘要。你可以想像成期末考的筆記——你不會把整本課本帶進考場,你帶的是濃縮過的重點。這就是 progressive disclosure 內建在迴圈裡的樣子。
所有人都在用但沒人好好取名的招式:Progressive Disclosure
漸進式揭露這個詞其實是從 UI 設計借來的,1980 年代 IBM 就提過了。原則很簡單:只顯示現在需要的東西,複雜性等到需要時再展開。
套到 Agent 設計上超好理解。你去餐廳吃飯,菜單不會列出每道菜的完整食譜吧?你先看菜名和價錢,想知道更多才翻到食材說明。如果一坐下服務生就把所有食譜念給你聽,你只會想逃跑。
Agent 也是一樣。你一次把所有文件、所有工具定義、所有歷史對話全部塞進 context,Model 不會變聰明——它會淹死。
來看各家怎麼實作的:Claude Code 的 SKILL.md 不會一開始全載入,而是 Model 覺得相關時才隨選載入。Cursor 只先告訴 Agent 工具名稱,等它真的要用才 fetch 完整定義,token 用量直接砍 46.9%。Manus 把全域計畫寫進 todo.md,強迫 Model 把注意力拉回眼前的任務。
Anthropic 的內部數據更誇張:一次全載入,25,000 token 裡只有一條有用資訊,效率 0.8%。用 progressive disclosure?955 token、效率 100%。差了 26 倍 ヽ(°〇°)ノ
延伸閱讀
- CP-16: Claude Sonnet 5 要來了!Agentic Swarm 平行多工時代
- CP-26: Claude Code Wrappers 將成為 2026 的 Cursor — AI 自主建構 Context 的典範轉移
- CP-7: Claude Code 終於出非工程師版了!Cowork 讓所有人都能用 AI Agent 完成日常工作
Clawd murmur:
26 倍的效率差距。你知道這個差距大概等於什麼嗎?等於你用 Google Maps 導航跟用「我記得大概往那邊走」的差距。明明同一條路、同一台車,但一個 20 分鐘到,一個繞了兩小時還在找停車場。Progressive disclosure 就是 Agent 的 GPS (⌐■_■)
引擎 vs. 整台車
Dex Horthy 在 12 Factor Agents 裡講了一句話很中肯:你如果把超過 Model 容量 40% 的東西塞給它,它就會進入「愚蠢區」。訊號被噪音淹沒、注意力碎裂,Agent 開始犯看起來像推理錯誤、但其實是被你的 Harness 搞到資訊過載的蠢事。
所以回到最開始的鹹酥雞比喻——Model 是那桶油,Harness 是整個攤位的運作方式。油的品質當然重要,但火候、起鍋時間、瀝油方式,這些才決定你炸出來的東西能不能讓客人排隊。
下次看到一個 Agent demo 很厲害,別急著問「它用哪個 Model」。去看它的 while 迴圈怎麼寫、context 怎麼控制、工具怎麼載入。那才是真正值錢的 know-how,也是你自己做 Agent 時真正該花腦力的地方。
參考資料
- Anthropic, “Effective Harnesses for Long-Running Agents” (2026)
- Cursor, “Dynamic Context Discovery” & “Improving Agent with Semantic Search” (2026)
- Manus, “Context Engineering for AI Agents: Lessons from Building Manus” (2025)
- Princeton, “SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering” (2024)
- LangChain, “Improving Deep Agents with Harness Engineering” (2026)
- Phil Schmid, “Context Engineering for AI Agents: Part 2” (2025)