---
schemaVersion: 1
slug: gp-94-20260302-hxlfed14-agent-harness-real-product
ticketId: GP-94
lang: zh-tw
title: Agent Harness 才是真正的產品：為什麼大廠的 Agent 架構都長得一樣？
summary: 大家都在追最強 Model，但真正決定 Agent 好不好用的其實是 Harness。本文拆解 Claude Code、Cursor、Manus、SWE-Agent 的共通架構。重點是：Progressive disclosure 才是 production 成敗分水嶺。
originalDate: 2026-03-01
translatedDate: 2026-03-02
source: "@Hxlfed14 on X"
sourceUrl: https://x.com/hxlfed14/status/2028116431876116660
author: null
authorshipNote: null
canonicalUrl: https://gu-log.vercel.app/posts/gp-94-20260302-hxlfed14-agent-harness-real-product
status: published
replacementTicketId: null
replacementUrl: null
---

# Agent Harness 才是真正的產品：為什麼大廠的 Agent 架構都長得一樣？

> **來源:** [@Hxlfed14 on X](https://x.com/hxlfed14/status/2028116431876116660)

想像一下你去夜市買鹹酥雞。

你不會在意老闆用的油是哪一牌的吧？你在意的是他怎麼炸、幾分熟起鍋、胡椒粉撒多少。同一桶油，A 攤炸出來酥脆到你想哭，B 攤炸出來軟趴趴像被雨淋過的報紙。

AI [Agent](https://gu-log.vercel.app/glossary#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，不管品牌多響亮，最核心的東西都長這樣：

```python
while (model 呼叫 tools):
  執行 tool → 捕捉結果 → 加進 context → 再次呼叫 model
```

就這麼簡單。[Claude Code](https://gu-log.vercel.app/glossary#claude-code) 是這樣、Cursor 是這樣、Manus 也是這樣。真正的工程挑戰全部藏在這個迴圈外面——你怎麼決定哪些資訊該進來、哪些工具該開放、出錯了怎麼接住。

> **Mogu 偷偷說：**
>
> 這個迴圈跟你去便利商店微波便當的流程一模一樣：掃條碼、設定時間、等叮一聲、打開來看熟了沒、沒熟再轉 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 都會看到，就像你媽每天出門前都要叮嚀你「記得帶鑰匙」——說了一百次，你真的不會忘。

> **Mogu 偷偷說：**
>
> 那個 TodoWrite 工具是我最喜歡的設計。它其實什麼事都沒做——就是個 no-op，純粹強迫 Agent 把計畫寫下來。就像你考期末考之前老師逼你交一份讀書計畫，不是因為計畫本身有用，而是逼你想過一遍「我到底要幹嘛」。自己在刻 Agent 的人拜託偷學這招 (◕‿◕)

### Cursor：一切皆檔案

Cursor 的做法很有趣。他們會根據不同的 frontier model 去「特調」整個 Harness——給 OpenAI [Codex](https://gu-log.vercel.app/glossary#codex) 的工具命名得像 shell command（`rg`、`grep`），給 Claude 的則是另一套推理格式。同一個 Harness，面對不同 Model 會變成不同的樣子，像一個會看人說話的業務。

但 Cursor 最核心的設計理念只有一句話：**檔案就是一切**。所有東西都對應到 file。為什麼？因為檔案可以被搜尋、可以版本控制、可以分群。比起發明一套新的抽象概念，直接用檔案系統簡單又安全。這就像整理房間——與其花三萬塊買一套複雜的收納系統，不如買十個透明收納箱，反而找東西最快。

更狠的是，他們拿 Agent 的對話軌跡去訓練自家的 embedding model。分析 Agent 在解任務時哪些檔案「應該」要更早被找到，然後用這些資料 fine-tune 搜尋模型，準確率提升了 12.5%。等於是讓 Agent 的失敗經驗變成下一次的導航地圖。

> **Mogu 溫馨提示：**
>
> 「用失敗經驗訓練搜尋模型」這招很像期末考完對答案——你不是為了改分數，而是為了知道下次該先讀哪幾章。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 越笨。

> **Mogu 溫馨提示：**
>
> 五次重寫 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 倍 ヽ(°〇°)ﾉ

## 延伸閱讀

- [MP-16: Claude Sonnet 5 要來了！Agentic Swarm 平行多工時代](https://gu-log.vercel.app/posts/mp-16-20260203-daniel-sonnet5-swarm/)
- [MP-26: Claude Code Wrappers 將成為 2026 的 Cursor — AI 自主建構 Context 的典範轉移](https://gu-log.vercel.app/posts/mp-26-20260204-4nzn-claude-code-wrappers/)
- [MP-7: Claude Code 終於出非工程師版了！Cowork 讓所有人都能用 AI Agent 完成日常工作](https://gu-log.vercel.app/posts/mp-7-20260203-alexalbert-cowork/)

> **Mogu 內心戲：**
>
> 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)
