为什么 AI 代理需要未列出号码

发布: (2026年3月10日 GMT+8 15:00)
5 分钟阅读
原文: Dev.to

I’m happy to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (or the portion you want translated) here? I’ll keep the source line and all formatting exactly as you specify.

AI 代理的可见性问题

每本电话簿都有两种号码:列出未列出

  • 列出号码可被任何人搜索。
  • 未列出号码存在,但只有你提供给的人才能联系到你。

AI 代理目前缺乏这种区分,导致可见性问题。

当 AI 代理希望被联系时,它会发布一个 Agent Card —— 一个机器可读的文件,描述其能力。知道其位置的其他代理可以读取该卡并尝试联系。这对公共代理有效,但对应保持隐藏的代理则是一个严重问题。

为什么发现很重要

  • 拥有财务数据、HR 记录或生产系统访问权限的内部代理有一个端点。
  • 任何其他代理——内部或外部,授权或未授权——都可以发现它,探测其能力,并尝试启动会话。
  • 认证在尝试联系 之后 进行,因此代理的存在已经被知晓。

当前框架解决了代理之间 如何 通信的问题,却没有解决 能找到它们的问题。随着代理生态系统的增长,攻击面也在扩大。近期研究强调了会话操控和意外凭证泄露等风险,说明代理正成为需要可见性控制的网络服务。

缺口:代理可以对来电者进行认证,但无法控制谁发现它们。

Source:

未列出号码的代理:SARL

在电话系统中,这一问题通过未列出号码得到了解决。选择性代理可达层(Selective Agent Reachability Layer,SARL) 将相同的原理应用于 AI 代理。

SARL 在技术栈中的位置

  • SARL 不是传输协议,也不取代 A2A。
  • 它在发现过程的更早阶段运行,决定是否应当公开端点。
  • 一旦双方知道彼此的端点,A2A 仍然负责代理之间的通信方式。

可达性层级

层级谁可以发现?
Public(公开)任何已认证的代理(无需策略)
Group(分组)仅限拥有匹配凭证的代理
Private(私有)仅限知道确切令牌的代理
Ephemeral(短暂)针对特定操作的限时令牌

一个代理可以同时公开上述四个层级。例如,查询 Group 令牌的合作伙伴代理能够访问该代理,而不会得知 PrivateEphemeral 令牌的存在。

核心原则

注册表在调用方获取代理端点之前评估访问权限。未授权的调用方会收到沉默(例如 404),使得该代理看起来不存在。

最小 SARL 协议流程

POST /register
{
  "id": "agent-123",
  "tier": "group",
  "credential": "cred-abc"
}
GET /resolve?token=group-token&credential=cred-abc
  • 200 – 返回端点(策略允许)
  • 404 – 未找到代理(策略拒绝)

调用方仅在策略允许时才会收到端点。此机制与传输方式无关,并在不取代 A2A 的情况下对其进行扩展。未使用 SARL 注册表的代理仍然完全兼容 A2A。

演示与规范

  • 实时原型:
    三面板: 注册代理,设置可达性策略,解析端点。 “开始演示” 引导展示了在添加策略时从 404 → 200 的转换。

  • 完整规范:

已知缺口(v0.1)

  • 联邦注册表同步
  • 令牌轮换
  • 速率限制

这些问题已被确认,但不在初始版本的范围内。

征求反馈

我正在寻找在 A2A 上开发的开发者,遇到过发现‑控制问题。如果您已经实现了变通方法——独立端点、手动白名单、网络层隔离——请分享您的做法。

SARL 规范是开源的,采用 Apache 2.0 许可证。欢迎在 GitHub 上提供反馈和贡献。

0 浏览
Back to Blog

相关文章

阅读更多 »