ARD 资源发现
ARD(Agentic Resource Discovery) 是面向 AI 资源描述、搜索与发现的开放规范。官方规范署名作者包括 Junjie Bu(Google)、R. V. Guha(Microsoft)和 Shaun Smith(Hugging Face),规范源码见官方 GitHub 仓库。
Nacos 3.3 通过 ARD 协议兼容接口,将已发布的 Agent、Skill、Prompt 和 MCP Server 提供给 AI 应用和工具链,客户端可以先搜索能力,再获取资源内容。
服务端启用、鉴权及完整 HTTP 示例见生态融合中的 ARD 接入指南。本页说明资源如何进入发现结果,以及应用如何使用这些结果。
1. 选择发现方式
| 使用场景 | 入口 |
|---|---|
| 工具链需要通过 ARD 协议搜索多种 AI 资源、浏览目录并下载内容 | ARD 接入指南 |
| 应用需要发现 Agent 的调用定义、运行端点并订阅变化 | RAD 接入指南,RAD 全称为 Remote Agent Discovery |
| 应用直接使用 Nacos 资源接口,或需要访问 AgentSpec | 按资源类型查阅客户端 API |
ARD 当前覆盖 Agent、Skill、Prompt、MCP 四类资源。AgentSpec 通过 Nacos 原生 API 获取,不包含在 ARD 结果中。
2. 让资源可以被发现
在对应资源的管理页面完成创建和发布即可,无需再向 ARD 注册一份:
- 按 Agent、Skill、Prompt或 MCP 指南创建资源,补充名称、描述及业务标签,便于使用者搜索和筛选。
- 按 AI 资源生命周期完成提交和发布,确认资源已启用,
latest指向online版本。仅保存草稿或审核完成,尚未发布的版本不会进入发现结果。 - 确认资源可见范围和调用账号的权限。内置可见性插件允许非 Owner 读取
PUBLIC资源;PRIVATE资源对 Owner、管理员或获得显式可见性授权的身份可见。调用方仍需通过接口鉴权;匿名调用需先开启匿名访问并具备相应接口权限,且只能发现公开资源。 - 使用接入账号查询目录或搜索资源,检查名称、版本和资源地址。
内置策略下,新建 Agent、MCP Server 默认 PUBLIC,Skill、Prompt 默认 PRIVATE。私有发布应先设置 scope 再提交发布;已有私有设置不会被新版本重置。默认值、自定义插件边界和修改方法见可见性插件。
public 命名空间与 PUBLIC 可见范围是两个不同设置,不能仅凭命名空间判断资源是否公开。
搜索返回 latest 指向的当前上线版本,不会把各个历史版本都作为独立结果列出。发布、下线或修改资源后,搜索同步可能需要一些时间;刚启动或升级时,结果也可能暂不完整。排查缺失资源时,先确认发布状态和权限,再重试查询。
3. 筛选和使用结果
ARD 的 type 表示可下载内容的媒体类型,不是 Nacos 的资源类型名。搜索时可用 query.filter.type 限定应用能够处理的内容:
| 资源 | type | 获取内容后如何使用 |
|---|---|---|
| Agent:A2A 表示 | application/a2a-agent-card+json | 交给 A2A 客户端解析 AgentCard。 |
| Agent:Nacos 定义 | application/vnd.nacos.ai-agent+json | 读取版本化的 Agent 定义和调用接口;运行端点发现与订阅使用 RAD。 |
| Skill | application/agent-skills+zip | 获取包含 SKILL.md 及打包资源的 ZIP,供支持 Skill 的工具加载。 |
| Prompt | application/vnd.nacos.ai-prompt+json | 读取 Prompt 内容及变量定义,按应用输入使用模板。 |
| MCP Server | application/mcp-server-card+json | 读取 MCP Server 描述,使用 MCP 客户端连接实际服务。 |
应用从结果中读取 identifier、version、type 和 url,再按 url 下载内容。搜索响应中的资源放在 results,列表响应放在 items,目录响应放在 entries;分页和下载示例见 ARD 接入指南。
3.1. Agent 的两种表示
一个 Agent 在单次 ARD 查询中最多返回一个条目。当前 latest 仅包含 A2A 接口且能导出完整 AgentCard 时,默认返回 A2A 表示;包含多种协议的定义优先返回 Nacos 表示。应用只支持 A2A 时,应按 A2A 媒体类型筛选。
是否能返回 A2A 表示取决于当前 latest 版本。即使旧版本支持 A2A,也不会因此在当前版本的 ARD 结果中返回旧 AgentCard。
Agent 下载内容属于指定版本的定义,不包含运行端点或实时健康状态。声明地址中的默认健康标记也不代表实际探活结果。需要按健康状态选择运行实例时,使用 RAD 发现端点,再由相应协议客户端调用。
3.2. 向量插件与资源发现
ARD 可以通过 AI 向量插件补充相似内容召回,再与关键词结果一起排序。使用方无需改变 ARD 请求格式;服务端的配置、索引验证和自定义 Provider 接入见插件指南。
没有可用向量插件时仍可使用关键词搜索。默认插件使用本地 hashing 向量,实际相关性应结合资源描述和业务查询验证;启用向量不会扩大资源的可见范围,也不会绕过上线条件。
4. 验证接入
- 使用与应用相同的身份和命名空间搜索,确认能找到已发布的目标资源。
- 获取结果中的
url,检查返回的版本和Content-Type是否符合应用预期。 - Skill、Prompt 在工具或应用中验证加载;Agent、MCP Server 还需验证实际服务的网络连通性和调用凭据。
ARD 提供搜索、目录和内容获取。资源的编辑、发布及上下线仍通过 Nacos 控制台、运维 API 或 Maintainer SDK 完成。