凌晨两点我的三个 Agent 在终端里吵起来了。一个负责查 GitHub Issue一个负责读文档还有一个负责生成测试用例。本来指望它们分工合作结果 Leader Agent 不知道该把任务派给谁——三个子 Agent 的描述太模糊LLM 路由直接懵了。搞了一晚上才发现问题不在模型而在框架。我用的那个框架没有原生的多 Agent 层级调度routing 全靠手写 if-else改一个 Agent 的职责就要动一堆胶水代码。后来换到 Google ADKAgent Development Kit层级调度、MCP 工具集成、A2A 跨框架通信全是开箱即用——三个小时重写完跑通了。这篇文章就是这次迁移的完整记录从选型思路到踩坑过程再到跟 LangGraph、CrewAI 的对比。摘要本文解决多 Agent 系统开发中框架选型混乱、工具集成痛苦、跨框架通信困难三个核心问题。以 Google ADK 为实操对象从零搭建一个带层级调度的多 Agent 系统集成 MCP 工具和 A2A 协议。读完你能获得一套可跑的代码、一份框架对比表、以及我踩过的所有坑。1. 背景2026 年的 Agent 框架乱战先说现状。2026 年 Q1三家大厂在八周内各发了一套 Agent SDK时间事件{2026 年 3 月{2026 年 4 月{2026 年 4 月{2026 年 Q1加上 LangGraph、CrewAI、Pydantic AI、smolagents 这些老牌和新兴选手Python Agent 框架已经超过 12 个。说白了选框架比写 Agent 还累。我的场景是这样的需要一个coordinator分发任务给多个 specialist agent每个 specialist 可能调用不同的外部工具数据库、搜索引擎、GitHub API而且这些工具最好能通过 MCP 协议即插即用。试了 CrewAI——角色扮演很酷但确定性的 pipeline 编排很弱。试了 LangGraph——图结构灵活到爆炸但 MCP 集成得自己写 adapter。最后看到 Google ADK 的设计文档发现它把 MCP 和 A2A 作为框架的一等公民不是插件。就它了。2. 技术原理ADK 的架构为什么不一样ADK 的核心设计有三个原则理解了这三个后面写代码就不会踩坑。原则一Agent 是可组合的单元每个 Agent 都是一个独立单元可以单独运行也可以嵌套进层级结构里。父 Agent 看子 Agent 的description字段来决定路由。graphTDA[CoordinatorAgent]--B[ResearchAgent]A--C[CodeReviewAgent]A--D[GreeterAgent]B--E[GitHubSearchTool]B--F[WebSearchTool]C--G[MCP:GitHubAPI]C--H[MCP:CodeAnalysis]这里有两种调度模式LLM 驱动路由父 Agent 是LlmAgent读子 Agent 的 descriptionLLM 自行判断把任务给谁。适合开放式对话场景。确定性工作流不经过 LLM 路由用三种 Workflow Agent-SequentialAgent——子 Agent 按顺序执行-ParallelAgent——子 Agent 并发执行结果汇总-LoopAgent——循环执行直到满足退出条件说个坑一开始我把所有子 Agent 都挂在 LlmAgent 下面以为 LLM 路由万能。结果当一个子 Agent 的 description 写得不够具体时LLM 经常把任务派错人。后来改成确定性 SequentialAgent问题消失。原则二MCP 和 A2A 是框架原生能力这是 ADK 跟其他框架最大的区别。|MCPModel Context Protocol解决的是 Agent 和工具之间的通信。标准化的协议意味着只要工具实现了 MCP Server任何 ADK Agent 都能直接调用。目前生态里已经有 {2000 || 来源:paperclipped.de Google ADK 2026 指南} 个 MCP Server——Slack、PostgreSQL、Jira、Google Drive……直接拿来用。 |A2AAgent-to-Agent解决的是 Agent 和 Agent 之间的通信。跨框架的那种。ADK 的 Agent 可以调用一个 LangGraph 写的 Agent也可以被 CrewAI 的 Agent 调用——不需要写一行集成代码。graphLR|A[ADKAgent]--|MCP|B[SlackMCPServer]||A--|MCP|C[PostgreSQLMCPServer]||A--|A2A|D[LangGraphAgent]||A--|A2A|E[CrewAIAgent]|对比一下在 LangGraph 里接 MCP得装langchain-mcp-adapters在 CrewAI 里接 MCP社区有插件但不是官方维护。ADK 直接内置。原则三代码优先不是配置优先ADK 的所有 Agent 定义、工具绑定、编排逻辑都是纯 Python 代码。不用写 YAML不用拖拽流程图。好处是版本控制、单元测试、类型检查这些工程实践都能直接套上。3. 环境准备我用的环境Python 3.12ADK 官方推荐 3.9但 3.12 的类型提示最完善Google ADK v1.0.0操作系统Ubuntu 22.04WSL2 也可以# 创建虚拟环境python3.12-mvenvadk-envsourceadk-env/bin/activate# 安装 ADKpipinstallgoogle-adk1.0.0# 验证安装adk--version# 输出: adk 1.0.0然后配置 API Key。ADK 优先用 Gemini但也通过 LiteLLM 支持 Claude、GPT-4 等。# Gemini推荐免费额度够开发用exportGOOGLE_API_KEYyour-api-key-here# 如果想用 Claude需要额外配置 LiteLLMexportANTHROPIC_API_KEYyour-anthropic-key对了如果你用的是 Vertex AI 而不是直接调 Gemini API认证方式不一样——要走gcloud auth application-default login。别搞混了我第一次就是搞混了认证方式报了一堆 401 错误折腾了半小时。4. 实战搭一个代码审查多 Agent 系统目标搭一个包含三个 Agent 的系统——Coordinator 负责分发Researcher 负责查资料Reviewer 负责代码审查。4.1 最简单的单 Agent先跑通一个最小的 Agent确认环境没问题# agent.pyfromgoogle.adk.agentsimportLlmAgentagentLlmAgent(modelgemini-2.0-flash,namehello_agent,descriptionA simple greeting agent,instructionYou are a helpful assistant. Respond concisely.,)# 本地运行# adk run agent.py运行命令adkrunagent.py终端里会出现交互界面输入问题就能对话。如果报错说找不到 model检查GOOGLE_API_KEY环境变量。4.2 加上 MCP 工具现在给 Researcher Agent 接入 GitHub MCP Server让它能查 Issue 和 PR# research_agent.pyimportasynciofromgoogle.adk.agentsimportLlmAgentfromgoogle.adk.tools.mcpimportMCPToolset,StdioServerParametersasyncdefmain():# 连接 GitHub MCP ServerasyncwithMCPToolset.from_server(connection_paramsStdioServerParameters(commandnpx,args[-y,modelcontextprotocol/server-github],))astools:researcherLlmAgent(modelgemini-2.0-flash,nameresearcher,descriptionSearches GitHub issues, PRs, and documentation. Use this agent when the user asks about code repositories, bugs, or open-source projects.,instruction(You are a research specialist. Always cite the source (issue number, PR link, etc.). Be concise and factual.),toolstools,)print(Researcher agent ready with GitHub MCP tools.)asyncio.run(main())这里有个坑。第一次运行时npx会下载modelcontextprotocol/server-github如果网络不好会卡住。我公司的网络就卡了 5 分钟还以为代码写错了。另外GitHub MCP Server 需要 GitHub TokenexportGITHUB_PERSONAL_ACCESS_TOKENghp_your_token_here没设这个 TokenMCP Server 能启动但所有 API 调用都返回 403。4.3 搭建层级多 Agent 系统把 Coordinator、Researcher、Reviewer 组装到一起# multi_agent.pyimportasynciofromgoogle.adk.agentsimportLlmAgent,SequentialAgentfromgoogle.adk.tools.mcpimportMCPToolset,StdioServerParametersasyncdefbuild_system():# Researcher Agent带 MCP 工具asyncwithMCPToolset.from_server(connection_paramsStdioServerParameters(commandnpx,args[-y,modelcontextprotocol/server-github],))asgithub_tools:researcherLlmAgent(modelgemini-2.0-flash,nameresearcher,description(Searches GitHub for issues, pull requests, and documentation. Returns findings with citations.),instructionYou are a research specialist. Find relevant context.,toolsgithub_tools,)# Reviewer Agent纯 LLM不需要外部工具reviewerLlmAgent(modelgemini-2.0-flash,namereviewer,description(Analyzes code and provides review comments. Focuses on security, performance, and readability.),instruction(You are a senior code reviewer. Identify potential bugs, security issues, and improvements. Rate severity: critical / warning / suggestion.),)# Coordinator——LLM 驱动路由coordinatorLlmAgent(modelgemini-2.0-flash,namecoordinator,descriptionRoutes user requests to the appropriate specialist.,instruction(You are a coordinator. Analyze the users request and decide which specialist to delegate to. For code review requests, use the reviewer. For research about repositories or issues, use the researcher. For general questions, answer directly.),sub_agents[researcher,reviewer],)print(Multi-agent system ready!)# 实际运行用 adk web 或 adk runasyncio.run(build_system())跑起来之后你可以问帮我查一下 langchain-ai/langchain 最近的 Issue——Coordinator 会自动把这个任务派给 ResearcherResearcher 通过 MCP 调 GitHub API 拿数据然后把结果返回。一个关键细节sub_agents的顺序不影响 LLM 路由。LLM 是读description来决策的所以 description 写得越具体越好。我一开始写了个 Helps with research——太模糊了LLM 经常把代码审查的请求也发给它。改成 Searches GitHub for issues, pull requests, and documentation 之后路由准确率从大约 70% 提升到 95% 以上。5. 效果验证与框架对比实测数据同一个查 Issue 审代码任务在不同框架下实现对比项Google ADKLangGraphCrewAI代码行数多 Agent 系统~80 行~150 行~60 行MCP 集成方式原生内置需要langchain-mcp-adapters社区插件A2A 跨框架通信原生支持不支持不支持层级路由LLM 驱动 确定性两种手写图节点LLM 驱动学习曲线中等较陡图结构概念多最平确定性工作流Sequential/Parallel/Loop条件边 状态机较弱部署选项Cloud Run / Vertex AI / K8s自部署为主自部署为主模型兼容性通过 LiteLLM 支持多模型OpenAI / Anthropic 等OpenAI / Anthropic 等说个真实的感受如果你需要的是三个人各干各的活CrewAI 最快上手。但一旦你需要 MCP 即插即用 跨框架 Agent 通信 确定性 pipelineADK 是目前唯一一个原生支持的。不过话说回来LangGraph 在状态管理上还是最强的——如果你的 Agent 需要复杂的状态转换比如审批流、驳回重做LangGraph 的图结构比 ADK 的层级结构更灵活。你平时用哪个框架有在 ADK 上踩过别的坑吗评论区说说我整理到后续文章里。6. 踩坑记录坑 1MCP Server 启动超时症状MCPToolset.from_server卡住不动没有报错也没有返回。原因npx首次运行需要下载包网络慢就会超时。ADK 默认的 MCP 连接超时比较短。解决提前全局安装 MCP Server或者设更长的超时# 提前安装npminstall-gmodelcontextprotocol/server-github坑 2LLM 路由不准症状Coordinator 把研究任务派给了 Reviewer或者反过来。原因子 Agent 的description写得太笼统。LLM 路由完全依赖这个字段做判断。解决description 写得像 JD岗位描述一样具体。包括擅长什么和不擅长什么。或者干脆用SequentialAgent做确定性编排。坑 3Gemini API 限流症状并发请求多时返回 429 错误。解决加tenacity做指数退避重试fromtenacityimportretry,stop_after_attempt,wait_exponentialretry(stopstop_after_attempt(3),waitwait_exponential(multiplier1,min2,max10))asyncdefrun_agent(agent,message):returnawaitagent.run(message)坑 4A2A 调试困难症状跨框架 Agent 调用时对端 Agent 返回的结果格式跟预期不一致。原因A2A 协议目前还在早期阶段不同框架的 A2A 实现可能有细微差异。解决加 logging打印 A2A 请求和响应的原始 JSON。别靠猜。7. 总结Google ADK 的核心价值就三件事MCP 原生集成——2000 工具即插即用不用写 adapterA2A 跨框架通信——Agent 可以跨框架协作这在企业场景里太重要了层级多 Agent 调度——LLM 路由和确定性编排两种模式覆盖大多数场景但 ADK 也有短板社区比 LangGraph 和 CrewAI 年轻Stack Overflow 上的答案少精细的状态管理不如 LangGraph 灵活文档虽然完整但有些地方缺少踩坑指南所以我在写这篇。框架选型没有银弹。我的建议是先明确你的核心需求——是工具集成选 ADK是状态控制选 LangGraph还是快速原型选 CrewAI从需求出发别从框架出发。| ADK v1.0 已经可以上生产了——{Renault Group、Box、Revionics || 来源:paperclipped.de Google ADK 指南} 都在用。但如果你是第一次接触 Agent 开发建议先从 CrewAI 入门搞清楚 Agent、Tool、Memory 这些基本概念后再迁移到 ADK。 |你有在生产环境跑过 Agent 系统吗用的什么框架遇到过哪些文档里没写但实际部署会炸的坑评论区聊聊。
Google ADK 入坑实录:原生 MCP+A2A 的多 Agent 系统,我踩了四个坑
发布时间:2026/6/7 18:02:29
凌晨两点我的三个 Agent 在终端里吵起来了。一个负责查 GitHub Issue一个负责读文档还有一个负责生成测试用例。本来指望它们分工合作结果 Leader Agent 不知道该把任务派给谁——三个子 Agent 的描述太模糊LLM 路由直接懵了。搞了一晚上才发现问题不在模型而在框架。我用的那个框架没有原生的多 Agent 层级调度routing 全靠手写 if-else改一个 Agent 的职责就要动一堆胶水代码。后来换到 Google ADKAgent Development Kit层级调度、MCP 工具集成、A2A 跨框架通信全是开箱即用——三个小时重写完跑通了。这篇文章就是这次迁移的完整记录从选型思路到踩坑过程再到跟 LangGraph、CrewAI 的对比。摘要本文解决多 Agent 系统开发中框架选型混乱、工具集成痛苦、跨框架通信困难三个核心问题。以 Google ADK 为实操对象从零搭建一个带层级调度的多 Agent 系统集成 MCP 工具和 A2A 协议。读完你能获得一套可跑的代码、一份框架对比表、以及我踩过的所有坑。1. 背景2026 年的 Agent 框架乱战先说现状。2026 年 Q1三家大厂在八周内各发了一套 Agent SDK时间事件{2026 年 3 月{2026 年 4 月{2026 年 4 月{2026 年 Q1加上 LangGraph、CrewAI、Pydantic AI、smolagents 这些老牌和新兴选手Python Agent 框架已经超过 12 个。说白了选框架比写 Agent 还累。我的场景是这样的需要一个coordinator分发任务给多个 specialist agent每个 specialist 可能调用不同的外部工具数据库、搜索引擎、GitHub API而且这些工具最好能通过 MCP 协议即插即用。试了 CrewAI——角色扮演很酷但确定性的 pipeline 编排很弱。试了 LangGraph——图结构灵活到爆炸但 MCP 集成得自己写 adapter。最后看到 Google ADK 的设计文档发现它把 MCP 和 A2A 作为框架的一等公民不是插件。就它了。2. 技术原理ADK 的架构为什么不一样ADK 的核心设计有三个原则理解了这三个后面写代码就不会踩坑。原则一Agent 是可组合的单元每个 Agent 都是一个独立单元可以单独运行也可以嵌套进层级结构里。父 Agent 看子 Agent 的description字段来决定路由。graphTDA[CoordinatorAgent]--B[ResearchAgent]A--C[CodeReviewAgent]A--D[GreeterAgent]B--E[GitHubSearchTool]B--F[WebSearchTool]C--G[MCP:GitHubAPI]C--H[MCP:CodeAnalysis]这里有两种调度模式LLM 驱动路由父 Agent 是LlmAgent读子 Agent 的 descriptionLLM 自行判断把任务给谁。适合开放式对话场景。确定性工作流不经过 LLM 路由用三种 Workflow Agent-SequentialAgent——子 Agent 按顺序执行-ParallelAgent——子 Agent 并发执行结果汇总-LoopAgent——循环执行直到满足退出条件说个坑一开始我把所有子 Agent 都挂在 LlmAgent 下面以为 LLM 路由万能。结果当一个子 Agent 的 description 写得不够具体时LLM 经常把任务派错人。后来改成确定性 SequentialAgent问题消失。原则二MCP 和 A2A 是框架原生能力这是 ADK 跟其他框架最大的区别。|MCPModel Context Protocol解决的是 Agent 和工具之间的通信。标准化的协议意味着只要工具实现了 MCP Server任何 ADK Agent 都能直接调用。目前生态里已经有 {2000 || 来源:paperclipped.de Google ADK 2026 指南} 个 MCP Server——Slack、PostgreSQL、Jira、Google Drive……直接拿来用。 |A2AAgent-to-Agent解决的是 Agent 和 Agent 之间的通信。跨框架的那种。ADK 的 Agent 可以调用一个 LangGraph 写的 Agent也可以被 CrewAI 的 Agent 调用——不需要写一行集成代码。graphLR|A[ADKAgent]--|MCP|B[SlackMCPServer]||A--|MCP|C[PostgreSQLMCPServer]||A--|A2A|D[LangGraphAgent]||A--|A2A|E[CrewAIAgent]|对比一下在 LangGraph 里接 MCP得装langchain-mcp-adapters在 CrewAI 里接 MCP社区有插件但不是官方维护。ADK 直接内置。原则三代码优先不是配置优先ADK 的所有 Agent 定义、工具绑定、编排逻辑都是纯 Python 代码。不用写 YAML不用拖拽流程图。好处是版本控制、单元测试、类型检查这些工程实践都能直接套上。3. 环境准备我用的环境Python 3.12ADK 官方推荐 3.9但 3.12 的类型提示最完善Google ADK v1.0.0操作系统Ubuntu 22.04WSL2 也可以# 创建虚拟环境python3.12-mvenvadk-envsourceadk-env/bin/activate# 安装 ADKpipinstallgoogle-adk1.0.0# 验证安装adk--version# 输出: adk 1.0.0然后配置 API Key。ADK 优先用 Gemini但也通过 LiteLLM 支持 Claude、GPT-4 等。# Gemini推荐免费额度够开发用exportGOOGLE_API_KEYyour-api-key-here# 如果想用 Claude需要额外配置 LiteLLMexportANTHROPIC_API_KEYyour-anthropic-key对了如果你用的是 Vertex AI 而不是直接调 Gemini API认证方式不一样——要走gcloud auth application-default login。别搞混了我第一次就是搞混了认证方式报了一堆 401 错误折腾了半小时。4. 实战搭一个代码审查多 Agent 系统目标搭一个包含三个 Agent 的系统——Coordinator 负责分发Researcher 负责查资料Reviewer 负责代码审查。4.1 最简单的单 Agent先跑通一个最小的 Agent确认环境没问题# agent.pyfromgoogle.adk.agentsimportLlmAgentagentLlmAgent(modelgemini-2.0-flash,namehello_agent,descriptionA simple greeting agent,instructionYou are a helpful assistant. Respond concisely.,)# 本地运行# adk run agent.py运行命令adkrunagent.py终端里会出现交互界面输入问题就能对话。如果报错说找不到 model检查GOOGLE_API_KEY环境变量。4.2 加上 MCP 工具现在给 Researcher Agent 接入 GitHub MCP Server让它能查 Issue 和 PR# research_agent.pyimportasynciofromgoogle.adk.agentsimportLlmAgentfromgoogle.adk.tools.mcpimportMCPToolset,StdioServerParametersasyncdefmain():# 连接 GitHub MCP ServerasyncwithMCPToolset.from_server(connection_paramsStdioServerParameters(commandnpx,args[-y,modelcontextprotocol/server-github],))astools:researcherLlmAgent(modelgemini-2.0-flash,nameresearcher,descriptionSearches GitHub issues, PRs, and documentation. Use this agent when the user asks about code repositories, bugs, or open-source projects.,instruction(You are a research specialist. Always cite the source (issue number, PR link, etc.). Be concise and factual.),toolstools,)print(Researcher agent ready with GitHub MCP tools.)asyncio.run(main())这里有个坑。第一次运行时npx会下载modelcontextprotocol/server-github如果网络不好会卡住。我公司的网络就卡了 5 分钟还以为代码写错了。另外GitHub MCP Server 需要 GitHub TokenexportGITHUB_PERSONAL_ACCESS_TOKENghp_your_token_here没设这个 TokenMCP Server 能启动但所有 API 调用都返回 403。4.3 搭建层级多 Agent 系统把 Coordinator、Researcher、Reviewer 组装到一起# multi_agent.pyimportasynciofromgoogle.adk.agentsimportLlmAgent,SequentialAgentfromgoogle.adk.tools.mcpimportMCPToolset,StdioServerParametersasyncdefbuild_system():# Researcher Agent带 MCP 工具asyncwithMCPToolset.from_server(connection_paramsStdioServerParameters(commandnpx,args[-y,modelcontextprotocol/server-github],))asgithub_tools:researcherLlmAgent(modelgemini-2.0-flash,nameresearcher,description(Searches GitHub for issues, pull requests, and documentation. Returns findings with citations.),instructionYou are a research specialist. Find relevant context.,toolsgithub_tools,)# Reviewer Agent纯 LLM不需要外部工具reviewerLlmAgent(modelgemini-2.0-flash,namereviewer,description(Analyzes code and provides review comments. Focuses on security, performance, and readability.),instruction(You are a senior code reviewer. Identify potential bugs, security issues, and improvements. Rate severity: critical / warning / suggestion.),)# Coordinator——LLM 驱动路由coordinatorLlmAgent(modelgemini-2.0-flash,namecoordinator,descriptionRoutes user requests to the appropriate specialist.,instruction(You are a coordinator. Analyze the users request and decide which specialist to delegate to. For code review requests, use the reviewer. For research about repositories or issues, use the researcher. For general questions, answer directly.),sub_agents[researcher,reviewer],)print(Multi-agent system ready!)# 实际运行用 adk web 或 adk runasyncio.run(build_system())跑起来之后你可以问帮我查一下 langchain-ai/langchain 最近的 Issue——Coordinator 会自动把这个任务派给 ResearcherResearcher 通过 MCP 调 GitHub API 拿数据然后把结果返回。一个关键细节sub_agents的顺序不影响 LLM 路由。LLM 是读description来决策的所以 description 写得越具体越好。我一开始写了个 Helps with research——太模糊了LLM 经常把代码审查的请求也发给它。改成 Searches GitHub for issues, pull requests, and documentation 之后路由准确率从大约 70% 提升到 95% 以上。5. 效果验证与框架对比实测数据同一个查 Issue 审代码任务在不同框架下实现对比项Google ADKLangGraphCrewAI代码行数多 Agent 系统~80 行~150 行~60 行MCP 集成方式原生内置需要langchain-mcp-adapters社区插件A2A 跨框架通信原生支持不支持不支持层级路由LLM 驱动 确定性两种手写图节点LLM 驱动学习曲线中等较陡图结构概念多最平确定性工作流Sequential/Parallel/Loop条件边 状态机较弱部署选项Cloud Run / Vertex AI / K8s自部署为主自部署为主模型兼容性通过 LiteLLM 支持多模型OpenAI / Anthropic 等OpenAI / Anthropic 等说个真实的感受如果你需要的是三个人各干各的活CrewAI 最快上手。但一旦你需要 MCP 即插即用 跨框架 Agent 通信 确定性 pipelineADK 是目前唯一一个原生支持的。不过话说回来LangGraph 在状态管理上还是最强的——如果你的 Agent 需要复杂的状态转换比如审批流、驳回重做LangGraph 的图结构比 ADK 的层级结构更灵活。你平时用哪个框架有在 ADK 上踩过别的坑吗评论区说说我整理到后续文章里。6. 踩坑记录坑 1MCP Server 启动超时症状MCPToolset.from_server卡住不动没有报错也没有返回。原因npx首次运行需要下载包网络慢就会超时。ADK 默认的 MCP 连接超时比较短。解决提前全局安装 MCP Server或者设更长的超时# 提前安装npminstall-gmodelcontextprotocol/server-github坑 2LLM 路由不准症状Coordinator 把研究任务派给了 Reviewer或者反过来。原因子 Agent 的description写得太笼统。LLM 路由完全依赖这个字段做判断。解决description 写得像 JD岗位描述一样具体。包括擅长什么和不擅长什么。或者干脆用SequentialAgent做确定性编排。坑 3Gemini API 限流症状并发请求多时返回 429 错误。解决加tenacity做指数退避重试fromtenacityimportretry,stop_after_attempt,wait_exponentialretry(stopstop_after_attempt(3),waitwait_exponential(multiplier1,min2,max10))asyncdefrun_agent(agent,message):returnawaitagent.run(message)坑 4A2A 调试困难症状跨框架 Agent 调用时对端 Agent 返回的结果格式跟预期不一致。原因A2A 协议目前还在早期阶段不同框架的 A2A 实现可能有细微差异。解决加 logging打印 A2A 请求和响应的原始 JSON。别靠猜。7. 总结Google ADK 的核心价值就三件事MCP 原生集成——2000 工具即插即用不用写 adapterA2A 跨框架通信——Agent 可以跨框架协作这在企业场景里太重要了层级多 Agent 调度——LLM 路由和确定性编排两种模式覆盖大多数场景但 ADK 也有短板社区比 LangGraph 和 CrewAI 年轻Stack Overflow 上的答案少精细的状态管理不如 LangGraph 灵活文档虽然完整但有些地方缺少踩坑指南所以我在写这篇。框架选型没有银弹。我的建议是先明确你的核心需求——是工具集成选 ADK是状态控制选 LangGraph还是快速原型选 CrewAI从需求出发别从框架出发。| ADK v1.0 已经可以上生产了——{Renault Group、Box、Revionics || 来源:paperclipped.de Google ADK 指南} 都在用。但如果你是第一次接触 Agent 开发建议先从 CrewAI 入门搞清楚 Agent、Tool、Memory 这些基本概念后再迁移到 ADK。 |你有在生产环境跑过 Agent 系统吗用的什么框架遇到过哪些文档里没写但实际部署会炸的坑评论区聊聊。