ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

框架选型困难?designing-multiagent-systems 中 LangGraph、Google ADK 与 Agent Framework 同题对比实战

框架选型困难?designing-multiagent-systems 中 LangGraph、Google ADK 与 Agent Framework 同题对比实战

【免费下载链接】designing-multiagent-systems

Building LLM-Enabled Multi Agent Applications from Scratch

项目地址:https://gitcode.com/gh_mirrors/de/designing-multiagent-systems
点击查看免费下载

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(...)+InMemoryRunnerbasic_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 FrameworkGoogle ADKLangGraph
顺序工作流SequentialBuilderSequentialAgentStateGraph+ 边
轮询编排WorkflowBuilder(循环)LoopAgent条件边
并行编排ConcurrentBuilderParallelAgent需手动 asyncio
监督者模式需手动实现sub_agents路由StateGraph+ 路由节点
交接(Handoff)HandoffBuilder原生支持sub_agents路由Command/Send
结构化输出response_format=Modelresponse_schema=Modelwith_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 KernelMicrosoft Agent Framework它就是后两者官方继承者,Builder 式 API 覆盖 handoff 等全套编排
以 Google 模型(Gemini)为主,做多轮会话型应用Google ADK内置 Session/Runner,sub_agents路由开箱即用
需要复杂图结构、持久化检查点、生产级可观测LangGraphStateGraph的图 + 检查点是三者中最强的工程底座
还在学基础概念,想看懂"框架底层到底是什么"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

项目地址:https://gitcode.com/gh_mirrors/de/designing-multiagent-systems
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进