loading

Loading

首页 📝AI资讯

Google ADK 2026 教程:五种语言构建 AI Agent,MCP、A2A、Go 和 Python 实战

分类:📝AI资讯
字数: (8984)
阅读: (13)
0
摘要:2026 年 10 月 13 日,Google Cloud 发布 ADK 多语言架构详解。Agent Development Kit 已覆盖 Python、Go、TypeScript、Java 和 Kotlin,支持 MCP 工具调用、A2A 多 Agent 通信及 Cloud Run 部署。本文介绍 Google ADK 的技术架构、五种语言差异、Python Agent 实战、Go 后端开发及生产环境建议。

一、为什么 AI Agent 不应该只属于 Python 开发者?

过去,很多 AI Agent 框架首先选择 Python。

原因非常简单。

Python 拥有成熟的机器学习生态、丰富的 AI SDK,以及较低的开发门槛。

但在真正的企业软件系统中,开发语言远不止 Python。

例如,一家公司可能使用:

Go 开发高并发 API 网关。

TypeScript 开发 Web 应用。

Java 开发订单和支付系统。

Kotlin 开发 Android 客户端。

Python 则主要用于数据分析和模型评估。

如果所有 AI Agent 都必须运行在 Python 服务中,企业就可能为了接入 AI 而额外维护一套独立技术栈。

这增加了系统复杂度。

2026 年 10 月 13 日,Google Cloud 发布《One Agent Development Kit, five languages》技术文章,系统介绍 ADK 已经覆盖的五种语言:

Python、Go、TypeScript、Java 和 Kotlin。

Google 的核心目标,是让开发者能够选择熟悉的语言,同时仍然使用相近的 Agent 架构,以及标准化的工具和多 Agent 通信协议。

需要注意,这篇文章是对 Google ADK 现有多语言生态的技术总结,并不意味着五种语言都是 10 月 13 日首次推出。

二、Google ADK 是什么?

ADK 的完整名称是 Agent Development Kit。

它是 Google 提供的 AI Agent 开发工具包。

与仅仅发送一次模型 API 请求不同,Agent 开发需要管理更多组件。

例如:

模型调用。

工具注册。

多轮对话。

任务状态。

工作流编排。

多个 Agent 的通信。

执行结果评估。

ADK 就是帮助开发者组织这些能力的框架。

一个典型 ADK 工作流可以表示为:

用户输入 → Agent → 模型推理 → 工具调用 → 工具返回结果 → 模型继续推理 → 最终回答。

开发者不需要从零开始编写所有 Agent 编排逻辑。

但 ADK 并不自动替你实现所有企业业务规则。

权限、数据安全、外部系统认证和操作审批仍然需要根据真实业务设计。

三、五种语言分别适合什么场景?

语言 ADK 特点 推荐使用场景
Python 开发生态成熟,模型与评估集成丰富 原型、研究、RAG、评估
Go 强类型、高并发、部署轻量 API 网关、微服务、生产 Agent
TypeScript Zod Schema、Node.js 和浏览器生态 Web Agent、前后端应用
Java Maven、Gradle、Spring 生态 企业服务、JVM 后端
Kotlin KSP、Android、设备端能力 Android Agent、本地推理

这里最值得关注的是:

不同语言不需要拥有完全相同的内部实现。

Google ADK 会根据语言本身的特点选择合适的工具注册方式。

例如,Python 利用函数签名和类型提示。

Go 利用泛型和结构体。

TypeScript 使用 Zod。

Java 使用注解和 Builder。

Kotlin 则通过编译期代码生成减少运行时反射。

这些差异能让开发者保持原有语言生态习惯。

四、Google ADK 为什么强调 MCP 和 A2A?

这是五语言架构最关键的共同基础。

MCP:连接工具

MCP 的完整名称为 Model Context Protocol。

主要用于让 Agent 通过统一协议连接外部工具。

例如:

数据库查询。

文件读取。

内部业务 API。

知识库搜索。

假设企业已经有一个 MCP Server,用于查询订单状态。

Python Agent 可以调用它。

Go Agent 也可以调用它。

Java 或 TypeScript Agent 同样可以在协议和工具授权条件满足时使用它。

这样就不必为每种语言重复开发一套相同的工具协议。

A2A:连接 Agent

A2A 的完整名称为 Agent2Agent。

主要用于不同 Agent 之间的通信。

例如:

Python 研究 Agent 负责查询资料。

Go 业务 Agent 负责处理订单。

Java 企业 Agent 负责审批。

它们可以通过 A2A 协议交换任务和结果。

因此,一个企业可以根据不同部门的技术栈开发 Agent,而不必强制整个系统只使用一种编程语言。

五、Python ADK 从零开始教程

对于初学者,建议先使用 Python 理解 ADK 的基础工作方式。

官方要求 Python 3.10 或更新版本。

第一步:创建虚拟环境

python -m venv .venv

Windows PowerShell:

.venv\Scripts\Activate.ps1

Linux/macOS:

source .venv/bin/activate

第二步:安装 ADK

pip install -U google-adk

第三步:创建 Agent 项目

adk create my_agent

官方脚手架会生成一个包含 Agent 配置的项目。

典型目录如下:

my_agent/
├── __init__.py
├── agent.py
└── .env

第四步:配置 Gemini API Key

在 my_agent/.env 中填写:

GOOGLE_API_KEY="你的真实API密钥"

实际密钥应从 Google AI Studio 获取。

不要提交到公开 Git 仓库。

第五步:编写一个具备工具调用能力的 Agent

将 my_agent/agent.py 修改为:

from google.adk.agents.llm_agent import Agent

def get_service_status(service: str) -> dict:
    """Returns a mock service status.

    Args:
        service: Name of the service to check.
    """
    return {
        "service": service,
        "status": "healthy",
        "note": "Demo result, not live monitoring"
    }

root_agent = Agent(
    name="service_status_agent",
    model="gemini-3.8-flash",
    instruction=(
        "You are a service monitoring assistant. "
        "Use the provided tool when asked about "
        "service status. Clearly state that "
        "the returned status is mock data."
    ),
    tools=[get_service_status],
)

这是一个模拟服务状态查询的示例。

它不连接真实服务器,也不会读取真实监控系统。

第六步:运行 Agent

在包含 my_agent 文件夹的父目录执行:

adk run my_agent

然后输入:

“查询 api-gateway 的服务状态。”

Agent 可以根据任务决定是否调用 get_service_status 工具。

第七步:使用 Web 开发界面

执行:

adk web --port 8000

然后访问:

http://localhost:8000

选择对应 Agent 进行调试。

需要注意,ADK Web 是开发调试工具,不应直接作为未经保护的生产管理后台公开部署。

六、Python ADK 为什么适合快速开发?

Python 最大的优势是编写工具非常直接。

例如:

def lookup_order(order_id: str) -> dict:
    """Looks up a demo order."""
    return {
        "order_id": order_id,
        "status": "pending"
    }

开发者可以将这样的函数放进 Agent 的 tools 参数。

ADK 根据函数签名、类型提示和文档说明生成相应的工具声明。

这样可以快速为 Agent 添加新能力。

不过,如果接入真实订单数据库,就不能继续使用不受限制的直接查询函数。

应增加用户身份校验、租户隔离、查询权限和日志管理。

七、Go ADK 为什么适合生产环境?

Go 是云原生系统中常见的后端语言。

它适合构建高并发 HTTP 服务、API 网关和轻量容器。

Google ADK for Go 保留了这种开发体验。

例如一个工具输入可以定义为:

type GetWeatherArgs struct {
    City string `json:"city" jsonschema:"City name"`
}

type GetWeatherResult struct {
    Report string `json:"report"`
}

然后使用 Go ADK 提供的 functiontool.New 注册工具。

与 Python 自动检查函数签名的方式不同,Go 更强调结构体类型和编译期检查。

Google 还介绍,Go ADK 2.0 支持 Graph Workflow,可以使用明确的节点和边定义复杂任务流程。

这对于需要可预测步骤的企业工作流很有价值。

例如:

用户请求 → 身份校验 → 订单检查 → 人工审批 → 执行任务 → 发送结果。

不是所有步骤都必须由语言模型自由决定。

某些关键操作可以使用确定性的流程节点。

当前官方 Go ADK 2.0 快速入门要求 Go 1.25 或更新版本。

开发者应在部署前检查实际项目依赖及对应 SDK 版本。

八、使用 Agents CLI 创建 Go Agent

Google 官方还推出了用于 Agent 项目管理的 Agents CLI。

可通过以下命令进行一次性设置:

uvx google-agents-cli setup

然后生成 Go Agent 项目:

agents-cli scaffold create my-go-agent \
  --agent adk_go \
  --deployment-target cloud_run \
  --region us-central1

这里以 Cloud Run 为目标部署环境。

Google 官方说明,脚手架还可以生成适用于其他受支持运行环境的项目配置,例如 GKE 和 Gemini Enterprise Agent Runtime。

生成项目不等于已经完成云端部署。

正式部署仍然需要 Google Cloud 项目、认证、权限和运行环境。

对于首次测试,建议先在本地运行和验证 Agent。

九、TypeScript ADK 怎么注册工具?

TypeScript 的优势是与 Node.js 和前端生态紧密结合。

Google ADK for TypeScript 使用 Zod 定义工具输入。

示例如下:

import { FunctionTool, LlmAgent } from "@google/adk";
import { z } from "zod";

const calculateTool = new FunctionTool({
  name: "calculate_total",
  description: "Calculates a price total",
  parameters: z.object({
    price: z.number(),
    quantity: z.number()
  }),
  execute: async ({ price, quantity }) => {
    return {
      total: price * quantity
    };
  }
});

export const rootAgent = new LlmAgent({
  name: "sales_agent",
  model: "gemini-3.8-flash",
  instruction: "Help users calculate totals.",
  tools: [calculateTool]
});

这段代码展示了 TypeScript ADK 的工具声明方式。

Zod 的作用是将参数结构、类型验证和开发时类型提示联系起来。

相比完全依靠自然语言描述参数,结构化 Schema 更有利于控制工具输入。

另外,Google 也介绍了 TypeScript ADK 的浏览器运行能力,可以结合 WebMCP 和设备端模型 API 探索更轻量的 Agent 应用。

十、Java ADK 适合传统企业软件

Java 在企业系统中具有庞大的使用基础。

很多订单、库存、财务和企业管理应用都运行在 Spring Boot 等 JVM 技术栈上。

Google ADK for Java 提供符合 Java 习惯的 API。

例如:

public class OrderTools {
    public static String getOrderStatus(
        @Schema(
            name = "orderId",
            description = "Order identifier"
        )
        String orderId
    ) {
        return "pending";
    }
}

开发者可以通过 ADK 的工具注册接口,将对应方法提供给 Agent。

在完整项目中,还需要使用适配版本的依赖和导入语句。

Google 官方还介绍了 Java ADK 与 Maven、RxJava、Spring AI 和 LangChain4j 相关集成能力。

对于已经拥有成熟 Java 微服务体系的企业,使用 Java Agent 可以减少引入第二套语言环境的成本。

十一、Kotlin ADK 与 Android Agent

Kotlin 是 Android 原生开发的重要语言。

Google ADK for Kotlin 值得关注的特点是:

它使用 KSP 在编译期间生成工具 Schema。

例如:

class DeviceTools {

    @Tool(
        name = "get_device_status",
        description = "Gets a demo device status"
    )
    suspend fun getDeviceStatus(
        @Param("Device identifier")
        deviceId: String
    ): Map<String, String> {
        return mapOf(
            "deviceId" to deviceId,
            "status" to "ready"
        )
    }
}

以上展示官方 Kotlin ADK 的注解式工具设计;实际使用还需要对应的 KSP 插件、依赖及 Agent 初始化代码。

Google 介绍,Kotlin ADK 可以结合 LiteRT-LM、ML Kit 等能力探索设备端 Agent。

这意味着一部分 Agent 推理和工具调用有机会在本地设备完成。

但是否真正离线运行,取决于使用的具体模型、工具和资源。

不能把所有 Kotlin ADK 应用都理解为默认无需联网。

十二、ADK 如何开发多 Agent 系统?

假设一个企业要构建订单自动处理平台。

可以采用三个 Agent。

Research Agent: 负责查找知识库和订单规则。

Order Agent: 负责验证订单数据。

Notification Agent: 负责在授权后发送结果。

每个 Agent 可以使用不同语言实现。

例如:

Python 用于知识检索。

Go 处理订单服务。

Java 管理通知和企业审批。

然后通过 A2A 协议互相通信。

需要注意,多 Agent 架构不等于每个 Agent 都可以直接访问其他系统的数据。

任务身份、权限范围、数据边界和调用预算仍然需要统一管理。

十三、Google ADK 与 LangChain、LangGraph 有什么区别?

这些框架都可以参与 Agent 开发,但架构和生态重点不同。

Google ADK 强调 Google 云端和模型生态,同时通过 MCP、A2A 提供跨工具、跨 Agent 的标准化连接。

LangChain 主要提供丰富的模型、工具、检索与应用组件。

LangGraph 则特别强调状态化工作流和图结构编排。

对于开发者而言,选择框架时可以关注:

是否需要现有 Google Cloud 集成。

是否已有成熟的 LangChain 工具链。

是否需要确定性图工作流。

团队主要使用哪种语言。

运行环境是否为本地、Cloud Run、Kubernetes 或其他平台。

没有必要认为其中某一种框架可以完全替代其他全部工具。

十四、生产环境必须注意哪些安全问题?

当 ADK Agent 可以访问真实业务工具时,安全风险会明显增加。

建议重点关注:

最小权限: 只开放当前任务需要的工具。

工具输入校验: 防止错误参数影响业务系统。

身份认证: 区分真实用户、Agent 和服务账号。

人工审批: 对删除数据、付款及部署等高风险操作增加审批。

任务审计: 记录关键执行步骤和结果。

资源预算: 限制模型调用次数、Token 消耗和执行时间。

Prompt Injection 防护: 不把外部网页和工具返回内容直接当作系统指令。

这类安全能力不能仅依靠 ADK 自动完成,仍需要业务系统配合。

十五、Agent 怎么进行测试与评估?

一个常见误区是:

只要 Agent 能回答问题,就认为开发完成。

但真正的 Agent 测试必须关注工具执行过程。

例如一个订单查询 Agent:

不仅需要回答正确订单状态。

还需要保证它没有访问无权限订单。

没有调用不必要的工具。

没有在失败后重复扣费。

没有泄露敏感数据。

Google 官方介绍,ADK 提供针对 Agent 轨迹的评估能力。

开发者可以准备一组固定测试任务,检查期望工具调用、实际结果和执行错误。

对于较成熟的项目,还可以在 CI 中运行这些测试。

十六、常见问题

Google ADK 是免费的吗?

框架本身可以用于开发,但模型 API、云端运行环境和外部工具可能产生费用。

ADK 必须使用 Gemini 吗?

不一定。官方介绍了多模型适配能力,具体支持情况依语言、版本和接入方式而异。

Go ADK 能部署到自己的 VPS 吗?

从技术上可以将 Go 服务部署到自己的服务器,但需要自行配置模型认证、工具和运行环境。

MCP 和 A2A 是一回事吗?

不是。MCP 重点解决 Agent 与工具之间的连接;A2A 重点解决 Agent 与 Agent 之间的通信。

哪种语言最适合初学者?

建议优先使用 Python。对于已有生产 Go、Java 或 TypeScript 技术栈的团队,可以直接评估对应语言的 ADK。

十七、总结

Google ADK 五语言架构说明,AI Agent 的开发方式正在逐渐走向成熟的软件工程体系。

企业不再需要为了接入 AI,强制把所有业务迁移到 Python。

开发者可以根据现有技术栈,选择 Go、TypeScript、Java 或 Kotlin 构建 Agent。

同时,通过 MCP 和 A2A,连接跨语言的工具与 Agent。

对于准备开发企业级 AI 平台的团队,真正值得关注的不是支持多少种编程语言,而是:

能否把模型推理、工具执行、工作流、权限和部署统一组织成可维护的生产系统。

Google ADK 为这一方向提供了一套值得研究的技术基础。


官方参考资料

1. Google Cloud:One Agent Development Kit, five languages https://cloud.google.com/blog/topics/developers-practitioners/one-agent-development-kit-five-languages

2. Google ADK 官方文档 https://adk.dev/

3. Python ADK 快速入门 https://adk.dev/get-started/python/

4. Go ADK 快速入门 https://adk.dev/get-started/go/

5. Agents CLI 官方指南 https://adk.dev/get-started/agents-cli/

转载请注明出处: 界智通

本文的链接地址: https://www.jieagi.com/aizixun/152.html

您可能对以下文章感兴趣
评论列表:
empty

暂无评论

技术博客底部