跳转至

Stage 4 — Agent 框架(Agent Frameworks)

繁體中文 | 简体中文 | English

时间估算:2-3 周(约 10-15 小时)

💡 用语不熟(framework / supervisor / worker / handoff⋯)→ 翻 resources/glossary.md

📋 本章组成:学习目标 → 进入条件 → 必读 →〔可选 · 概念地图:multi-agent intro + 进阶 tool patterns〕→ 动手练习 → 精选 Projects → 自我检查 🔑 关键名词:见 resources/glossary.md(framework / agent loop / handoff / supervisor 等收在 2、4)

你已经从零打造过一个 ReAct agent(Stage 3)。现在来看 framework 到底帮你做了什么。挑一个深入学,其他的浏览过去就好,知道什么时候该换。

📌 学习目标

完成这个 stage 后你会: - 比较 5 个主流 agent framework(LangGraph、AutoGen、CrewAI、Smolagents、OpenAI Agents SDK) - 替任务挑出对的 framework - 用两个 framework 各做一次同样的 agent,亲身感受差异 - 看出什么时候该丢掉 framework、自己写

🚪 进入条件

你应该已经: - 跑完 Stage 3 的全部 5 个 hello-X projects - 从零写过 ReAct(练习 3) - 对 async Python 上手(framework 大量依赖 async)

📚 必读

  1. Anthropic — Building Effective Agents — 什么时候用 framework、什么时候直接用 raw API
  2. LangChain — Conceptual Guide: Agents — agent 的抽象概念
  3. Best Multi-Agent Frameworks 2026 comparison — 当前市场定位
  4. 挑一个 framework 的 Quickstart — 选 LangGraph 或 CrewAI,把官方教学从头跑到尾

🤔 什么是 multi-agent framework?

两个维度先分清楚(workflow vs agent / single vs multi)

要看懂 multi-agent framework 之前、有一个有用的厘清方式——把 workflow vs agentsingle vs multi LLM 当成两个正交维度。Anthropic“Building Effective Agents”原文的核心区別是 workflow(固定 code path)vs agent(LLM 自主决定 next step);我们把它跟 single/multi 叠起来看 4 个象限:

Workflow
(你写好的 code path)
Agent
(LLM 动态决定下一步)
Single LLM 线性 pipeline、无分支判断 一个 LLM + ReAct loop、自己 plan + adapt
Stage 3 写的就是这个
Multi LLM 预设 routing(譬如“销售问题 → agent A、技术问题 → agent B”) 2+ agent 互相 handoff、orchestrator 动态分配
本 stage 主题

为什么这个区別有用:production 场景大多落在“single agent workflow”+“single agent”象限——多数任务根本不需要 multi-agent。真正需要 multi-agent framework 的是右下角象限——LLM 自主性高 + 多角色协作。但实作上四个象限的边界有时模糊(LangGraph 的 conditional edge 可以同时看成 workflow routing 跟 agent 动态决策)、不要把这个 matrix 当互斥分类。

→ 本 stage 后续讨论都假设你已经知道:Multi-agent framework 主要帮你处理多个 agent 之间的协调、交接、状态管理与重复性样板代码,让你不用从零写整套协作流程(右下角象限的 orchestration boilerplate)。

Single-agent vs multi-agent — 一张对照表先看清楚差异

维度 Single-agent(你 Stage 3 写过了) Multi-agent system
架构 一个 LLM + ReAct loop + 若干 tools 2+ LLM、各有角色(researcher / writer / critic ...)、orchestrator 协调
怎么决策 同一个 LLM 从头想到尾 角色拆分 + handoff、不同 LLM instance 看不同视角
State 管理 线性 message history shared state / message passing / checkpoint
适合场景 逻辑线性、tool < 20-30 个、单一目标 任务可分解、需要 perspective diversity、长 workflow、并行化
Debug 成本 低(单一 loop 可以一路 trace) 高(cross-agent 互动、error propagation 难定位)
Token 成本 1x 通常 3-10x(每个 sub-agent 都有自己的 prompt + thinking + tool call)
Latency 高(除非 sub-agent 并行跑)

什么时候真的需要 multi-agent(不要硬上)

Multi-agent 不是 default、是 last resortAnthropic 跟 Cognition 两家 frontier lab 在 2024-2025 都明白写过:90% 用例其实不该用 multi-agent——硬上会付 3-10× token、debug 痛苦、context fragmentation 严重

立场 来源 核心论点
Anthropic Building Effective Agents (2024)How we built our multi-agent research system (2025) 多数场景 simple workflow + single agent 就够;multi-agent 只在“研究型 / 并行探索”任务真的有帮助
Cognition Don't Build Multi-Agents (2025) multi-agent 的 context fragmentation 严重、shared state 维护痛苦;先穷尽 single-agent + long-context 才考虑

需要 multi-agent 通常是这 4 个信号之一:

信号 描述 对应 pattern
1. 任务天然分解 大任务有清楚的子步骤、step-by-step 完成 Sequential / Planner-Executor
2. Token explosion single agent prompt 塞不下所有 tool description / context Supervisor-Worker(分流给 sub-agent)
3. 角色冲突 同一个 LLM 既当 writer 又当 critic 会 self-justify Debate / Peer review
4. 并行加速 3 个 research 子任务同时跑、wall-clock 1/3 Parallel / Map-Reduce 变种

4 个信号都不在? → single agent + 好 prompt + tool use 就够。硬上 multi-agent 会付 3-10x token、debug 痛苦、其实不会比较准

💡 后续阅读:到 Stage 7 但你真的需要 multi-agent 吗? 会再带 production 视角的决策——本节是设计阶段的决策、那边是 deploy 前的最后一次回头检查。

Multi-agent 经典 pattern(按复杂度排序)

📝 跟 Stage 3 经典范式怎么分Stage 3 的 4 个 paradigm(CoT / ReAct / Reflection / Planning)是单一 agent 内部怎么想;本节这 5 个 pattern 是多个 agent 之间怎么协作——正交的两个层。

Pattern 复杂度 什么样 经典场景 代表 framework / paper
1. Routing / Handoff agent 之间 1:1 handoff、无中央 orchestrator customer support routing、context switch OpenAI SwarmOpenAI Agents SDK
2. Sequential
(Planner → Executor)
⭐⭐ planner 规划多步骤 + executor 执行 多步骤自动化、code generation LangGraph、ChatDev paper
3. Parallel
(并行加速)
⭐⭐⭐ N 个 agent 同时跑、结果 aggregate research / map-reduce 任务、wall-clock 1/N LangGraph parallel branches、CrewAI parallel tasks。坑点:async coordination + partial failure + state merge 一致性
4. Supervisor-Worker
(hub-spoke)
⭐⭐⭐ 1 主 + N worker、主分配 + 整合 任务拆解、报告整合 LangGraph、AutoGen GroupChat
5. Debate / Society
(多视角收敛)
⭐⭐⭐⭐ 2+ agent 互相 critique 或角色扮演 research、judgment task、social simulation AutoGen GroupChat、CAMEL paperGenerative Agents paper

Claude Code subagent — 另一条 orchestration 路线

这节跟上面的 5 个 pattern 不同层:上面 5 个 pattern 是 framework / 自己 code 都能实作的设计选择;本节介绍的 Claude Code subagent 是另一个 execution model(runtime 内建的 orchestration、不写 framework code)。读完 5 个 pattern 后、本节让你知道“multi-agent 还有第二条路”。

Multi-agent 不只有 framework 这条路。Anthropic 自家的 Claude Code 提供另一个 abstraction 层:subagent — 写一个 .claude/agents/<name>.md 档就是一个 subagent,不需要 framework

跟 framework 路线的根本差异(一句话):framework 路线跨 LLM provider、写 Python orchestration code、checkpointing / audit trail 完整;Claude Code subagent 只在 Claude Code runtime 内、写 markdown 不写 code、天生 context 隔离。

📌 完整逐维度对照表(启动方式 / runtime / context 隔离 / provider lock-in / 学习曲线)的 canonical 在 Stage 5.5 开头——本 stage 只需知道“multi-agent 还有 Claude Code 原生这第二条路”、逐项实作差异到 5.5 再看。

何时选 subagent 而非 framework: - 你已经在使用 Claude Code 跑日常工作 - 任务 context 大、会吃光主 session window(读整个 codebase 之类) - 多 subagent 并行(research / write / critic)省 wall-clock 时间 - 不需要跨 provider migration

详细写法 + 动手练习见 Stage 5.5建议先完成 Stage 5.1 Claude Code 基础再回来看 5.5——subagent 是 Claude Code 生态的进阶功能、需要先熟悉基础用法)。

Framework 的工作

Framework 把上面这 5 个 pattern 的 orchestration boilerplate(roles、handoff、state、retry、checkpoint、HITL pause)抽出来、让你只写角色定义跟任务描述。一句话:framework 是 multi-agent 的脚手架,不是必需品——简单情境你自己写个 dict 跟 for loop 也行(Stage 7 练习 1 就是这样)。

📚 想系统化深入?

🇺🇸 学术 paper(影响后续所有 framework 设计): 1. Anthropic — "Building Effective Agents" ⭐⭐⭐ — 何时用 workflow 何时用 agent、5 个经典 orchestration pattern。英文圈 multi-agent 设计入门必读 2. AutoGen paper (Wu et al. 2023) — Microsoft 多 agent 对话框架原 paper 3. CAMEL paper (Li et al. 2023) — multi-agent role-play 开山之作 4. ChatDev paper (Qian et al. 2023) — multi-agent software dev、planner-executor canonical 5. Generative Agents paper (Park et al. 2023) — 25 个 agent 在 The Sims 互动、社会 simulation

🀄 中文系统教材: 1. hello-agents Ch6“框架开发实践”+ Ch7“构建你的 Agent 框架” ⭐ — 中文圈完整讲 framework 开发 + 从零构建。注意:Ch4“智能体经典范式构建”是 single-agent paradigm(ReAct / Plan-and-Solve / Reflection),不是 multi-agent 2. 李宏毅 — 生成式 AI 导论 — 中后段有 AI agent / multi-agent 相关集数

Framework 官方 multi-agent docs: - LangGraph — Multi-Agent Systems — supervisor / swarm / hierarchical 三种架构官方教学 - Anthropic Cookbook — customer_service_agent.ipynb — multi-agent orchestration canonical 范例(routing + handoff) - Microsoft AutoGen — Examples — group-chat / debate / peer review pattern 完整范例

💡 建议框架学习流程(5 步): 1. 建立 mental model(30 min)— 读 Anthropic Building Effective Agents、把 workflow vs agent 跟 single vs multi 两维度搞清楚 2. 跑 1 个 framework quickstart(2-3 hr)— LangGraph 或 CrewAI 二选一、跑官方多 agent 教学 3. 对照 Anthropic Cookbook customer_service_agent(1 hr)— production-style routing + handoff 范例 4. (可选) 深入学术侧:挑 paper 1-2 篇看(AutoGen / CAMEL / ChatDev / Generative Agents) 5. (Claude 用户可选) 写一个 subagent 对照:见 Stage 5.5、跟 framework 路线比较

不必把 5 个 paper 全读完、挑跟你场景最近的 1-2 个。

🛠 进阶 tool patterns(framework 替你处理掉的东西)⭐ Track B 必看

Stage 3 教你写 single tool / multi-tool selection(手写 if/elif/else 路由)。Framework 把这层抽掉,并加了三种更进阶的 tool pattern——这三个 pattern 都需要 framework 抽象层才写得干净,Stage 3 自己手写会炸开

Pattern 解决什么问题 代表实作
Dynamic tool selection 工具 > 30 个时、tools=[...] 塞不下 prompt(context 太大、selection 也变差) LlamaIndex tool router — embedding-based 路由:先 semantic search 找 top-K tool、只把这 K 个塞进 prompt
Tool composition / chaining tool A output → tool B input、不要 LLM 中间 narrative(省 token + 省 latency) LangGraph state graph 直接连接 node、CrewAI sequential tasks、Pydantic AI 的 type-safe pipeline
Tool-augmented retrieval tool 本身是 RAG search → 回结果再 reason Stage 6 练习 4 RAG pipeline + Stage 3 练习 2 multi-tool 结合(LangGraph 直接把 retriever 包成 tool node)

📚 深度资源: - Anthropic — Tool Use best practices — 官方 tool design guide - LlamaIndex — Tool Router pattern — Dynamic selection canonical reference - LangGraph — Tool Node — composition graph 写法

💡 Track B 学完本节:你应该讲得出“同一个任务”在 (a) Stage 3 手写 (b) 本 stage framework 写 (c) Stage 5.5 Claude subagent 写 三种路线的差别。这是 Track B 路线“会设计 agent”核心问题。

🛠 动手练习

练习 1:同一个 agent、两个 framework

用以下两个 framework 各做一次同样的简单 agent(搜索 + 摘要): - LangGraph - CrewAI 比较代码行数、debug 体验、以及它们各自把哪些复杂度藏在哪里。

练习 2:多 agent 角色分配

用 CrewAI 做一个 2-3 个 agent、各自有不同角色一起完成同一个任务的 demo。(这种情境 CrewAI 最拿手。)

练习 3:图式 workflow

用 LangGraph 做一个有分支逻辑跟 human-in-the-loop checkpoint 的 workflow。(这种情境 LangGraph 最拿手。)

练习 4:CodeAct vs JSON tool

用 Smolagents 做一个会写 Python 代码当作 action 的 agent(CodeAct pattern),跟 练习 1 用的 JSON tool call 路线比较。问同一个问题,看两种路线怎么解。

练习 5:类型安全 agent

用 Pydantic AI 做一个会返回结构化输出的 agent(例如:问问题回 { "answer": str, "confidence": float, "sources": [str] })。看 Pydantic 的 schema validation 怎么防止 agent 偷懒或 hallucinate 结构。

🎯 精选 Projects

按用途分 5 类、15 个项目一张表搞定。挑入口看“适合谁”、想深入点链接看 repo / quickstart

分类 Project 适合谁 为什么推荐 / 备注
Production 级
(复杂 multi-agent / 需要 audit)
LangGraph本 stage 推荐 #1 ⭐⭐⭐⭐⭐ Production multi-agent + 稽核轨迹 / rollback / replay 图式 orchestration + checkpointing + time-travel debug、企业采用率最高,★ 31k+、MIT、Python+TS。搭 LangSmith 做 observability
microsoft/semantic-kernel ⭐⭐⭐⭐ 在 .NET / Java 环境做 agent、Microsoft 技术栈 C# / Python / Java 三语官方 SDK、kernel + plugin + planner pattern,★ 27k+、MIT。抽象厚、不适合初学者
agno-agi/agno ⭐⭐⭐⭐ 要“build + serve + monitor”一条龙但不想全套 LangGraph + LangSmith multi-modal agent runtime + control plane,★ 39k+、Apache-2.0。Stage 4 学 API、Stage 7 用 runtime
快速雏形 / 多 agent
(role-based / handoff)
CrewAI本 stage 推荐 #2 ⭐⭐⭐⭐ 快速雏形“researcher → writer → critic”pipeline ~20 行写完 crew、学习曲线最低,★ 50k+、MIT。⚠️ 长 workflow 没 checkpointing;雏形用 CrewAI、production 用 LangGraph
Microsoft AutoGen / AG2 ⭐⭐⭐⭐ 多 agent 辩论 / 脑力激荡 / peer review pattern 对话式多 agent、group-chat 强,★ 57k+、CC-BY-4.0(文件 license)。⚠️ AG2 v0.4 重写成 async-first、多数教学还在 v0.2、留意版本分支
OpenAI Agents SDK ⭐⭐⭐⭐⭐ 已 commit OpenAI 生态 OpenAI 官方、agent hand-off + 结构化输出、API 干净、MIT。2026-04 重大升级:内建 sandbox(7 个 provider)+ harness 抽象层、production coding agent 首次 architecturally sound(详见 Stage 8
OpenAI Swarm ⭐⭐⭐⭐ 教育用
⭐⭐⭐ production
想理解 multi-agent 核心 mental model 但不想学整套 framework ~200 LOC、只有 Agent + handoff 两个观念、MIT。⚠️ OpenAI 自己标 experimental / educational、不是 production tool。读 source 当 chapter-length 教材
Strands Agents (AWS) ⭐⭐⭐⭐ 已 commit AWS 云、Bedrock-native model-driven 设计(LLM 自己 plan、无 explicit graph)、Apache 2.0。2025 后段推出、AWS Lambda / Step Functions / Bedrock Agents 整合
特殊路线
(CodeAct / typed / memory-first)
Hugging Face Smolagents ⭐⭐⭐⭐ 本地 LLM 生态、HF 整合场景 CodeAct pattern 代表(agent 写 Python 代码当作 action、非 JSON tool call),★ 27k+、Apache 2.0、≤1000 LOC
Pydantic AI ⭐⭐⭐ production 预设要 runtime 类型安全 + structured output type-safe agent、Pydantic 团队出品、MIT。较新
Letta (formerly MemGPT) ⭐⭐⭐⭐ 长 session / 跨 day / persona-stable agent(long-term assistant、therapist、tutor) memory-first multi-agent、OS-paging 概念(working memory + archival store),★ 22k+、Apache 2.0。Stage 6 练习 5 也会提
特化 LlamaIndex Agents ⭐⭐⭐ 文件密集型 agent(研究助理、知识工作者类) 跟 RAG 紧整合,★ 49k+、MIT。retrieval 强、orchestration 弱——纯 orchestration 别选
agentscope-ai/agentscope ⭐⭐⭐ 想要可视化 debug 多 agent 流程的研究者 多 agent 平台、可视化 debug 工具强,★ 24k+、Apache 2.0。西方社群采用低、技术扎实
LangChain ⭐⭐⭐ 需要黏合很多零件(retrieval + chain)的快速雏形 万用工具袋 framework,★ 135k+、MIT。agent orchestration 改用 LangGraph、LangChain 适合 retrieval + chaining 黏合
基础设施
(不是 framework、跨 stage 用)
BerriAI/litellm ⭐⭐⭐⭐ 要切换 Claude / GPT / Gemini / 开源模型但不想改 code provider-agnostic SDK + AI gateway、用 OpenAI 形状 call 100+ LLM、附 cost tracking / fallback / guardrail,★ 45k+、MIT(enterprise/ 子目录另授权)

💡 建议阅读路径:挑 1 个 production 等级(LangGraph)+ 1 个快速雏形(CrewAI)深入学 → 跑练习 1-3 → 其他 framework README 浏览过去、知道存在即可。特殊路线那 3 个(CodeAct / typed / memory-first)在特定场景才有对手、平常不必碰。

✅ 进 Stage 5 前的自我检查

你能不能: - [ ] 用 LangGraph 跟 CrewAI 各做一次同一个 agent - [ ] 替任务挑出对的 framework(production vs 雏形) - [ ] 解释 LangGraph 的 checkpoint 跟 CrewAI 的 task delegation 差在哪 - [ ] 看出什么时候 CodeAct(Smolagents)比 JSON-tool 更好 - [ ] 判断什么时候该丢掉 framework、直接用 raw API

如果可以 → 进 Stage 5 — Claude Code Ecosystem

💡 策略提示 + 过程中可能踩到的坑

不要想把这些全部学完。挑一个 production 等级的(LangGraph)一个快速雏形用的(CrewAI)深入学。其他的 README 浏览过去就好,知道有这些选项存在即可。

Memory 预备(学的时候可能碰到、不用先读):有些 framework 功能会用到 memory 概念 — LangGraph 的 checkpointing(状态持久化)、CrewAI agent 之间传递任务结果(轻量 memory)。这些在 Stage 6 — Memory & RAG 完整讲;本 stage 看不懂某个 framework 功能时、再去那边查就好,不用先读完才能继续本 stage