技术深度解析
Agentic Resource Discovery Specification(ARDS)并非一个新的AI模型,而是一个用于代理间通信的协议。其核心在于解决发现问题。在一个多代理系统中,代理A需要知道代理B的存在、代理B能做什么,以及如何与之通信。ARDS通过三个关键组件标准化了这一过程:
1. Agent Resource Registry(ARR): 一个目录服务,代理在此发布其能力。每个代理注册一个“资源描述符”——一个JSON-LD文档,包含代理名称、能力列表(例如,“text-to-image”、“data-visualization”、“code-execution”)、输入/输出模式(使用JSON Schema)、身份验证要求以及定价或速率限制。该注册表设计为联邦制,意味着任何组织都可以托管自己的注册表,并且注册表可以相互交叉引用。
2. Discovery Protocol: 代理使用标准化API查询注册表。查询可以简单(“查找所有能生成图表的代理”)或复杂(“查找一个延迟低于200ms、能处理CSV文件并输出SVG的代理”)。该协议支持语义匹配,这意味着寻找“图表生成”的代理,如果本体对齐,也能找到宣传“数据可视化”的代理。规范中包含一个基于信任分数、正常运行时间和用户评级的排名机制。
3. Invocation Protocol: 一旦发现代理,ARDS定义了如何调用它。这是一个无状态的RESTful调用,带有标准信封。调用代理发送一个包含输入数据和能力标识符的请求。响应代理返回输出。该协议支持同步和异步执行,并为长时间运行的任务提供回调URL机制。身份验证使用OAuth 2.0,并新增了“代理到代理”授权类型,允许一个代理代表用户行事,而无需暴露用户的凭据。
参考实现可在GitHub仓库`google/agent-discovery-spec`(目前拥有4,200颗星)中找到,使用Go编写,包含一个基本的注册表服务器、一个客户端库和一个用于测试的命令行工具。Go实现因其使用gRPC进行高性能内部通信而引人注目,尽管公共API是RESTful的,以实现广泛兼容性。
性能基准测试: Google研究团队发布的早期测试表明,发现协议增加的开销微乎其微。
| 指标 | ARDS发现 | 硬编码API调用 |
|---|---|---|
| 平均发现延迟 | 45 ms | 0 ms(预先已知) |
| P99发现延迟 | 120 ms | 0 ms(预先已知) |
| 调用开销(与直接调用相比) | 8 ms | 0 ms |
| 吞吐量(单注册表节点上的查询/秒) | 12,000 | 不适用 |
数据要点: 对于大多数实时应用而言,发现开销可以忽略不计(平均低于50ms)。8ms的调用开销是为动态互操作性付出的微小代价。真正的瓶颈将是注册表的可扩展性,而非协议本身。
该规范还包含一个“能力图”功能,代理不仅可以描述自己的能力,还可以描述其所依赖代理的能力。这实现了递归发现,即一个代理可以找到一个子代理来完成任务,而该子代理又可以找到另一个,从而创建一个动态的服务调用链。这是对单体代理系统中“依赖地狱”问题的直接解决方案。
关键参与者与案例研究
虽然ARDS是Google的规范,但其成功取决于生态系统的采用。已有几个参与者正在积极布局。
Google(架构师): Google获益最多。通过定义该协议,它可以引导整个代理经济。其Vertex AI Agent Builder已经原生支持ARDS。Google的策略很明确:使ARDS成为在Google Cloud上运行的代理的默认协议,然后将其扩展到开放网络。该公司在开放协议方面有着好坏参半的记录(OpenSocial逐渐衰落,但Kubernetes蓬勃发展),但其将规范和参考实现开源的承诺是一个强烈信号。
OpenAI(怀疑论者): OpenAI尚未认可ARDS。相反,它正在推广自己的“Agent API”和“GPT Actions”,这些实际上是OpenAI生态系统内的专有发现机制。OpenAI的方法更为可控——代理只能在OpenAI平台内发现和调用其他代理。这是经典的“围墙花园”与“开放网络”之争。OpenAI的优势在于其庞大的用户群和模型质量,但其封闭的方法限制了多样化代理生态系统的潜力。
Anthropic(实用主义者): Anthropic已表示对互操作性感兴趣,但尚未承诺支持ARDS。其Claude API包含“工具使用”功能,允许Claude调用外部函数,但这些函数由开发者定义,而非动态发现。Anthropic很可能会支持ARDS,作为其更广泛战略的一部分。