【免费下载链接】designing-multiagent-systems
Building LLM-Enabled Multi Agent Applications from Scratch
designing-multiagent-systems是一个"从零构建多智能体系统"的开源项目,仓库中的examples/frameworks/目录用同一套题目(天气助手、顺序工作流、轮询与监督者编排)分别在 LangGraph、Google ADK、Microsoft Agent Framework 三个主流框架上实现了等价代码,是新手做多智能体框架选型最直观的实战参考。本文带你快速看懂三大框架的差异,并给出选型建议。
为什么需要一次"同题对比"
多智能体系统由一个个智能体(Agent)和连接它们的编排模式(Orchestration)组成。上图中可以清楚看到:单个智能体的能力由 Tools、Memory、Planning 三层叠加,而多智能体系统额外需要一层 Orchestration 来决定"谁先发言、谁接棒"。
选框架时最坑的误区是只看 API 语法,不看它承载哪种模式。这个仓库的做法是:把书中教的核心模式在 4 套实现(自研的 PicoAgents + 3 个商用框架)中各写一遍,让你确认"模式是通用的,框架只是语法"。
三个框架,同一个天气助手
三套示例都实现了同一个任务:给 Agent 挂上get_weather和calculate两个工具,回答"纽约天气如何,12×15 等于多少"。对比一下工具定义方式:
| 框架 | 工具写法 | 创建 Agent | 入口文件 |
|---|---|---|---|
| Microsoft Agent Framework | @ai_function装饰器 | client.create_agent(...) | basic_agent.py |
| Google ADK | 普通函数,自动包装(可注入ToolContext) | Agent(...)+InMemoryRunner | basic_agent.py |
| LangGraph | @tool装饰器 | create_agent(model, tools, system_prompt) | basic_agent.py |
三者都是"装饰器 + 构造函数"两行搞定基础 Agent,上手难度相当。真正的区别在状态管理和编排能力上。
核心差异:状态、工作流与编排能力
1. 状态与记忆:三种哲学
- Agent Framework:Agent 本身无状态,会话状态交给
AgentThread;记忆通过ContextProvider的invoking()/invoked()钩子注入,结构最显式(见 memory.py)。 - Google ADK:内置
Session/Runner会话体系,工具函数可接收ToolContext直接读写会话状态,对多轮对话场景最友好。 - LangGraph:一切皆图状态,用
StateGraph+MemorySaver检查点持久化,调试时可回溯任意节点,工程化程度最高。
2. 工作流:顺序执行的三种写法
| 模式 | Agent Framework | Google ADK | LangGraph |
|---|---|---|---|
| 顺序工作流 | SequentialBuilder | SequentialAgent | StateGraph+ 边 |
| 轮询编排 | WorkflowBuilder(循环) | LoopAgent | 条件边 |
| 并行编排 | ConcurrentBuilder | ParallelAgent | 需手动 asyncio |
| 监督者模式 | 需手动实现 | sub_agents路由 | StateGraph+ 路由节点 |
| 交接(Handoff) | HandoffBuilder原生支持 | sub_agents路由 | Command/Send |
| 结构化输出 | response_format=Model | response_schema=Model | with_structured_output |
上表来自 frameworks/README.md 的 Pattern Mapping,一眼就能看出各家的"强项格子"。
3. 编排实战:同一道题,两种风格
- LangGraph 监督者模式:用
StateGraph建图,supervisor节点由 LLM 决定下一步派给researcher还是analyst,再经条件边路由回环。图结构让整个委派过程可视化、可断点(见 supervisor.py)。 - Google ADK 轮询模式:
poet写俳句、critic点评,两者组成SequentialAgent,外层循环最多 4 轮,直到 critic 输出APPROVED。写法更接近"业务循环",代码更直白(见 loop_agent.py)。 - Agent Framework 交接模式:用
HandoffBuilder实现 Agent 之间的责任移交,这是它独有的原生 Builder 能力(见 handoff.py)。
选型建议:3 分钟决策指南
| 你的情况 | 推荐框架 | 理由 |
|---|---|---|
| 已有 Azure / 微软技术栈,团队用过 AutoGen 或 Semantic Kernel | Microsoft Agent Framework | 它就是后两者官方继承者,Builder 式 API 覆盖 handoff 等全套编排 |
| 以 Google 模型(Gemini)为主,做多轮会话型应用 | Google ADK | 内置 Session/Runner,sub_agents路由开箱即用 |
| 需要复杂图结构、持久化检查点、生产级可观测 | LangGraph | StateGraph的图 + 检查点是三者中最强的工程底座 |
| 还在学基础概念,想看懂"框架底层到底是什么" | PicoAgents(本仓库自研框架) | 全部源码透明,配 WebUI 调试面板 可看每个事件流 |
💡一个重要结论:三套示例反复验证了同一件事——工具调用 Agent、顺序工作流、轮询/监督者编排这些核心模式与框架无关。先用本仓库 code_along/ 的四步渐进示例(核心循环 → 工具 → 记忆 → 流式)把模式学透,再切到目标框架,迁移成本会低得多。
如何跑起来:安装与环境变量
以 LangGraph 为例(完整说明见 examples/frameworks/ 各子目录 README):
pip install langgraph langchain-openai python-dotenv export OPENAI_API_KEY="your-api-key" python examples/frameworks/langgraph/orchestration/supervisor.py另外两套只需替换安装命令与环境变量:
- Agent Framework:
pip install agent-framework[azure],需AZURE_OPENAI_ENDPOINT等变量(见 README) - Google ADK:
pip install google-adk,需GOOGLE_API_KEY
延伸阅读
- 框架对比总览与 Pattern Mapping 表格:examples/frameworks/README.md
- 编排模式原始实现(PicoAgents 版):round-robin.py、ai-driven.py
- 生产级工作流案例(YC 公司分析,含检查点与成本优化):examples/workflows/yc_analysis/
一句话总结:框架只是语法,模式才是内功。拿本仓库的同题对比当"试衣间",穿上哪套顺口选哪套,你的多智能体系统就成功了一半。
【免费下载链接】designing-multiagent-systems
Building LLM-Enabled Multi Agent Applications from Scratch
相关推荐
designing-multiagent-systems 快速上手:5分钟从零构建你的第一个LLM Agent(PicoAgents实战)
designing multiagent systems 快速上手:5分钟从零构建你的第一个LLM Agent(PicoAgents实战) designing
同一个 Agent、两个 Framework:用 LangGraph 与 CrewAI 实现 search + summarize 的实战对比
同一个 Agent、两个 Framework:用 LangGraph 与 CrewAI 实现 search + summarize 的实战对比 本篇技术指南基于
教程文档AI Agent人工智能大模型同一 Agent、两个框架:在 awesome-agentic-ai-zh 中用 LangGraph 与 CrewAI 实战 search + summarize 对比
同一 Agent、两个框架:在 awesome agentic ai zh 中用 LangGraph 与 CrewAI 实战 search + summariz
教程文档AI Agent人工智能大模型
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考