控制 Agent 访问权限
对于 Agent-to-Agent(A2A)流量,每个调用方 API Key 都定义了该调用方可以访问哪些已注册 Agent。除非 API Key 的 allowed_agents 授权涵盖 Agent 的注册名称,否则 AISIX 会拒绝 Agent 调用和 Agent Card 发现请求。
当共享同一网关的不同客户端需要访问不同上游 Agent 时,请分别配置授权。本指南介绍 AISIX 如何匹配 Agent 名称和模式、如何通过 AISIX Cloud 或 resources.yaml 更新授权,以及请求超出授权范围时的行为。
前置条件
请完成 AISIX Cloud 或开源 AISIX 网关的配置 Agent 网关。如需验证修改后的授权,请保持 Shell、网关和测试 Agent 运行。
Agent 访问权限的工作原理
allowed_agents 是调用方 API Key 上的 Agent 名称模式列表。如果省略该字段,或将其设置为 null 或空列表,则该 API Key 没有 A2A Agent 访问权限。
每个模式都与 Agent 注册的 name 进行匹配:
| 条目 | 授予的权限 | 示例 |
|---|---|---|
| 精确名称 | 一个 Agent。 | invoice-processor 仅授予对该 Agent 的访问权限。 |
| 名称模式 | 名称与一个 * 通配符匹配的 Agent。 | invoice-* 授予对名称以 invoice- 开头的所有 Agent 的访问权限。 |
* | 所有已注册 Agent。 | * 授予对当前和未来 Agent 的访问权限。 |
如需最小访问权限,请使用精确名称。只有当调用方可以访问当前和未来的所有 Agent 时,才使用 *。
匹配器与 MCP 工具模式使用的单 * Glob 匹配器相同。一个条目最多只能包含一个 *。AISIX Cloud Admin API 会以 400 拒绝含两个及以上 * 的条目。resources 文件不做这项检查,但这类条目不授予任何 Agent。