面包屑图标 当前位置: 首页
AI资讯
热点详情

Google ADK入门指南:从零到多智能体开发

AI热点日报
AI热点日报时间:2026-07-08
热点解读

掌握Google ADK,开启多Agent系统开发新纪元。核心内容:AI多Agent系统发展趋势与ADK的关键作用ADK核心能力:灵活组合、多Agent架构、模型无关性实战教程:从环境配置到构建首个ADK问答Agent从OpenAI的浏览器和代码解释功能,到Anthropic的Claude,AI正从

掌握Google ADK,开启多Agent系统开发新纪元。

核心内容:

  1. AI多Agent系统发展趋势与ADK的关键作用
  2. ADK核心能力:灵活组合、多Agent架构、模型无关性
  3. 实战教程:从环境配置到构建首个ADK问答Agent

从零到多智能体:Google Agent开发套件(ADK)入门指南

从OpenAI的浏览器和代码解释功能,到Anthropic的Claude,AI正从单一Agent模型向复杂的协作多Agent系统演进——这是一段令人惊叹的变革之旅。

过去,构建这类复杂系统往往需要深厚的AI功底、漫长的开发周期以及繁琐的协调工作。直到2025年Google Cloud NEXT大会上,谷歌推出了Agent开发套件(Agent Development Kit, ADK)。这是一个开源框架,让开发者能够快速搭建Agent和多Agent系统,兼顾简单应用与高级场景。

ADK的意义在于,它是Agent技术民主化的重要里程碑。它为开发者提供了一整套工具和方法,用于实施、测试和部署能够独立解决复杂任务,或者与其他Agent协作的智能体。更令人振奋的是,谷歌自家产品(如Agentspace和客户参与套件CES)内部的Agent也采用了同一套框架。

接下来,我们直接进入实战环节——看看ADK如何使用,以及怎样用它构建强大的多Agent应用。我们会从搭建第一个Agent开始,探索可用的工具和模型生态,并突出那些能立即落地的实际场景。读完之后,你对ADK如何重塑智能系统的开发方式,应该会有一个扎实的理解。

了解ADK:核心能力

  1. 灵活可组合:自由选择组件,结构化组装Agent系统,没有任何模型或方法的限制。
  2. 多Agent架构:支持Agent之间协作、任务委派,能够实现类似专业AI团队那样的复杂目标。
  3. 模型无关性:兼容多种模型(Gemini、Claude、Llama等),并能集成Vertex AI和LiteLLM。
  4. 工具生态丰富:内置常用工具(搜索、代码执行),支持LangChain等外部库,还支持Agent嵌套(分层架构)。
  5. 双向流支持:内置音视频流,实现多模态自然交互。
  6. 灵活编排:结合结构化工作流(顺序/并行/循环)与LLM动态路由,平衡可靠性与适应性。

构建ADK Agent

要理解ADK的强大之处,最直接的方法就是动手编写一个基本Agent。我们从最简单的问答Agent开始,让它能够利用Google搜索回答查询。

设置你的环境

写代码之前,先搭建开发环境。ADK是Python框架,需要Python 3.8及以上版本。步骤如下:

# 创建虚拟环境
python -m venv adk-env

# 激活环境
source adk-env/bin/activate  # Windows: adk-env\Scripts\activate

# 安装ADK
pip install google-adk

# 验证安装
adk --version

一个简单的问答Agent

现在来创建一个能用Google搜索回答问题的Agent。这个例子展示了ADK的简洁性,同时也体现了它与外部工具的集成能力:

from google.adk.agents import LlmAgent
from google.adk.tools import google_search

# 定义我们的问答Agent
qa_agent = LlmAgent(
    model="gemini-2.0-flash-exp",  # 指定使用的LLM
    name="question_answer_agent",  # 唯一名称
    description="一个能够使用搜索回答问题的有用助手Agent。",
    instruction="""使用Google搜索回应用户需要事实信息的查询。
    在回应中保持简洁、直接和切中要点。""",
    tools=[google_search],  # 提供搜索工具
)

# 将此保存为agent.py
# 运行命令:adk web

这段代码创建了一个由Gemini 2.0 Flash驱动的Agent,它可以直接搜索网络来回答问题。仅用几行代码就实现了带搜索功能的Agent,ADK的简洁性可见一斑。

Agent交互

ADK提供了多种与Agent交互的方式。最快的是通过CLI或Web UI。启动Web UI运行:

# 使用web界面运行Agent
adk web

这会启动一个本地web服务器,带有聊天界面。Web UI还提供了调试工具,让你看到底层发生的一切:状态转换、工具调用、完整的执行跟踪。

构建多Agent系统

单个Agent固然有用,但ADK真正的亮点在于构建能够协作的多Agent系统。我们来做一个更灵活、更高级的设置:多个专业Agent可以互相委派任务。

天气助手系统

这个系统包含三个专业Agent:主要天气Agent负责回答天气查询,问候Agent负责响应欢迎消息,告别Agent负责响应告别消息。主Agent在适当时会把任务转交给专业Agent。下面是实现代码:

from google.adk.agents import Agent
from google.litellm import LiteLlm

# 定义一个获取天气数据的工具
def get_weather(city: str) -> dict:
    print(f"获取天气:{city}")
    # 模拟天气数据(生产环境调用真实API)
    mock_weather_db = {
        "newyork": {"status": "success", "report": "纽约的天气晴朗,温度为25°C。"},
        "london": {"status": "success", "report": "伦敦多云,温度为15°C。"},
        "tokyo": {"status": "success", "report": "东京正在经历小雨,温度为18°C。"},
    }
    city_normalized = city.lower().replace(" ", "")
    if city_normalized in mock_weather_db:
        return mock_weather_db[city_normalized]
    else:
        return {"status": "error", "error_message": f"Sorry, I don't ha ve weather information for '{city}'."}

# 为不同任务定义专业Agent
greeting_agent = Agent(
    model=LiteLlm(model="anthropic/claude-3-sonnet-20240229"),
    name="greeting_agent",
    instruction="你是问候Agent。你的唯一任务是向用户提供友好的问候。不要参与任何其他对话或任务。",
    description="处理简单的问候和你好",
)

farewell_agent = Agent(
    model=LiteLlm(model="anthropic/claude-3-sonnet-20240229"),
    name="farewell_agent",
    instruction="你是告别Agent。你的唯一任务是提供礼貌的告别信息。不要执行任何其他操作。",
    description="处理简单的告别和再见",
)

# 定义可以委派给专业Agent的主要天气Agent
root_agent = Agent(
    name="weather_agent",
    model="gemini-2.0-flash-exp",
    description="""你是主要天气Agent,协调一个团队。
    - 你的主要任务:使用`get_weather`工具提供天气。处理其'status'响应('report'或'error_message')。
    - 委派规则:
      - 如果用户给出简单问候(如'嗨','你好'),委派给`greeting_agent`。
      - 如果用户给出简单告别(如'再见','下次见'),委派给`farewell_agent`。
      - 使用`get_weather`自行处理天气请求。
      - 对于其他查询,清楚说明你是否无法处理它们。""",
    tools=[get_weather],
    sub_agents=[greeting_agent, farewell_agent]
)

# 保存为weather_agent.py
# 运行命令:adk web --agent weather_agent.py

Agent委派如何工作

这套系统的精髓在于ADK的自动委派机制。收到用户消息时,LLM会根据查询内容、当前Agent的描述以及相关Agent的描述来决定如何处理。如果发现另一个Agent更擅长某项任务,就会发起转移。

举个例子:用户输入"嗨",根Agent识别出这不是天气查询,自动把控制权转给问候Agent。反过来,用户询问天气情况,根Agent通过自己的get_weather工具直接处理。

把复杂系统拆分成具有明确角色的专业Agent,这样维护和调试起来都轻松许多。每个Agent专注于做好一件事情,而不是试图包揽所有交互。

工具生态系统:扩展Agent能力

Agent需要工具才能与世界互动、完成任务。ADK提供了丰富的工具生态,可以大大扩展Agent的能力。下面看几个实际例子。

内置工具

ADK自带一些即开即用的工具:

  • Google搜索:访问网络信息
  • 代码执行:安全运行Python代码
  • 文件操作:读取、写入和操作文件
  • HTTP请求:进行API调用并检索数据

创建自定义工具

ADK的一大优势是能轻松创建自定义工具。本质上,工具就是一个带描述性文档字符串的Python函数。来看一个翻译工具:

def translate_text(text: str, target_language: str) -> str:
    """Translates the provided text into the target language.

    Args:
        text: The text to translate
        target_language: The language code to translate to (e.g., 'es', 'fr', 'ja')

    Returns:
        The translated text or an error message
    """
    # 生产环境中调用翻译API
    mock_translations = {
        ('hello world', 'es'): 'hola mundo',
        ('hello world', 'fr'): 'bonjour le monde',
        ('hello world', 'ja'): 'こんにちは世界',
    }
    key = (text.lower(), target_language.lower())
    if key in mock_translations:
        return mock_translations[key]
    else:
        return f"Translation not a vailable for '{text}' to {target_language}"

# 在Agent中使用
from google.adk.agents import LlmAgent

translator_agent = LlmAgent(
    model="gemini-2.0-flash-exp",
    name="translator_agent",
    description="A helpful assistant that can translate text between languages.",
    instruction="You are a translation assistant. Use the translate_text tool to translate text into different languages.",
    tools=[translate_text],
)

使用第三方集成

除了内置功能,ADK还支持与流行的AI/ML框架集成。

# 与LangChain集成的例子
from langchain.tools import Tool
from langchain.utilities import WikipediaAPIWrapper

wikipedia = WikipediaAPIWrapper()
wikipedia_tool = Tool(
    name="wikipedia",
    description="在Wikipedia上搜索信息",
    func=lambda query: wikipedia.run(query)
)

# 包装以供ADK使用
from google.adk.tools import wrap_langchain_tool
adk_wikipedia_tool = wrap_langchain_tool(wikipedia_tool)

# 在Agent中使用
from google.adk.agents import LlmAgent

research_agent = LlmAgent(
    model="gemini-2.0-flash-exp",
    name="research_agent",
    description="一个可以在Wikipedia上查找信息的研究助手。",
    instruction="你是一个研究助手。使用Wikipedia查找用户询问的主题信息。",
    tools=[adk_wikipedia_tool],
)

这种灵活性意味着你可以整合来自不同生态系统的工具,无论是原生ADK工具还是其他框架的任务,都能择优使用。

系统评估

ADK内置了评估框架,可以用现成的数据集对Agent进行系统化测试。这对回归测试和可维护性至关重要。

// 示例 evaluation.test.json
[
  {
    "input": "纽约的天气怎么样?",
    "expected_output": "纽约的天气晴朗,温度为25°C。"
  },
  {
    "input": "你好!",
    "expected_output": "嗨!我今天能帮您什么忙?"
  }
]

你可以通过CLI或编程方式运行评估:

# 通过CLI运行
adk eval --agent-file weather_agent.py --test-file evaluation.test.json

# 或通过编程方式
from google.adk.eval import AgentEvaluator

evaluator = AgentEvaluator(agent=root_agent)
results = evaluator.evaluate("evaluation.test.json")
print(f"准确率: {results.accuracy * 100}%")
for test_case, result in zip(results.test_cases, results.results):
    print(f"测试: {test_case.input}")
    print(f"预期: {test_case.expected_output}")
    print(f"实际: {result.output}")
    print(f"通过: {result.passed}")
    print("---")

部署选项

ADK提供了多种将Agent部署到生产环境的方式。

容器部署

将ADK Agent容器化后,可以部署到任何支持Docker的平台:

# ADK Agent的Dockerfile
FROM python:3.9-slim

WORKDIR /app

# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制Agent代码
COPY weather_agent.py .

# 暴露端口
EXPOSE 8080

# 运行Agent
CMD ["adk", "server", "--agent", "weather_agent.py", "--port", "8080"]

Vertex AI Agent引擎

对于生产级部署,ADK与Vertex AI Agent引擎集成,提供完全托管的可扩展运行时,包含监控和日志等企业级功能:

from google.cloud import aiplatform
from google.adk.vertex import deploy_to_vertex

# Deploy your agent to Vertex AI
deploy_response = deploy_to_vertex(
    agent_file="weather_agent.py",
    project_id="your-gcp-project",
    display_name="Weather Assistant",
    location="us-central1",
)

print(f"Agent deployed to Vertex AI: {deploy_response.resource_name}")

这种部署方式非常适合需要处理大量流量的企业应用,能同时保证可靠性和性能。

实际应用

ADK的灵活性让它适用于多种实际场景。下面几个例子可以直接体现它的价值。

1. 企业知识助手

构建一个能搜索公司文档、回答员工问题、执行操作(如安排会议、生成报告)的多Agent系统。可以分别部署HR、IT、财务等领域的Agent,保持职责分离。

2. 电子商务购物助手

一个帮助查找产品、提供推荐、引导结账流程的购物助手。一个Agent学习产品属性,一个学习客户偏好,第三个负责处理购买流程。模块化设计带来流畅的用户体验。

3. 数据分析工作流

构建一个让数据科学家探索复杂数据集的Agent系统。一个Agent负责数据清洗,另一个运行统计分析,第三个生成可视化报告。将复杂的分析过程拆分成离散步骤,系统更健壮、更易维护。

4. 教育辅导员

开发自适应辅导系统,不同Agent处理不同学科或学习风格。协调Agent评估学生需求后分派给合适的专业辅导员。这种方法能实现大规模个性化教育。

结论

谷歌的Agent开发套件在推动多Agent AI系统可访问性方面迈出了重要一步。通过提供结构化的框架——内置构建、测试、部署工具——ADK消除了传统上阻碍Agent开发的许多障碍。

实际好处很明显:高级抽象加快开发速度,内置评估工具让系统更可靠,灵活的部署选项适应不同需求。能够创建高效协作的模块化专业Agent,为各行各业的AI应用打开了新的可能性。

随着AI格局不断向更多Agent系统演进,像ADK这样的框架将在民主化技术访问方面扮演关键角色。无论你是搭建简单的助手还是复杂的多Agent系统,ADK都提供了所需的积木,让你用更少的精力创建更智能、更实用的应用。

热点追踪提示词
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:Google ADK入门指南:从零到多智能体开发要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
来源:https://www.53ai.com/news/OpenSourceLLM/2025042363952.html
ai 人工智能

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关热点
AI热点2026-07-08 18:15
Qwen3之后我终于敢真正投资AI应用了

Qwen3通过全谱系模型(0 6B至235B)、混合推理与真开源策略,满足从端侧到云端多样化部署需求,支持Agent开发与低代码构建。其技术突破与产业验证提振了AI应用投资信心,成为开发者与企业的理想基座模型。

AI热点2026-07-08 18:15
知识大航海时代企业如何提升知识力

对于绝大多数个人、企业乃至整个社会来说,最重要的资产是什么?答案可能会让人有些意外——是知识。 今天,知识这种无形的智力资产,已经在财富创造中占据了主导地位。它不仅能直接带来收益,比如技能、专利、许可、品牌等创新成果,还能融入文化、体系和业务流程,帮企业构建持久的竞争优势。 正因如此,有学者指出,工

AI热点2026-07-08 18:15
基于知识图谱的建筑垂直领域大模型部署关键要素探讨

先聊几句背景。建筑行业一直是一个“慢变量”的领域——项目周期长、参与方众多、信息碎片化问题严重。但随着AI大模型的爆发,越来越多的人开始认真思考:这个传统行业究竟能否真正实现“智能化”?答案是肯定的,但关键要走对路径。今天,我们以知识图谱这一技术基石为切入点,探讨它如何在建筑垂直领域助力大模型真正落

AI热点2026-07-08 18:15
清华大学在集成光计算领域取得新进展

清华大学提出集成衍射光子神经网络芯片,利用亚波长结构突破集成度瓶颈,实现计算单元大规模片上拓展。该芯片计算吞吐量达1 38×10⁴TOPS,算力密度10¹⁶FLOPS mm²,能耗仅10⁻¹⁷J FLOP,具有完全自主知识产权并与CMOS工艺兼容。

延伸阅读