Google ADK Python 是 Google 的 Agent Development Kit (ADK) Python 版本,一个开源、代码优先的工具包,用于构建、评估和部署 AI 智能体。
用途
该技能适用于以下场景:构建带工具集成与编排能力的 AI 智能体;创建具有层级协调的多智能体系统;实现可预测流水线的工作流智能体(顺序、并行、循环);将 LLM 驱动的智能体与 Google 搜索、代码执行或自定义工具集成;将智能体部署到 Vertex AI Agent Engine、Cloud Run 或自定义基础设施;系统化评估和测试智能体性能;为工具执行实现人工审批流程。
核心概念
智能体类型:
- LlmAgent:LLM 驱动的智能体,具备动态路由和自适应行为。通过 name、model、instruction、description 和 tools 定义,支持用于委派和协调的子智能体,基于上下文进行智能决策。
- 工作流智能体:结构化、可预测的编排模式。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
实现模式
单智能体带工具:使用 LlmAgent 定义 name、model、instruction、description 和 tools(如 google_search)。
多智能体系统:创建专用智能体(如 Researcher、Writer),再通过协调智能体(Coordinator)的 sub_agents 进行委派。
自定义工具创建:通过 Tool.from_function 将 Python 函数转换为工具,再传入智能体的 tools 列表。
顺序工作流:使用 SequentialAgent 按顺序执行多个智能体。
并行工作流:使用 ParallelAgent 并发运行多个智能体。
人工介入:在 LlmAgent 中设置 tool_confirmation=True,使工具执行前需要审批。
部署选项
- Cloud Run 部署:构建容器镜像(docker build -t my-agent .),再部署(gcloud run deploy my-agent --image my-agent)。
- Vertex AI Agent Engine:部署到 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 将智能体开发视为传统软件工程——使用版本控制、编写测试并遵循工程最佳实践。