微信扫码
添加专属顾问
我要投稿
探索谷歌ADK的全流程设计和多智能体框架,掌握构建复杂应用的核心技能。核心内容:1. 端到端全流程设计及其智能编排系统和多智能体架构2. ADK工具集成生态和部署解决方案3. ADK的核心Agent类型和多智能体框架设计特点
https://google.github.io/adk-docs/
谷歌的adk看完了以后感觉真的有很多,很不错的地方;
它融入很多框架不曾涉及的概念
灵活工作流引擎• 支持两种编排模式:
Sequential
顺序执行/Parallel
并行执行/Loop
循环执行)构建确定性流程LlmAgent
转移机制)实现自适应行为流模块化协作体系• 采用分层组合架构:通过多个专业化Agent的层级组合构建可扩展应用 • 核心能力:
多维度能力扩展
全场景部署矩阵
三维评估体系
负责任AI实践框架
ADK提供三类核心Agent来构建复杂应用:
LLM智能体基于大语言模型(LLM)驱动,具备自然语言理解、逻辑推理、动态决策能力,可自主选择工具链,适合需要灵活语言处理的任务。
流程控制智能体包括顺序执行(Sequential)、并行处理(Parallel)、循环操作(Loop)三种模式,通过预定义流程精确控制其他Agent的执行逻辑,适用于结构化业务流程。
自定义智能体通过继承BaseAgent基类开发,支持实现个性化业务逻辑、特殊控制流或定制化系统集成,满足高度定制化场景需求。
三类Agent可通过组合使用构建复杂智能系统,开发者可根据场景需求灵活选用。
组件 | 技术特性 | 实现机制 | 设计考量 |
---|---|---|---|
LLM智能体 | - 支持动态任务委派( transfer_to_agent )- 可绑定工具集 |
- 通过 output_key 保存输出到状态 |
description 供路由决策- 指令需包含委派逻辑 |
工作流智能体 | - 三类子类: ▪ SequentialAgent ▪ ParallelAgent ▪ LoopAgent |
sub_agents 定义子任务流- 自动管理上下文分支( InvocationContext.branch ) |
- 循环执行需设置 max_iterations 或终止条件 |
自定义智能体 | BaseAgent - 实现 _run_async_impl 方法- 非LLM逻辑(如数据库操作) |
session.state - 通过 EventActions(escalate=True) 终止循环 |
- 需自行处理状态持久化 |
类型 | 执行控制 | 状态管理 | 典型代码特征 |
---|---|---|---|
顺序智能体 | sub_agents 列表顺序执行- 前序智能体的 output_key 自动成为后序输入 |
InvocationContext - 状态键直接传递 |
<br>SequentialAgent(<br> sub_agents=[A, B, C]<br>)<br> |
并行智能体 | - 执行顺序不确定 |
- 每个子智能体获得独立 branch 路径 |
<br>ParallelAgent(<br> sub_agents=[X, Y],<br> state_keys=["api1","api2"]<br>)<br> |
循环智能体 | - 每次迭代共享状态 |
EventActions.escalate 终止- 可读取历史迭代状态 |
<br>LoopAgent(<br> max_iterations=5,<br> sub_agents=[process, check]<br>)<br> |
机制 | 触发方式 | 数据流向 | 适用场景 |
---|---|---|---|
共享状态 | session.state - 通过 output_key 自动保存 |
生产者 → 状态字典 → 消费者 |
- 循环迭代中的中间结果 |
LLM委派 | transfer_to_agent() 调用- 由 AutoFlow 拦截处理 |
当前智能体 → 目标智能体(需在 sub_agents 范围内) |
- 需要LLM理解语义的场景(如客服转接) |
显式调用 | AgentTool 包装智能体- 父智能体的LLM显式调用工具 |
父智能体 → 子智能体 → 结果返回父智能体 |
- 需要获取直接返回值的场景(如数学计算服务) |
模式 | 智能体组合 | 关键ADK特性 | 实现示例 |
---|---|---|---|
协调器模式 | transfer_to_agent - 子智能体明确 description |
- 路由智能体根据问题类型 转接至「支付」或「技术」子智能体 |
|
生成-评审 |
SequentialAgent |
output_key="draft" - 评审器读取 state['draft'] |
- 生成文本 → 检查事实性 → 输出最终结果 |
并行收集 |
SequentialAgent ParallelAgent [采集器1, 采集器2],聚合器 ] |
output_key - 聚合器读取多个状态键 |
- 并行获取销售/库存数据 → 合并生成报告 |
迭代优化 |
LoopAgent 处理器, 条件检查器(触发 escalate )] |
EventActions(escalate=True) 终止循环- 处理器更新 state['current_result'] |
- 生成代码 → 运行测试 → 未通过则继续优化 |
人工介入 | - 通过 CallbackContext 恢复流程 |
- 大额交易时暂停流程 → 等待人工批准 → 继续执行 |
这些特性使ADK既能保证工具调用的规范性,又保持了LLM驱动的灵活性,适合构建需要复杂系统交互的智能体应用。
特点分类 | 核心能力 | 技术实现 |
---|---|---|
模块化设计 | ||
动态调用机制 | ||
上下文感知 | ToolContext 提供:• State(状态管理) • EventActions(流程控制) • 认证/数据服务 |
|
多类型工具支持 | 1. 内置工具(如Google Search) 2. 自定义Function Tools 3. 第三方工具(LangChain等) |
|
开发规范 | • 语义化函数名(如 get_weather )• 类型注解(Type Hints) • 结构化docstring |
|
智能引导 | • 指定调用条件(如"当用户询问天气时") • 定义错误处理策略(如"返回错误时重试") |
关键优势:
当然,它也支持当下最流行的mcp功能
协议与框架分离 | MCPToolset 桥接实现互通 |
双向集成模式 | 2. ADK工具通过MCP服务暴露给其他客户端 |
动态工具发现 | |
异步通信机制 | |
连接生命周期管理 | exit_stack ),避免资源泄漏 |
协议转换层 | - MCP工具描述 → ADK工具接口 - ADK工具结果 → MCP响应格式 |
混合部署支持 | |
状态保持 |
关键实现要点:
客户端模式:ADK通过MCPToolset
封装以下操作:
npx
运行Node.js服务)list_tools
→BaseTool
)call_tool
转发到MCP服务)服务端模式:需自行实现:
adk_to_mcp_tool_type
)TextContent
)典型应用场景:
全托管服务 | |||
容器化服务 | |||
自定义容器 | |||
本地服务化 |
graph TD
A[ADK构建的Agent] --> B[标准Docker镜像]
B --> C{部署目标}
C --> D[自建K8s集群]
C --> E[第三方容器服务]
C --> F[边缘设备]
graph TD
A[定义评估目标] --> B[准备测试数据]
B --> C{选择评估方式}
C -->|单元测试| D[创建.test.json文件]
C -->|集成测试| E[创建.evalset.json文件]
D --> F[运行pytest/adk eval]
E --> G[运行adk web/adk eval]
F --> H[生成评估报告]
G --> H
1. 双维度评估体系
2. 动态阈值配置
{
"criteria": {
"tool_trajectory_avg_score": 0.9,
"response_match_score": 0.7
}
}
3. 会话状态流程
graph LR
S[初始状态] --> T1[用户提问1]
T1 --> A1[Agent响应1]
A1 --> T2[用户提问2]
T2 --> A2[Agent响应2]
A2 --> F[最终状态验证]
1. 质量保障矩阵
2. 典型应用场景
Google Cloud Vertex AI通过多层防护机制确保AI Agent的安全性、可靠性与品牌价值观对齐:
防护层 | 关键措施 | 应用场景 |
---|---|---|
身份与授权 | - User-Auth(OAuth用户令牌) |
|
输入/输出过滤 | - Gemini内置安全过滤器(内容分级拦截) - 回调函数验证参数 |
|
沙箱化代码执行 | - 自定义无网络隔离环境 |
|
评估与追踪 | - 工具调用链路分析 |
|
网络隔离(VPC-SC) |
风险类型 | 应对方案 |
---|---|
目标偏离/误操作 | |
有害内容生成 | |
数据泄露 | |
间接提示注入 |
graph TD
A[用户输入] --> B{安全护栏?}
B -- 安全 --> C[工具调用]
B -- 拦截 --> D[返回预设响应]
C --> E[身份验证]
E --> F[参数校验]
F --> G[执行: 沙箱/最小权限]
G --> H[输出过滤]
H --> I[评估日志]
tool_context
动态限制(如仅允许查询特定表)。通过以上分层防护,可构建既强大又安全的AI Agent系统。
adk比较crewai、agno、pocektflow、langgraph这些框架
crewai和agno等,都有编排的概念,但他们更偏向于多agent的架构,pocketflow和langraph这两者则本身是以图引擎作为编排的手段的 。
crewai更像是在架构一整套的公司与组织的运行机制,其工具集合试用过后发现,其实内部很多都是adapter模式去引用了更多成熟的工具库,但这种机制也有弊端,因为只是简单的适配器
agno很轻量,与crewai比较,要轻量的多,其内部也有rag等工具集的集成,对知识库等也有涉及,并且其实本身内部也有一个简单的webui,并且性能埋点方面,它也有集成一个自己的性能、调试的框架(默认是开的,还需要通过环境变量去关闭,挺隐蔽的,需要注意一下)
langraph就不多评价了,毕竟用的不多,文档比较复杂
pocektflow其实是graph派的,但是是绝对轻量级的,说起来,它倒是和adk一样,对agent有事前事中事后的概念,我是觉得post处理这些,对于llm的类型的应用真的很重要。
它的官网上也有总结很多MAS(多agent的设计模式)
它这两张图已经总结的非常好了,就不多说了
当然,谷歌的adk也有对应的涉及模式的总结,其实两者可以合并一下,单独出一篇,agent设计模式
agno的teams,对应的则是MAS的设计模式,它里面就三种
crewai也有teams的概念,不过crewai的我确实不是特别喜欢,因为代码库其实不小
Abstraction** |
App-Specific Wrappers | Vendor-Specific Wrappers | Lines | Size |
---|---|---|---|---|
(e.g., QA, Summarization) |
(e.g., OpenAI, Pinecone, etc.) |
|||
(e.g., FileReadTool, SerperDevTool) |
(e.g., OpenAI, Anthropic, Pinecone, etc.) |
|||
(e.g., CodeAgent, VisitWebTool) |
(e.g., DuckDuckGo, Hugging Face, etc.) |
|||
(e.g., Semantic Search) |
(e.g., PostgresStore, SqliteSaver, etc.) |
|||
(e.g., Tool Agent, Chat Agent) |
(e.g., OpenAI, Pinecone, etc.) |
(core-only) |
||
PocketFlow | Graph | None | None | 100 |
基于对Google ADK框架的全面分析,结合行业主流框架的公开资料,我们可以得出以下客观比较:
企业级工程化设计
混合编排范式
Google技术栈整合
维度 | ADK | CrewAI | PocketFlow | AutoGen |
---|---|---|---|---|
首选ADK的场景
考虑替代方案的场景
框架融合迹象
ADK的潜在挑战
综上,ADK代表了当前企业级AI Agent开发的工程化标杆,特别适合深度使用Google Cloud的团队。其设计理念正在影响整个行业,但开发者仍需根据具体技术栈和场景需求做出选择。
其它的参考文献:
另外可以去看一下昨天的文章,去试用一下adk+deepseek
柠檬叔的唠唠叨叨,公众号:柠檬叔的絮絮叨叨2025年最新AI开发体验:Google Agent Development Kit + 火山模型deepseek实战踩坑记录
这里有agno的参考文章之一
柠檬叔的唠唠叨叨,公众号:柠檬叔的絮絮叨叨技术分享 | 如何用Agno框架快速构建OpenAI兼容的Agent服务
agno的入门文章
柠檬叔的唠唠叨叨,公众号:柠檬叔的絮絮叨叨技术分享 | 如何用Agno框架快速构建OpenAI兼容的Agent服务
crewai的文章
柠檬叔的唠唠叨叨,公众号:柠檬叔的絮絮叨叨使用uv结合crewai+火山引擎+deepseek v3 ,跑代码生成、RAG的例子
以及metagpt的文章
柠檬叔的唠唠叨叨,公众号:柠檬叔的絮絮叨叨快速安装metagpt并运行的第一个demo
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-13
大模型的游戏规则:不是术业有专攻,而是底座定生死
2025-04-13
AI大模型如何存储海量数据?一文读懂数据重删和数据压缩
2025-04-12
来了!10个构建Agent的大模型应用框架
2025-04-12
一文读懂MCP:从入门到精通的完整指南
2025-04-12
微软突发“封杀令”!全面禁止Cursor使用C、C++、C# 扩展,开发者被迫回退版本
2025-04-12
继续卷,Google 发布AI 编程工具 Firebase Studio
2025-04-12
DeepSearch:AI 搜索的未来,不止于快
2025-04-12
GPT-4 官宣退役!曾经的最强模型,正式交棒 GPT-4.1、o3、o4 mini!
2024-08-13
2024-06-13
2024-08-21
2024-09-23
2024-07-31
2024-05-28
2024-08-04
2024-04-26
2024-07-09
2024-09-17