Tools

工具速评:agentgateway 是 Agent 时代的统一数据平面吗

6 min read ·

agentgateway 最近值得单独看一眼。AAIF 项目页把它定位为连接 AI agents、models、tools 和 APIs 的安全可扩展通道;GitHub 仓库描述更直接:它是面向 AI agent 和 MCP server 的下一代 agentic proxy,提供安全、观测和治理。项目官网则强调一个高性能 gateway 同时处理 service、LLM 和 MCP traffic。

这些表述背后有一个真实问题:agent 应用的流量形态已经超过传统 API Gateway 的舒适区。一个生产 agent 可能在同一次任务里调用 OpenAI、Anthropic、本地模型、向量库、MCP server、内部 HTTP API、远端 A2A agent、审计服务和消息队列。每个连接点都有身份、权限、限流、日志、成本和失败恢复需求。如果每个应用自己写 wrapper,很快会变成治理碎片。

agentgateway 的价值假设就是:agent 流量需要统一数据平面。

它试图统一什么

传统网关通常统一的是服务流量:HTTP、gRPC、TLS、路由、鉴权、限流、指标。agentgateway 想把 AI-native 流量也纳入同一层。

第一类是 LLM provider 流量。应用调用不同模型供应商时,需要统一路由、fallback、超时、token 成本和响应日志。

第二类是 MCP 流量。agent 通过 MCP 发现工具和资源,网关可以限制哪些 client 能看到哪些 tool,记录工具调用,做速率限制和策略检查。

第三类是 A2A 流量。agent 之间互相发现、委托任务和交换结果时,网关成为身份和审计边界。

第四类是传统服务流量。很多 agent 最终仍要调内部 REST 或 gRPC API。把它们完全排除在 AI 网关之外,会让调用链断裂。

如果这些都由一个数据平面观察,平台团队就能回答更现实的问题:哪个 agent 调了哪个工具?哪个用户身份触发了调用?哪个模型 route 成本异常?哪个 MCP server 暴露了过多能力?某次错误到底是模型失败、工具失败、网关限流,还是远端 agent 拒绝?

最有价值的能力

我会优先看五个能力。

第一,身份传播。agent 系统最容易混淆 human identity、service identity 和 agent identity。好的网关应该能让调用链上每一步都携带明确主体,而不是全部显示为某个后端 API key。

第二,工具级授权。MCP server 暴露 50 个工具,不代表每个 agent 都应该看到 50 个。网关如果能做 tool discovery 过滤、参数策略和结果审计,价值会很高。

第三,多 provider 路由。LLM 路由不只是成本优化,还涉及数据驻留、模型能力、速率限制和故障切换。网关层可以统一执行这些策略。

第四,观测字段。agent 调用失败后,日志必须能拼出完整时间线:prompt version、model、tool、callee agent、latency、retry、token、policy decision。

第五,失败语义。普通 HTTP 429 或 503 对 agent 来说太粗。MCP 和 A2A 场景最好能返回结构化错误,让上层知道是可重试、需授权、需人工审批,还是策略拒绝。

不该期待什么

agentgateway 不应该替代业务编排器。它不会帮你决定任务分解,不会自动写 prompt,不会证明工具结果正确,也不会替代 LangGraph、Temporal、OpenAI Agents SDK 或你自己的 workflow engine。

更准确地说,它处在 agent 和外部世界之间。它能治理连接,但不能定义产品逻辑。把网关当成编排器,最后会把业务状态塞进路由规则;把编排器当成网关,则会把身份、限流和审计散落到每个 agent 里。

它也不能自动解决 prompt injection。网关可以做内容检查、工具策略和敏感字段过滤,但模型是否被恶意上下文诱导,仍需要 prompt 设计、工具权限、执行确认和结果验证共同处理。

适合试点的场景

最适合试点的是平台团队已有网关经验、同时开始铺 MCP 或 A2A 的组织。

例如,一个企业内部有多个 coding agent:有的跑在 IDE,有的跑在 CI,有的跑在工单系统,有的跑在安全审查平台。它们都要访问 GitHub、Jira、日志平台、云资源和模型 API。如果每个 agent 自己接密钥,安全团队几乎无法审计。agentgateway 可以作为集中入口,把 tool exposure 和身份策略收敛。

另一个场景是多模型路由。应用团队希望同一 agent 在简单摘要时用便宜模型,在代码修改时用强模型,在供应商故障时自动 fallback。把这些策略写进每个服务会重复;放在网关层更容易统一。

第三个场景是跨 agent 协作。A2A 加入 AAIF 后,越来越多团队会尝试远端 agent 委托。这个时候没有网关会很危险,因为跨边界调用天然需要审计和权限控制。

不适合的场景

如果你只有一个后端服务、一个模型供应商、两个工具函数,而且团队还没有明确审计要求,引入 agentgateway 可能过早。你会多一层部署、多一层配置、多一层排障路径,却没有足够收益。

如果你的主要问题是 agent 任务成功率低,网关也不是第一优先级。先修 prompt、工具 schema、状态机、测试和 eval。网关能让调用更可控,但不能把糟糕的任务设计变好。

如果组织没有统一身份系统,网关试点也会受限。agent 治理的核心是“谁能做什么”,没有身份源,策略只能停留在 API key 维度。

试点清单

不要一上来把所有 agent 流量都切进去。建议选一个低风险但真实的 MCP 场景。

pilot:
  clients:
    - support-agent-dev
  tools:
    - docs.search
    - tickets.read
    - tickets.create
  policies:
    - only_support_team_can_create_ticket
    - redact_customer_email_in_logs
    - limit_docs_search_to_60_per_minute
  observability:
    - request_id
    - user_id
    - agent_id
    - tool_name
    - latency_ms
    - policy_decision
    - error_code

试点验收不要只看“能不能跑”。至少要看这些问题。

和其他方案怎么比

如果你已经使用 Envoy AI Gateway、Kong AI Gateway、Gravitee、Tetrate Agent Router 或云厂商 LLM Gateway,agentgateway 的对比点不应只是“支持哪些协议”。更重要的是它是否能同时覆盖 MCP、A2A 和传统服务流量,是否能进入你的 Kubernetes、身份、证书和日志体系。

很多团队会低估迁移成本。网关类工具最难的部分不是启动 demo,而是把证书、RBAC、策略版本、灰度、告警和 on-call 手册接起来。agentgateway 如果要进入生产,就必须按基础设施组件对待,而不是按 npm 包对待。

结论

agentgateway 的方向是对的:agent 流量需要统一数据平面。随着 MCP 工具、A2A agent 和多模型路由变多,身份、授权、观测和审计不能继续散落在每个应用里。

但它适合由平台团队保守试点,不适合被应用团队当成快速增强 agent 能力的插件。先选一个真实 MCP 或 A2A 场景,验证策略表达、日志质量、延迟和故障恢复。如果这些过关,再逐步把更多 agent 流量纳入统一治理。

参考来源:agentgateway 项目页agentgateway GitHubagentgateway 官网agentgateway releases

Frequently asked questions

agentgateway 解决什么问题?
它试图把 agent 到模型、工具、其他 agent 和传统服务的流量放到统一网关里,集中做路由、安全、策略和观测。
它和普通 API Gateway 有什么区别?
普通网关主要理解 HTTP 或 gRPC 服务流量;agentgateway 还关注 LLM provider、MCP 工具调用和 A2A agent 通信等 AI-native 协议。
小团队现在需要上 agentgateway 吗?
如果只有一个应用和几个工具,未必需要。只有当模型、工具、权限、团队和审计需求开始变多,统一网关才明显有价值。
它能替代 LangGraph 或 Agents SDK 吗?
不能。LangGraph 和 Agents SDK 负责业务编排和 agent 行为,agentgateway 更像流量与治理层,二者职责不同。
试点时最该看哪些指标?
重点看接入复杂度、延迟开销、策略表达能力、日志可用性、故障恢复、MCP 与 A2A 覆盖,以及能否接入现有身份系统。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.