Agent 网关概览
AISIX AI 网关可以在自己的网关路径上代理已注册的上游 A2A(Agent-to-Agent)Agent。调用方使用 AISIX 调用方 API Key 访问 /a2a/<agent>,AISIX 再把 A2A JSON-RPC 请求转发给上游 Agent。上游凭证保留在网关侧,调用方不会接触到这些凭证。
这样,Agent 流量就可以与模型流量共用同一个认证、访问控制、策略和遥测边界。一个调用方 API Key 可以同时控制调用方可使用的模型、可调用的 MCP 工具,以及可访问的 A2A Agent。AISIX 会认证调用方、检查 Agent 访问权限、应用限流和预算、使用你配置的上游凭证转发请求,并记录 A2A 用量遥测。
A2A Agent 是一个网关注册项,代表一个通过 HTTP 和 JSON-RPC 2.0 提供 A2A 协议的上游 Agent。本页介绍 Agent 网关,并演示一个最小端到端配置。深入了解各主题请参见:
- 上游认证:AISIX 如何使用
none、bearer或api_key认证到每个上游 Agent。 - 按 Key 控制 Agent 访问:调用方 API Key 上的
allowed_agents如何决定该 Key 可访问哪些 Agent。 - 限流与预算:调用方 API Key 的限流和预算如何治理 A2A 调用。
- 可观测性:A2A 调用会产生哪些用量事件和指标。
Agent 网关如何工作
每个上游 Agent 都会以一个 display_name 注册为网关资源。AISIX 会在代理监听器上通过 /a2a/<display_name> 暴露该 Agent,并把每个 JSON-RPC 请求体原样转发给上游 Agent。
由于 AISIX 会原样转发请求体,调用方需要使用目标 Agent 固定的 A2A 传输版本。网关不会在 0.3 和 1.0 格式之间做协议转换,因此调用方必须发送该目标 Agent 注册时指定的版本。
准备工作
请先准备以下内容:
- 一个 Admin 和代理监听器都可用的自托管 AISIX 网关。
- 网关
config.yaml中的 Admin Key。 - 一个通过 HTTP 提供 A2A 协议的上游 Agent 及其 URL。
- 一个 A2A 客户端将发送给 AISIX 的调用方 API Key。
在托管部署中,可以通过控制面工作流注册 A2A Agent 并授予 Agent 访问权限;概念相同,只是管理界面不同。该工作流适用于 AISIX Cloud 和 AISIX Cloud On-Premises。
注册 A2A Agent
为上游端点创建一个 A2A Agent 资源。display_name 会成为该 Agent 暴露路径中的片段(/a2a/<display_name>),因此必须是单个 URL 路径片段,且在网关内唯一。下面示例注册一个不需要上游凭证的 Agent;其它认证方式请参见上游认证。
export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"
curl -sS -X POST "http://127.0.0.1:3001/admin/v1/a2a_agents" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"display_name": "invoice-processor",
"url": "https://agents.example.com/invoice",
"protocol_version": "0.3",
"auth_type": "none"
}'
你会看到类似响应:
{
"id": "1d95ac57-7f27-46a4-b5a3-55d3c3ad0a12",
"value": {
"display_name": "invoice-processor",
"url": "https://agents.example.com/invoice",
"protocol_version": "0.3",
"auth_type": "none",
"enabled": true
},
"revision": 1
}
如果后续需要更新、查看或删除该 Agent,请复制高亮的 id。
关键字段如下:
| 字段 | 说明 |
|---|---|
display_name | Agent 暴露路径中的片段(/a2a/<display_name>)。必须非空、不能包含 /,且在网关内唯一。重复名称会以 409 拒绝。 |
url | 上游 Agent 的 A2A 服务端点,通过 HTTP 和 JSON-RPC 2.0 访问。 |
protocol_version | AISIX 为该 Agent 固定的 A2A 传输格式:1.0(默认)表示 protobuf-JSON 封装,0.3 表示带 kind 区分的 JSON-RPC 封装。 |
auth_type | AISIX 认证到上游 Agent 的方式:none(默认)、bearer 或 api_key。详见上游认证。 |
secret | 所选 auth_type 的上游凭证。凭证保留在网关侧,不会发送给调用方客户端。 |
timeout_ms | 单次上游操作超时时间,单位毫秒。默认 30000(30 秒)。 |
enabled | 是否提供该 Agent。默认 true;设置为 false 时会保留注册,但 /a2a/<display_name> 返回 404。 |