cover

ChatGPT 是一問一答的翻譯機。Claude Code 是會自己去找檔案、改 code、跑測試的實習生。差別不在模型,在 Agent 架構。

先講結論

Agent = LLM + 工具 + 記憶 + 迴圈。

普通的 LLM 呼叫是「輸入 → 輸出」,一次就結束。Agent 是一個迴圈:行動 → 觀察結果 → 決定下一步 → 再行動,直到任務完成。

三個你最常遇到的 Agent 模式:

  1. ReAct:想一步做一步(適合簡單任務)
  2. Plan-and-Execute:先規劃再執行(適合複雜任務)
  3. Multi-Agent:多個 Agent 分工合作(適合超大任務)

90% 的場景用 ReAct 就夠了。 不要一上來就用 Multi-Agent,就像你不會為了煮泡麵請三個廚師。


ReAct:最基礎也最實用的模式

ReAct(Reasoning + Acting)就是讓 LLM 交替「想」和「做」:

User: 比較台北和東京今天的天氣

Think: 我需要查台北的天氣
Act:   call weather_api("台北") → 25°C 晴天
Think: 再查東京
Act:   call weather_api("東京") → 18°C 多雲
Think: 兩個都查到了,可以比較
Answer: 台北 25°C 晴天,東京 18°C 多雲,台北高 7 度。

每做一步就觀察結果,再決定下一步。這個模式的好處是推理過程透明,你可以看到它每一步在想什麼,不是黑盒子。

缺點? 長任務容易「迷路」。想像一下你給它一個需要 15 步才能完成的任務——到第 10 步的時候,context window 已經塞滿了前面的思考過程,品質開始下降。

我在做 ClawdBot heartbeat 的時候就遇過這個問題。Agent 的 session 累積到 166K tokens 之後,它就開始偷懶——每次 heartbeat 都只回一個 HEARTBEAT_OK 然後什麼都不做。就像實習生上班上到第三個月開始摸魚。


Plan-and-Execute:先想清楚再動手

當任務太複雜、ReAct 會迷路的時候,就需要 Plan-and-Execute:

任務: 重構整個認證系統

Plan(規劃階段):
1. 分析現有認證流程
2. 設計新的 JWT + Refresh Token 架構
3. 修改 middleware
4. 更新所有 API endpoint
5. 寫測試

Execute(執行階段):
→ 逐步執行,每步完成後回報
→ 遇到問題可以 Re-plan

關鍵在於分離「想」和「做」。 Planner 只負責全局視野,Executor 只負責執行單步。這樣每個 Agent 的 context 都很乾淨。

Claude Code 的 Plan Mode(/plan)就是這個模式的實作——Plan Mode 裡只能讀和搜尋,不能改 code。等你看過計劃覺得 OK,才開始執行。

我覺得這是最聰明的設計之一。有多少次你看到 AI 還沒搞清楚全貌就開始瘋狂改 code?然後把整個專案改得面目全非。


Multi-Agent:當一個人不夠用

當任務需要不同「角色」的能力時,就把它拆給多個 Agent。

主從模式(最常用)

使用者 → Team Lead(分配任務)
              ├→ Researcher(搜尋分析)
              ├→ Coder(寫 code)
              └→ Tester(測試驗證)
         ← Team Lead(整合結果)

我自己的 OpenClaw 系統就是這種架構:4 個 Agent(main、ops、content、watchdog),各有各的 workspace、Discord 頻道、heartbeat 排程。ops 負責監控,content 負責產出內容,watchdog 負責確認大家還活著。

好處:每個 Agent 的 context 互不干擾。壞處:Agent 之間的溝通是有成本的——每次 SendMessage 都消耗 token。

其他模式(知道就好)

  • Pipeline:A 做完傳給 B,B 做完傳給 C。適合固定流程(像內容生成管線)
  • Debate:一個 Agent 提方案,另一個 Agent 挑毛病。適合需要批判性思考的場景(code review、風險評估)

工具設計:Agent 的能力上限

Agent 再聰明,沒有工具就只能嘴砲。工具設計決定了 Agent 的能力邊界。

好的工具設計:

原則好的不好的
單一職責read_file(path)do_everything(action, params)
清晰命名search_databasetool_1
錯誤訊息有用"File not found: /path/to/file""Error occurred"

Function Calling vs MCP: Function Calling 是你在 prompt 裡自己定義工具。MCP 是標準化協定,可以同時接多個 MCP Server(Notion、Gmail、GitHub),Agent 自動知道有哪些工具可用。MCP 更靈活,但要學的東西也更多。


下一篇

Agent 的記憶管理和錯誤處理是另一個大坑——context 爆滿怎麼辦?Agent 開始無限迴圈怎麼辦?


Agent 就像實習生——能力不差,但你不能扔一句「把這個搞定」就走開。你得告訴他怎麼做、給他工具、然後盯著他。