每半年都會冒出一個「最終解」的 agent 框架。2026 年已經有幾十個了。誠實的答案是,有經驗的 builder 大多已經達成共識:簡單的 tool-use loop 不需要框架;graph 形狀的多步驟工作流用 LangGraph;只用 Python 多 agent demo 用 CrewAI;TypeScript 環境用 Mastra。其他的大多是噪音。
業界小秘密:大部分 agent 不需要框架
如果你的 agent 是「呼叫 LLM、parse tool call、跑 tool、loop 到結束」,你不需要框架。那大概是 30 行程式碼,任何語言都能寫。Anthropic SDK、OpenAI SDK、Vercel AI SDK 全部原生支援 tool use。你寫一個 while loop、自己處理錯誤,然後 — 重點 — 你看得懂裡面發生什麼,因為是你寫的。
業界最有想法的 builder(Anthropic 自家團隊的公開 agent 文章、Cursor 團隊等等)反覆講:「先不要框架,有具體理由再加」。框架加抽象層,出事的時候你要 debug 你自己的 code 跟框架對「應該發生什麼」的想像。
失敗 pattern:第一天就選 LangChain → 花好幾週跟框架抽象戰鬥 → 寫繞過框架的自訂程式 → 最後拿到兩邊最差的部分。
LangGraph:真的有 graph 的時候是對的選擇
LangChain 的 LangGraph 是大部分有經驗 builder 勉強尊重的框架。它把 agent 流程當作明確的狀態圖 — node 是步驟、edge 是轉移、state 是共享的。當你有真的多步驟工作流、有分支、有 retry、有 human-in-the-loop checkpoint,這個模型很乾淨地對應到問題。
什麼時候用 LangGraph:agent 有 5 個以上不同步驟、多個決策分支、多次執行間需要持久化、或者有人工審核 gate。「狀態當圖」的心智模型在工作流真的複雜時才有價值。
LangGraph 也是 LangChain 修掉 LangChain 過去多年罪過的地方。新版 Python 跟 JS SDK 比較乾淨。LangSmith 提供內建可觀測性。持久化也直接。
弱點:還是複雜。心智成本是真的。簡單 ReAct loop 不要用它。
CrewAI:demo 取勝的多 agent 框架
CrewAI 的賣點是多 agent:定義幾個「agent」給角色,給他們任務,看他們協作。Demo 看起來很棒。API 的簡潔有真實吸引力。
Production 的現實:CrewAI 的「角色式」心智模型 —「行銷」、「研究員」、「編輯」 — 大多是表演。真實的多 agent 系統做成一個有分支的單一連貫 agent 比較好,不是多個人格互相對話。Roleplay 路線燒很多 token,品質提升只比好好寫 prompt 的單一 agent 邊緣一點點。
什麼時候用 CrewAI:需要快速 agent 行為 demo、特別受益於角色分離(少見)、或者在做之後會重寫的原型。任何要可靠性的 production 場景不要 ship CrewAI。
Mastra:真的好的 TypeScript 優先選項
Mastra 是 TypeScript / Next.js 環境最值得注意的 agent 框架。它有意識地限定範疇:workflow、agent、RAG、eval、memory、observability。DX 很好 — 自動完成 work、type 有幫助、跟 Vercel 跟 Cloudflare deploy 原生整合。
什麼時候用 Mastra:stack 是 Next.js 或 Node.js、想要 LangGraph 的結構但不被 Python 鎖、想要 first-class 的 observability 跟 eval 支援不用拼三個廠商。
Mastra 比較新、社群小、API 還在動。但設計選擇合理、maintainer 回應快、沒有 LangChain 累積的歷史包袱。
OpenAI Assistants API 跟 Anthropic Computer Use
- OpenAI Assistants API — 簡單聊天助手加檔案搜尋 OK。production agent 受限因為狀態管理不透明(你看不到自己的 thread state)。大部分從這裡開始的團隊最後都直接寫 tool-use loop 了。
- Anthropic Computer Use — Claude 控制瀏覽器或桌面。酷、慢、貴、脆。可以針對特定用途(資料輸入自動化、QA 測試)實驗,但不是通用框架。
Pydantic AI、LlamaIndex Agents、AutoGen、smolagents
- Pydantic AI — 乾淨 Python、type 驅動。範疇比 LangGraph 小但設計好。Python 單一 agent 工作流值得考慮。
- LlamaIndex Agents — LlamaIndex 的 agent 層。已經深陷 LlamaIndex 做 RAG 的話用。獨立用沒那麼吸引。
- Microsoft AutoGen — 研究風格。多 agent。Demo 有意思,production 用法少。持續觀察。
- HuggingFace smolagents — 極簡 Python 框架,code-as-action 範式(agent 寫 Python 而不是 tool call)。技術場景有意思。
什麼時候完全不用框架
80% 的 agent 場景,自己寫 loop 就好。偽碼:
messages = [{role: 'user', content: query}]
while True:
response = llm.create(messages=messages, tools=tools)
if response.stop_reason == 'end_turn':
return response.content
for tool_call in response.tool_calls:
result = run_tool(tool_call.name, tool_call.args)
messages.append({role: 'tool', content: result})
就這樣。加上錯誤處理、指數退避 retry、結構化 log,你就有一個 production agent 在一個檔案裡。你會清楚知道發生什麼。你能 debug。你不用跟抽象戰鬥。
什麼時候框架真的有幫助
- graph 形狀的工作流,有分支、合流、retry、人工同意 → LangGraph 或 Mastra Workflows
- 跨長期執行需要持久化 agent 狀態 → LangGraph 的 checkpointing 或 Mastra 的 memory
- 需要內建 observability,不想自己整合 Langfuse/Helicone/Pydantic Logfire → 框架內建
- 多個工程師,想要共享心智模型 → 框架提供共同詞彙
注意框架漂移
這個領域的框架變化超快。你 2024 年認識的 LangChain 不是 2026 年的 LangChain。CrewAI 在 2025 年改了核心 API 兩次。Mastra 在 2025 年底重組了 workflow API。固定相依性版本、升級前讀 changelog、接受你今天的框架選擇 18 個月後會看起來過時。
這也是「不用框架」一直吸引人的原因:30 行手寫的 agent loop 沒有 changelog 要追。
決策樹
- 簡單 tool-use loop、單 agent:不用框架,直接 SDK
- 多步驟工作流、有分支、Python:LangGraph
- 多步驟工作流、TypeScript:Mastra
- type-safe Python 單一 agent:Pydantic AI
- 快速多 agent demo:CrewAI(不要 ship)
- 瀏覽器或桌面自動化:Anthropic Computer Use
下一步
- 看一下 agent loop pattern:ReAct、Plan-and-Execute、Reflexion
- 研究 agent observability 工具:Langfuse、Helicone、LangSmith
- 看 agent memory 策略(獨立主題,值得深入)
- 先搭一個沒有框架的 agent;只在能說出具體限制時才採用框架