Google ADK Python 技能
您是一名Google Agent Development Kit (ADK) Python的专家指南 - 这是一个开源的、代码优先的工具包,用于构建、评估和部署AI代理。
何时使用此技能
当用户需要时使用此技能:
- 构建具有工具集成和编排功能的AI代理
- 创建具有层次协调的多代理系统
- 实现工作流代理(顺序、并行、循环)以用于可预测的管道
- 将LLM驱动的代理与Google搜索、代码执行或自定义工具集成
- 将代理部署到Vertex AI代理引擎、Cloud Run或自定义基础设施
- 系统性地评估和测试代理性能
- 实现工具执行的人类在环批准流程
核心概念
代理类型
LlmAgent: LLM驱动的代理,能够进行动态路由和自适应行为
- 使用名称、模型、指令、描述和工具定义
- 支持子代理进行委派和协调
- 基于上下文的智能决策
工作流代理: 结构化、可预测的编排模式
- SequentialAgent: 按定义顺序执行代理
- ParallelAgent: 并发运行多个代理
- LoopAgent: 使用迭代逻辑重复执行
BaseAgent: 自定义代理实现的基础
关键组件
工具生态系统:
- 预建工具(google_search, code_execution)
- 自定义Python函数作为工具
- OpenAPI规范集成
- 工具确认流程用于人类批准
多代理架构:
- 层次化代理组合
- 针对特定领域的专门代理
- 协调代理进行委派
安装
# 稳定版本(推荐)
pip install google-adk
# 开发版本(最新功能)
pip install git+https://github.com/google/adk-python.git@main
实现模式
带有工具的单代理
from google.adk.agents import LlmAgent
from google.adk.tools import google_search
agent = LlmAgent(
name="search_assistant",
model="gemini-2.5-flash",
instruction="您是一个有用的助手,搜索网络信息。",
description="用于网络查询的搜索助手",
tools=[google_search]
)
多代理系统
from google.adk.agents import LlmAgent
# 专门代理
researcher = LlmAgent(
name="Researcher",
model="gemini-2.5-flash",
instruction="使用网络搜索彻底研究主题。",
tools=[google_search]
)
writer = LlmAgent(
name="Writer",
model="gemini-2.5-flash",
instruction="基于研究撰写清晰、引人入胜的内容。",
)
# 协调代理
coordinator = LlmAgent(
name="Coordinator",
model="gemini-2.5-flash",
instruction="将任务委派给研究员和作家代理。",
sub_agents=[researcher, writer]
)
自定义工具创建
from google.adk.tools import Tool
def calculate_sum(a: int, b: int) -> int:
"""计算两个数字的和。"""
return a + b
# 将函数转换为工具
sum_tool = Tool.from_function(calculate_sum)
agent = LlmAgent(
name="calculator",
model="gemini-2.5-flash",
tools=[sum_tool]
)
顺序工作流
from google.adk.agents import SequentialAgent
workflow = SequentialAgent(
name="research_workflow",
agents=[researcher, summarizer, writer]
)
并行工作流
from google.adk.agents import ParallelAgent
parallel_research = ParallelAgent(
name="parallel_research",
agents=[web_researcher, paper_researcher, expert_researcher]
)
人类在环
from google.adk.tools import google_search
# 需要确认的工具
agent = LlmAgent(
name="careful_searcher",
model="gemini-2.5-flash",
tools=[google_search],
tool_confirmation=True # 执行前需要批准
)
部署选项
Cloud Run 部署
# 容器化代理
docker build -t my-agent .
# 部署到 Cloud Run
gcloud run deploy my-agent --image my-agent
Vertex AI 代理引擎
# 部署到 Vertex AI 用于可扩展的代理托管
# 与Google Cloud的管理基础设施集成
自定义基础设施
# 在本地或自定义服务器上运行代理
# 完全控制部署环境
模型支持
针对 Gemini 优化:
- gemini-2.5-flash
- gemini-2.5-pro
- gemini-1.5-flash
- gemini-1.5-pro
模型无关: 虽然针对Gemini优化,但ADK通过标准API支持其他LLM提供商。
最佳实践
- 代码优先哲学: 在Python中定义代理以实现版本控制、测试和灵活性
- 模块化设计: 创建针对特定领域的专门代理,组合成系统
- 工具集成: 利用预建工具,扩展自定义函数
- 评估: 针对测试用例系统性地测试代理
- 安全性: 对敏感操作实现确认流程
- 层次结构: 对复杂的多代理工作流使用协调代理
- 工作流选择: 选择工作流代理用于可预测管道,LLM代理用于动态路由
常见用例
- 研究助手: 网络搜索 + 摘要 + 报告生成
- 代码助手: 代码执行 + 文档 + 调试
- 客户支持: 查询路由 + 知识库 + 升级
- 内容创作: 研究 + 写作 + 编辑管道
- 数据分析: 数据获取 + 处理 + 可视化
- 任务自动化: 具有条件逻辑的多步工作流
开发UI
ADK包括内置界面用于:
- 交互式测试代理行为
- 调试工具调用和响应
- 评估代理性能
- 迭代代理设计
资源
- GitHub: https://github.com/google/adk-python
- 文档: https://google.github.io/adk-docs/
- llms.txt: https://raw.githubusercontent.com/google/adk-python/refs/heads/main/llms.txt
实现工作流
当实现基于ADK的代理时:
- 定义需求: 识别代理能力和所需工具
- 选择架构: 单代理、多代理或基于工作流
- 选择工具: 预建、自定义函数或OpenAPI集成
- 实现代理: 创建带有指令和工具的代理定义
- 本地测试: 使用开发UI进行迭代
- 添加评估: 创建测试用例进行系统性验证
- 部署: 选择Cloud Run、Vertex AI或自定义基础设施
- 监控: 跟踪代理性能并迭代
记住:ADK将代理开发视为传统软件工程 - 使用版本控制,编写测试,并遵循工程最佳实践。