每半年都会冒出一个「最终解」的 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;只在能说出具体限制时才采用框架