news 2026/10/23 2:45:30

用 ADK 把智能体连成一张网:A2A 协议从暴露到调用的 3 步实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用 ADK 把智能体连成一张网:A2A 协议从暴露到调用的 3 步实战

用 ADK 把智能体连成一张网:A2A 协议从暴露到调用的 3 步实战

【免费下载链接】adk-docsAn open-source, code-first toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.项目地址: https://gitcode.com/GitHub_Trending/ad/adk-docs

你的客服智能体想查产品信息,但目录数据在另一个智能体手里,而且它由别的团队维护——这就是典型的智能体协作难题。ADK 用 A2A 协议(Agent2Agent)解决它:把你的智能体暴露出去、把远端智能体接进来,两边写法都很短。下面按"选型 → 暴露 → 消费 → 跑通示例"走一遍最小可行路径。

一、先选型:本地子智能体 vs 远程 A2A 智能体

同一个 ADK 工程里,协作有两种形态:sub_agents里的本地子智能体,和挂在独立服务上的远程 A2A 智能体。区别一张表说清:

维度本地子智能体远程 A2A 智能体
进程归属和主智能体同进程独立服务,跨进程/跨机器
调用开销内存调用,无网络与序列化网络请求 + 序列化,延迟更高
维护方你自己可以是别的团队/组织/第三方
语言与框架与主智能体相同任意语言、任意框架

判断标准,照着选就行:

  • 对方是别的团队或组织维护的服务 → 用 A2A。
  • 核心逻辑是 Python、要对接 Java 遗留系统 → 用 A2A 做标准化通信层。
  • 要平台化、给多个团队的智能体定交互契约 → 用 A2A。
  • 同进程内部拆模块、高频低延迟、需要直接共享主智能体状态 → 用本地子智能体。

二、暴露一个 A2A 智能体的两种方式 ⚙️

先认识一个概念:AgentCard ≈ 智能体的名片——写清"我是谁、会做什么、去哪找到我",其他智能体全靠它发现你。

to_a2a():两行代码的极简暴露

最省事的方式:把现有 Agent 包一层,卡片自动生成。下面的写法把 Agent 对象转成 A2A 应用:

from google.adk.a2a.utils.agent_to_a2a import to_a2a a2a_app = to_a2a(root_agent, port=8001)

to_a2a()会从你的 Agent 配置里提取 skills、capabilities、描述,生成 well-known 端点可访问的卡片。想自己控制内容时,给它传agent_card参数,值可以是AgentCard对象,也可以直接指到一张卡片 JSON 文件的路径。拿到的a2a_app用 uvicorn 起服务即可。

adk api_server --a2a:可调试、可多智能体托管

需要adk web调试,或者一个目录里挂着多个智能体时,用内置的 CLI 暴露方式更合适。它只暴露子目录里带了agent.json(即 AgentCard)的智能体,卡片要手写。启动命令按下面的形式,指向含多个智能体子目录的父目录:

adk api_server --a2a --port 8001 contributing/samples/a2a/a2a_basic/remote_a2a

这样一台服务器就能同时对外服务多个 A2A 智能体。

三、消费远程智能体:一个 RemoteA2aAgent 就够

接入远端智能体只需一个构造函数。agent_card指向远端服务的 well-known 卡片地址,这里示例是 8001 端口的素数检查智能体:

from google.adk.agents.remote_a2a_agent import RemoteA2aAgent prime_agent = RemoteA2aAgent( name="prime_agent", description="判断数字是否为素数的远程智能体。", agent_card="http://localhost:8001/a2a/check_prime_agent/.well-known/agent-card.json", )

之后把prime_agent塞进root_agent的sub_agents列表即可。注意一点:调用远端智能体的写法和调本地子智能体几乎一样,协议转换、请求路由、数据格式都由 ADK 兜底,你不用碰网络细节。

四、跑通 a2a_basic 示例:从安装到调通

最小验证环境三步走。第一步,装依赖:

pip install google-adk[a2a]

第二步,起远端智能体服务。8001 端口必须和adk web的默认端口 8000 错开,否则本机自测会撞端口。a2a_root示例用to_a2a()暴露(本地起服务):

uvicorn contributing.samples.a2a.a2a_root.remote_a2a.hello_world.agent:a2a_app --host localhost --port 8001

a2a_basic示例则走adk api_server --a2a托管check_prime_agent(其目录里带agent.json):

adk api_server --a2a --port 8001 contributing/samples/a2a/a2a_basic/remote_a2a

第三步,打开消费端的调试界面并选中对应的 root agent:

adk web contributing/samples/a2a/

在页面对 root agent 输入"掷一个 10 面骰子,判断结果是不是素数"。调用链是:root agent 先委托本地 roll agent 掷骰,拿到点数后经 A2A 协议交给远端的 prime agent 判断,最后汇总答复。两个 Python 示例都在 adk-python 仓库的contributing/samples/a2a_basic与contributing/samples/a2a_root目录下;Go 版本可直接看 examples/go/a2a_basic/。

A2A 在 ADK 中仍属实验特性(Python、Go、Java 可用)。别把它用于高频、低延迟、强共享内存的内部调用——那种场景留给你同进程的本地子智能体。细节看官方文档 docs/a2a/index.md,建议先本地跑通 a2a_basic,再考虑跨团队部署。

【免费下载链接】adk-docsAn open-source, code-first toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.项目地址: https://gitcode.com/GitHub_Trending/ad/adk-docs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 2:45:25

YimMenuV2 5分钟注入指南:GTA5增强版菜单从部署到自定义脚本

YimMenuV2 5分钟注入指南:GTA5增强版菜单从部署到自定义脚本 【免费下载链接】YimMenuV2 Experimental menu for GTA 5: Enhanced 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenuV2 在GTA 5增强版的私人会话里,你想让角色免疫伤害、把…

作者头像 李华
网站建设 2026/10/23 2:43:51

USB CDC class

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 2:43:03

基于 Spring Boot 的奖助学金申报与评审系统设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/23 2:42:16

Path of Building PoE2:10 分钟定下你的 BD

Path of Building PoE2:10 分钟定下你的 BD 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 你盯着天赋树看了二十分钟,第一个节点还是不知道该点哪;捡到一件多行词条的…

作者头像 李华