ADK开源:谷歌持续发力Agent,请快速跟进

前言

最近 Agent 相关事物非常火热,框架侧有 Manus、TARE、沉思,平台侧阿里、腾讯纷纷支持 MCP 协议,还有各种 Agent 应用如雨后春笋。

昨天,Google 也不甘落后,开源了 Google Agent Development Kit(缩写:ADK)。

今天就和大家一起了解下 ADK 是怎么回事。

ADK 是什么

简单介绍,方便大家有个初步印象。

ADK 是一套谷歌推出的开源Python框架,专为构建、管理和部署多智能体系统而生。

就是把我们经常用到的通用智能体开发工作,比如智能体搭建、编排、维护、部署、评价等,进行封装,让我们更加关注智能体本身的设计和协同上。

ADK 有什么特点

根据官网博客了解,主推亮点如下:

  • 多代理设计:通过分层组合多个专业化的代理,构建模块化且可扩展的应用程序。实现复杂的协调和任务委派。

  • 丰富的模型生态系统:选择最适合您需求的模型。ADK 可与您选择的模型无缝协作------无论是 Gemini 还是通过 Vertex AI Model Garden 访问的任何模型。该框架还提供 LiteLLM 集成,允许您从众多供应商(如 Anthropic、Meta、Mistral AI、AI21 Labs 等)中选择各种模型!

  • 丰富的工具生态系统:为代理赋予多样化的能力:使用预置工具(搜索、代码执行)、模型上下文协议(MCP)工具、集成第三方库(LangChain、LlamaIndex),甚至可以将其他代理作为工具使用(LangGraph、CrewAI 等)。

  • 内置流式传输功能:通过 ADK 独特的双向音频和视频流功能,与您的代理进行类人对话交互。只需几行代码,即可创建自然的交互体验,改变您与代理的工作方式------超越文本,进入丰富多模态对话的世界。

  • 灵活的编排能力:使用工作流代理(顺序、并行、循环)定义工作流以实现可预测的管道,或利用 LLM 驱动的动态路由(LlmAgent 转移)实现自适应行为。

  • 集成的开发者体验:通过强大的 CLI 和可视化 Web UI,在本地进行开发、测试和调试。逐步检查事件、状态和代理执行过程。

  • 内置评估功能:通过针对预定义测试用例评估最终响应质量和逐步执行轨迹,系统地评估代理性能。

ADK 实例

下面我们通过复现官网"快速开始"中的实例,更加深入的了解下 ADK 是怎么回事。

开发环境:Trae,本次分享,没有用到 AI 辅助功能。

环境配置

  1. 通过 Trae 打开一个新建的文件夹 adk-demo。

  2. Ctrl + `,打开"终端"面板。

  3. 配置虚拟环境并激活。

shell 复制代码
# 创建
python -m venv .venv
# 激活(Windows PowerShell)
.venv\Scripts\Activate.ps1
# macOS/Linux: source .venv/bin/activate
# Windows CMD: .venv\Scripts\activate.bat
  1. 安装 ADK,记得新建一个终端。

    pip install google-adk

编写代码

代码结构如下:

__init__.py 源码

javascript 复制代码
from . import agent

.env 源码

ini 复制代码
# 使用 Google AI Studio 的 Gemini
GOOGLE_GENAI_USE_VERTEXAI="False"
GOOGLE_API_KEY="<粘贴Google AI Studio API Key>"

# 使用 Vertex AI on Google CLoud 的 Gemini
# GOOGLE_CLOUD_PROJECT="your-project-id"
# GOOGLE_CLOUD_LOCATION="your-location" #e.g. us-central1
# GOOGLE_GENAI_USE_VERTEXAI="True"

agent.py 源码

python 复制代码
import datetime
from zoneinfo import ZoneInfo
from google.adk.agents import Agent

def get_weather(city: str) -> dict:
    """Retrieves the current weather report for a specified city.

    Args:
        city (str): The name of the city for which to retrieve the weather report.

    Returns:
        dict: status and result or error msg.
    """
    if city.lower() == "new york":
        return {
            "status": "success",
            "report": (
                "The weather in New York is sunny with a temperature of 25 degrees"
                " Celsius (41 degrees Fahrenheit)."
            ),
        }
    else:
        return {
            "status": "error",
            "error_message": f"Weather information for '{city}' is not available.",
        }


def get_current_time(city: str) -> dict:
    """Returns the current time in a specified city.

    Args:
        city (str): The name of the city for which to retrieve the current time.

    Returns:
        dict: status and result or error msg.
    """

    if city.lower() == "new york":
        tz_identifier = "America/New_York"
    else:
        return {
            "status": "error",
            "error_message": (
                f"Sorry, I don't have timezone information for {city}."
            ),
        }

    tz = ZoneInfo(tz_identifier)
    now = datetime.datetime.now(tz)
    report = (
        f'The current time in {city} is {now.strftime("%Y-%m-%d %H:%M:%S %Z%z")}'
    )
    return {"status": "success", "report": report}


root_agent = Agent(
    name="weather_time_agent",
    model="gemini-2.0-flash-exp",
    description=(
        "Agent to answer questions about the time and weather in a city."
    ),
    instruction=(
        "I can answer your questions about the time and weather in a city."
    ),
    tools=[get_weather, get_current_time],
)

运行测试

支持终端、Web、API 三种方式,这里为了直观呈现,我选择了 Web 方式。

复制代码
adk web

结语

整个过程倒是非常顺畅,也没有遇到什么问题。

并且通过各种资料初步了解,感觉 Google 所图甚大,毕竟,还搞了一个 A2A 协议,个人感觉可以跟进一波。

今天的分享只是让大家初步了解下 ADK,后续会针对高级一点的特性继续研究,也欢迎大家一起交流学习~

相关推荐
墨林陌几秒前
AI 热点日报(2026-11-13):黄仁勋辞任英伟达CEO,百度发智能组织,SpaceX斥740亿建算力
人工智能
喵了几个咪13 分钟前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
开发语言·人工智能·后端·golang
aneasystone本尊24 分钟前
学习大模型训练的 DPO 与 GRPO:偏好对齐的简化与进化
人工智能
BYSJMG25 分钟前
计算机毕业设计选题推荐|【基于深度学习的电梯电动车违规进入检测研究】YOLO26m+可视化大屏
人工智能·深度学习·神经网络·目标检测·机器学习·计算机视觉·课程设计
盼小辉丶44 分钟前
PyTorch强化学习实战(35)——多智能体强化学习
人工智能·pytorch·深度学习·强化学习
我就是全世界1 小时前
【轻AI越影视觉开发板】local_voice_process 语音功能模块教程——从音频采集到本地语音识别、多模态视觉交互与 ESP32-S31 硬核对比
人工智能·语音识别
hpoenixf1 小时前
Agent 测评的身份难题:一次任务换了模型,历史成绩还能算数吗?
人工智能
hpoenixf1 小时前
专家、Subagent、Review、Judge:都是另一个模型,为什么不是同一回事?
人工智能
深蓝AI3 小时前
26.1% 的 Agent 技能带漏洞:skills 霸榜 GitHub 当天,NVIDIA 和 OpenAI 同时掏出安检仪
人工智能·程序员