文章摘要
2026 年 6 月,Google 联合 Microsoft、NVIDIA、Cisco、Hugging Face 等 11+ 巨头发布 Agentic Resource Discovery(ARD)开放规范。这是 AI Agent 生态从「各自为战」走向「互操作」的里程碑事件——类似于 1990 年代 HTTP 统一了 Web 协议。本文深度解析 ARD 的架构设计(Catalog + Registry 双层模型)、与 MCP/A2A 的互补关系、以及它将如何重塑 Agent 开发范式。
1问题背景——Agent 生态的「巴别塔困境」
2026 年上半年,AI Agent 开发面临一个尴尬的现实:模型能力越来越强,但 Agent 之间的互操作性几乎为零。
碎片化的现状
每个平台都在建造自己的围墙花园:
- Microsoft Copilot 的 Agent 无法直接调用 Salesforce Agentforce 的工具
- Google Vertex AI 上部署的 Agent 发现不了 Databricks 上的数据服务
- 企业内部同一个能力被不同部门用不同框架重复实现 3-5 次
- 开发者每接入一个新平台,就要重写一套集成代码
这不是技术问题,是生态问题。就像 1990 年代初期,各家 BBS、CompuServe、AOL 各自有自己的通信协议——直到 HTTP 统一了 Web。
为什么模型厂商不解决这个问题?
OpenAI、Anthropic、Google 都在做自己的 Agent 框架(Assistants API、Claude Tool Use、Vertex AI Agent Builder),但它们的商业利益决定了它们希望开发者留在自己的生态里,而不是跨平台互操作。
这就是为什么 ARD 的出现如此重要——它不是由一家公司主导的封闭标准,而是由 11+ 行业巨头联合发布的开放规范。
💡 一句话理解
理解 ARD 的价值,先要理解当前 Agent 开发的痛苦:80% 的时间花在集成,只有 20% 花在真正的业务逻辑。
2ARD 架构解析——Catalog + Registry 双层模型
ARD 的设计哲学是极简 + 去中心化——它借鉴了 DNS 和 Web 的成功经验,让任何 Agent 都能像访问网页一样发现全球的能力。
核心概念 1:Catalog(能力目录)
任何服务提供者只需在自己的域名根目录放一个 ai-catalog.json 文件,就能向全球 Agent 宣告自己提供的能力。
Catalog 文件的核心结构包含:version(版本号)、provider(提供者名称)、capabilities 数组(能力列表)。每个 capability 包含 id、name、description、inputSchema、outputSchema、auth 和 pricing 字段。
关键设计决策
- 基于 DNS 的信任:域名所有权 = 身份验证。不需要中心化 CA 机构
- 自描述:每个能力自带 input/output schema,Agent 可以直接理解如何调用
- 去中心化:没有中心服务器,catalog 文件就在你自己的域名上
核心概念 2:Registry(注册索引)
Registry 是 Agent 的「搜索引擎」——它爬取全球发布的 catalog 文件,建立可搜索的索引。
工作流程: Agent 发出意图(如「我需要一个能分析文本情感的工具」)→ Registry 语义匹配全球 catalog → 返回能力描述 + 调用端点 + 认证方式 → Agent 直接调用服务端点。
Registry 不中转流量——它只负责「发现」。实际的 API 调用是 Agent 直接与服务提供者之间进行的。
为什么这个架构能成功?
| 设计决策 | 原因 |
|---|---|
| 基于 DNS 的信任 | 复用现有互联网基础设施,不需要新建 PKI |
| JSON 格式 | 所有语言都能解析,零门槛 |
| 去中心化 | 单点故障 = 不存在;抗审查 |
| 语义索引 | Agent 用自然语言描述需求,不需要精确匹配 API 名称 |
{
"version": "1.0",
"provider": "Example Corp",
"capabilities": [
{
"id": "sentiment-analysis",
"name": "情感分析 API",
"description": "分析文本的情感倾向(正面/负面/中性)",
"inputSchema": { "type": "string", "description": "待分析文本" },
"outputSchema": {
"type": "object",
"properties": { "sentiment": { "type": "string" } }
},
"auth": "oauth2",
"pricing": "free-tier:100/day"
}
]
}💡 一句话理解
把 ARD 想象成 Agent 世界的 DNS + npm registry。Catalog 是 package.json,Registry 是 npm search。
⚠️ 常见踩坑
Catalog 文件必须 HTTPS 托管——HTTP 的 catalog 会被安全客户端拒绝。这是防止中间人攻击的硬约束。
3ARD vs MCP vs A2A——三层协议的互补关系
很多开发者问:ARD 和 MCP、A2A 是什么关系?是竞争还是互补?
答案是:它们解决不同层次的问题,是互补关系。
三层协议栈
| 层次 | 协议 | 解决的问题 | 类比 |
|---|---|---|---|
| 发现层 | ARD | "有哪些能力可用?在哪里?" | DNS / 电话簿 |
| 通信层 | A2A (Agent-to-Agent) | "Agent 之间怎么对话?" | HTTP / TCP |
| 工具层 | MCP (Model Context Protocol) | "Agent 怎么调用具体工具?" | 函数调用规范 |
具体协作流程
一个完整的跨平台 Agent 协作场景分为三步:
第一步(ARD 发现): Agent A 通过 ARD Registry 发现 Agent B 提供「翻译」能力
第二步(A2A 协商): Agent A 通过 A2A 协议向 Agent B 发起协作请求
第三步(MCP 执行): Agent B 内部通过 MCP 调用具体的翻译工具完成任务
关键区别:
为什么不是「一个协议解决所有问题」?
因为关注点分离是工程的基本原则。HTTP 只负责传输,不负责服务发现(那是 DNS 的事),也不负责数据格式(那是 JSON/XML 的事)。分层让每一层可以独立演进。
4参与阵容分析——为什么 Google 能促成这次合作?
ARD 的参与方名单堪称豪华:Google、Microsoft、Cisco、Databricks、GitHub、GoDaddy、Hugging Face、NVIDIA、Salesforce、ServiceNow、Snowflake。
为什么这些竞争对手能坐在同一张桌子?
因为 Agent 互操作性的「蛋糕」远大于各自围墙花园的收益。
行业调研显示:
- 跨平台集成是企业 Agent 部署的头号痛点
- 平均一个企业需要对接多个不同的 Agent 平台
- 每个集成项目耗时数周到数月不等
这不是技术问题——这是经济损失。ARD 的价值主张是:标准化互操作层,让所有平台都能接入更大的市场。
各方的战略考量
| 公司 | 动机 |
|---|---|
| 通过标准制定权巩固云平台领导地位(类似 Kubernetes 策略) | |
| Microsoft | 保护 Copilot 生态的开放性,避免被锁定在单一模型 |
| NVIDIA | Agent 互操作 = 更多推理需求 = 更多 GPU 消耗 |
| Salesforce | Agentforce 需要接入外部能力才能对企业有价值 |
| Hugging Face | 开源社区的天然盟友,开放标准 = 开源优势 |
| Snowflake | 数据服务需要通过 ARD 暴露给 Agent 生态 |
缺席者意味深长
OpenAI 和 Anthropic 不在首批支持者名单中。 这不难理解——它们的商业模式依赖于开发者留在自己的 API 生态里。ARD 的去中心化发现机制与它们的「中心化平台」策略存在根本张力。
但这不重要。 ARD 的价值在于企业端——当 Salesforce、ServiceNow、Snowflake 都支持 ARD 时,企业 Agent 的互操作性问题就解决了大半。OpenAI 和 Anthropic 最终要么加入,要么面对被企业市场边缘化的风险。
💡 一句话理解
关注标准制定,而不是关注模型发布。模型每季度迭代,但标准影响十年。TCP/IP、HTTP、SMTP——控制标准的人控制时代。
⚠️ 常见踩坑
不要以为 ARD 发布就等于问题解决。标准从发布到广泛采用通常需要 2-3 年。现在学习是提前布局,不是立即变现。
5开发者行动指南——如何在项目中接入 ARD
ARD 目前处于规范发布阶段(v1.0),预计 2026 Q3 开始有首批 Registry 服务上线。以下是开发者可以立即开始做的事情。
5.1 发布你的能力(Catalog 端)
最简接入方式:在你的 API 域名根目录放一个 ai-catalog.json。
步骤:
- 按 ARD 规范编写 ai-catalog.json(参考第 2 节的示例)
- 确保 HTTPS 可访问(HTTP 会被拒绝)
- 在响应头添加 X-ARD-Support: true
- (可选)向公共 Registry 提交你的 catalog URL
5.2 消费外部能力(Client 端)
使用 ARD Client SDK 发现并调用外部能力。核心流程:初始化 Client → 用语义搜索发现能力 → 选择最佳匹配并调用。
5.3 企业接入策略
| 阶段 | 时间 | 行动 |
|---|---|---|
| 观望学习 | 现在 | 理解规范,评估现有 API 的 catalog 化工作量 |
| 试点接入 | Q3 2026 | 选 1-2 个非核心 API 发布 catalog,用 Client SDK 消费 1 个外部能力 |
| 规模化 | Q4 2026 | 全量 API catalog 化,接入企业 Agent 平台 |
| 深度集成 | 2027 | ARD 纳入 API 设计规范,新 API 默认发布 catalog |
5.4 与现有架构的整合
ARD 设计上与以下技术栈兼容:
- API Gateway(Kong、Apigee):可在网关层自动生成 catalog
- 服务网格(Istio、Linkerd):ARD 发现结果可注入 sidecar 路由
- 身份认证(OAuth 2.0、OIDC):ARD 原生支持标准认证协议
不需要推翻现有架构——ARD 是在现有基础设施之上加一层「发现能力」。
// ARD Client SDK 示例(TypeScript)
import { ARDClient } from '@ard/client';
const client = new ARDClient({
registries: ['https://registry.ard.dev'],
authProvider: myOAuthProvider,
});
// 用语义搜索发现能力
const results = await client.discover({
intent: '分析用户评论的情感倾向',
inputType: 'text',
outputType: 'json',
});
// 选择最佳匹配并调用
const sentiment = await client.invoke(results[0], {
input: '这个产品太棒了!',
});
console.log(sentiment); // { sentiment: 'positive', confidence: 0.95 }💡 一句话理解
现在最好的准备方式:把你现有的 API 文档整理成 JSON Schema 格式。这就是 catalog 的核心内容。
⚠️ 常见踩坑
不要在 catalog 中暴露内部实现细节。ARD catalog 是「能力声明」,不是「架构文档」。只暴露调用者需要的信息。
🎯 相关面试题
巩固本篇知识点,备战 AI 岗位面试。
- 中级概念高频查看详解 →
什么是 A2A 协议?它与 MCP 协议是什么关系与区别?
A2A 是 Google 2025 主导、Linux 基金会托管的开放协议,让不同厂商/框架的 Agent 互相发现与协作;与给单 Agent 接工具的 MCP 纵横互补。
- 中级概念高频查看详解 →
Agent Skill 是什么?它与 MCP、Function Calling 有何区别?
Function Calling 是模型按 schema 输出一次调用的底层机制,MCP 是标准化接入工具的协议,Skill 是把"一套做事方法"打包成可按需加载的能力包;三者分层且可组合。
- 中级概念查看详解 →
MCP 的传输方式有哪些(stdio / SSE / Streamable HTTP)?如何选型?
MCP 传输层承载 client↔server 的 JSON-RPC 消息:本地集成选 stdio,远程/多客户端选 2025 新版 Streamable HTTP,旧版 HTTP+SSE 正被淘汰。
- 中级概念查看详解 →
什么是 ACP 协议?它有哪两个不同含义?
ACP 缩写对应两个不同协议:①Agent Communication Protocol(IBM BeeAI 提出、后捐入 Linux 基金会,基于 REST 的 Agent↔Agent 跨框架通信,与 Google A2A 同类并趋于整合);②Agent Client Protocol(Zed 提出,标准化"代码编辑器/IDE↔编程 Agent"通信,类比 LSP/MCP,基于 JSON-RPC)。