主题
第 9 章 · AI 网关与统一流量治理
核心观点 + 逻辑框架(运行篇 · 流量治理入口)
▍速览
一句话版(开场,约 20 秒)
模型、工具、Agent 的流量怎么治理?AI Gateway 在三条访问路径上建立一致的策略执行点:LLM Gateway 管路由与预算(严格预算=原子预留+可证明上限)、MCP Gateway 管工具鉴权(发现≠授权)、Agent Gateway 管入口与任务关联。三种语义可组合,但都不拥有业务 Task 与 Outcome 的权威。
一段话版(展开,约 60–90 秒)
模型、工具、Agent 的调用流量怎么治理?答案是 AI Gateway,在三条访问路径上建统一的策略执行点。这里要分清三种语义,不是三个产品。LLM Gateway 管模型调用:路由选模型、失败降级、按 token 计量。关键是预算要分四档——速率限制管 QPS,时间窗管累计用量,余额配额近实时扣,严格预算才是硬上限,要原子预留、最大消耗可证明、幂等结算;还有重试预算必须跨层传递:SDK 一次逻辑调用最多 3 次、网关每次转发最多 3 次,乘积可放大到 9 次到达上游;供应商侧是否重投还不受控制。MCP Gateway 管工具调用:工具出现在清单里只说明被通告,不等于已授权、健康、可执行;发现、授权、执行要分开,协议说明不是身份证明,鉴权一定在转发之前。Agent Gateway 管入口:身份路由、租户配额、任务关联——Task 暂停和恢复是业务模型的事,网关只保留关联信息,让入口故障不丢调用和任务的关系。最后统一治理四条线:身份映射一致、审批未决不执行、批准后重新准入、审计记录不等于业务证据。效果好不好,用 Task 账本算总成本,不用单次请求成功率。
- 三种语义:LLM(路由/降级/计量)|MCP(代理/鉴权/隔离)|Agent(入口/配额/关联)
- 一条边界:网关管准入转发记录,不定义 Task/State/Outcome
- 预算四档:速率限制→时间窗→余额配额→严格预算(原子预留)
- 重试纪律:错误分类先行;预算跨层传递防乘积放大
- 治理闭环:身份映射·审批重准入·审计≠Evidence·Evaluation 无发布权
一句话(收尾)
把边界设计清楚,比把更多功能集中到网关里更重要——网关只保证准入、转发与记录的一致性。
▍逻辑框架(记忆卡片)
① 命题:一致的策略执行点与边界
集中治理 ≠ 集中所有执行 · 共享身份与策略管理 · 按流量类型隔离数据面七组件边界:API Gateway / Service Mesh / Registry / Harness / Agent Runtime / 业务应用 / 获授权 Verifier 各司其职;Registry 被网关或控制面查询,不因集成而成为网关业务职责
AI Gateway 在模型、工具、Agent 的访问路径上建立一致的策略执行点,并与任务执行系统协同。网关三项不承担:不判断模型输出是否满足业务成功标准;不把“工具可发现”等同于已授权 / 健康 / 可执行;不定义 Task、业务 State、Checkpoint 或恢复语义。
② AI 流量新增的四类约束
- A 长连接与流式输出:SSE 只是传输形式,字节切片可能含半个 / 多个事件,首 token ≠ 首字节
- (五类超时:连接 / 首字节 / TTFT / 流式空闲 / 总时限)
- B 大请求体与上下文:缓冲内存成本 · 增量解析
- C 按 token 计费:准入估算 ≠ 结束实际;限流 / 配额 / 预算分开建模
- D 多轮长程任务:亲和利于缓存复用,但 KV cache 复用是性能优化,不是业务状态恢复
③ LLM Gateway:路由、重试与预算
- 模型选择与端点选择分开:静态映射 / 权重(灰度主备,映射变更须回归)|成本感知路由(看返工成本,不只单次价格)
- 语义路由(分类器须评估 + 回退路径)|推理端点选择(队列 / 在途 / KV cache 信号)
- 可靠性:错误分类先于重试:限流看重置时间;服务端错误看调用语义;认证错误终止修复;上下文超限不简单截断历史;“尚未收到响应体 ≠ 上游尚未执行”;每次尝试独立 attempt 标识
- 重试预算跨层传递:SDK / 网关 / 供应商各设上限会乘积放大(3×3=9 次);总截止为绝对时间,剩余额度由调用方给出,网关按 call_id 原子扣减,耗尽返回明确错误
统一接口先声明能力子集;不支持的参数返回错误,不静默忽略差异 · 留痕对账:适配器版本 · 实际 provider / 模型 · 请求模型别名 · 原始用量来源,协议转换后可追溯
预算四档,只有严格预算能承诺硬上限:
- A 请求速率限制:QPS 每秒请求数,管准入速度,不管 token 总成本
- B token 时间窗:累计用量 · 按窗口结算,窗口内软上限
- C 余额型配额:准入查余额、结束扣减,近实时,非严格并发预算
- D 严格预算:可证明最大消耗 + 原子预留 + 幂等结算退款
“请求前检查、响应后扣减”无法保证硬上限(余额 100、两个最大消耗 80 同时通过 → 160);预留覆盖输入 + 受约束最大输出 + 计费项,重试单独占额度,token 配额与金额预算分开。
④ MCP Gateway:发现、授权与执行分离
- 准入四步:认证(谁在调用,独立于协议)→ 协议校验(版本 / 头部镜像 / 方法 / 报文)→ 授权(主体 / 工具 / 参数)→ 转发(重新构造)
发现 ≠ 授权:清单中出现只说明被通告,调用权 / 依赖健康 / 执行成功仍需独立判断 · 协议说明 ≠ 身份证明:逐请求元数据只服务协议校验与转发,头部辅助分类,执行前验证与正文一致tools/list 过滤 ≠ tools/call 不再鉴权版本基线:Legacy(initialize)/ Modern(逐请求元数据 + server/discover);2025-03-26 Streamable HTTP、2025-11-25 实验性 Tasks、2026-07-28 Tasks 移至可选扩展桥接方向显式声明:仅 Modern 下游 → Legacy 上游;Legacy 下游到 Modern-only 上游的反向路径未声明支持REST-to-MCP:参数正确编码,限制可变主机 / 路径 / 出站目标防 SSRF;字符串前缀判断“只读 SQL”不可靠,须结合受限账户与资源端权限四类工具场景:数据查询 / 支付 / 集群管理 / 文件读取,Schema 校验之外另约束范围、权限、阈值、目录与数据分级等业务策略
- 安全:默认拒绝;ACL 从服务级白名单细化到高风险工具参数;有效权限 = 调用者授权 ∩ 工作负载授权 ∩ 任务委托 ∩ 资源端限制
- 网关“不可绕过”前提:凭证不下发 + 出口网络受控 + 服务发现与域名解析收敛 + 直连路径禁止 + 旁路审计;纵深防御 = 框架 + 网关 + 资源服务器,没有任何一层能宣称绝对安全
⑤ Agent Gateway:入口、任务关联与租户
- 关联对象权威各归其位:Task = 业务任务模型 | Session = 会话所属系统 | Turn = Harness
- Call/Attempt = 调用系统与执行点 | State/Checkpoint = 业务模型 + Runtime | Outcome = 业务应用或授权 Verifier
- (网关只保留关联信息:入口重启不应成为任务真相丢失的原因;Task 暂停、保存、恢复由执行系统决定)
- 路由 = 选择入口能力,不是判断执行结果:目标不可用返回暂不可路由或转恢复入口,不能扔到空运行时声称“已续跑”;ACP(v2 仍 Draft)与 A2A(v1.0.0 正式)成熟状态不同
- 租户隔离:身份(人 / 工作负载 / Agent / Task)与财务归属(组织 / 团队 / 项目)是正交维度;并发隔离区分入口在途与 Runtime 活动任务;借用空闲容量 ≠ 可收回已执行操作
Task 分层账本:task_id → session_id → turn_id → call → attempt_id 归因链路;网关日志只是调用账本的一部分,Trace 不是财务权威账本;模型返回的 tool_calls 是模型输出 ≠ 工具已执行。
⑥ 统一治理:身份映射 · 审批重准入 · 审计证据三条横切治理线
- 主体映射(身份):清除客户端伪造内部身份头 → 委托核验(与调用者原权限取交集,不因协议自述扩大)→ 凭证处理(按显式策略生成 / 委托,默认不透传下游凭证)→ 记录(审计 + 账本)
- 拒绝分支与结果分支同等重要:未通过认证 / 鉴权 / 预算准入 → 终止并记录判定;审计既记准入依据,也记执行结果
- 审批约束转发:挂起期间不长时间持有 HTTP 连接,等待由业务侧承接;审批超时 ≠ 自动降级只读(改变请求含义须重新授权);执行结果未知不盲目重试
审批未决不执行 · 批准后必须重新准入:身份 / 委托 / 参数摘要 / 预算可能已变 · 审计材料 ≠ 业务 EvidenceFinOps:组织 / 团队 / 项目映射保留历史有效期;实际模型 · 缓存 token 类别 · 价格版本 · 币种 · 账期共同决定费用策略集中管理、执行分布在各入口与资源端,经控制面发布;命中规则、重置时间与申诉渠道可解释,同时信息最小披露
审计回答**“谁何时申请了什么、命中哪条策略”**;任务成功与否由成功标准与 Verifier 判定,审计记录不能充当业务证据。
⑦ 控制面联动:受控变更链
- 受控变更链:观测与诊断 → 候选建议 → 构建与验证 → 治理授权与发布门禁 → 灰度与控制面发布 → 运行反馈回流
- 控制面管声明式配置 / 版本 / 发布状态,数据面执行,Registry 提供目录与健康信号;模型服务 / MCP Server / Agent Runtime 是三种不同角色
- 区分运行时自适应与治理策略变更:自适应端点选择只在已授权候选集合和约束内工作,不能自行扩大模型范围 / 权限 / 预算,也不能从“有自适应评分”推导质量必然改善
- 闭环必须可验证、可停止、可回滚:回滚 ≠ 恢复配置文本,还要处理已执行工具副作用、未结算额度和运行中任务;观测不可用时是否继续执行由风险与审计要求决定
Evaluation 不天然拥有发布授权:只产评分 / 诊断 / 候选,发布授权由治理门禁决定五类观测数据:用量成本 · 时延 · 可靠性 · 治理 · 关联;OTel gen_ai.* 信号语义仍处 Development,落地需保留口径与不确定性
落地效果用 Task 账本算总成本,不用单次请求成功率衡量。
▍逻辑全景图 · 图 1 · 统一治理调用链:LLM / MCP / Agent 三层网关 × 身份 · 审批 · 证据三条横切治理线
调用方经 Agent Gateway 进入入口层,分流到模型调用与工具调用两条路径;身份、审批、证据三条横切治理线作为横切约束贯穿三层网关。
- Agent Gateway 入口核心
- LLM Gateway 模型调用
- MCP Gateway 工具通道
- 审批 / 拒绝分支
- 审计证据
读法:① 顶部命题卡钉住网关定位——只做准入、转发、记录;② 左侧主链:调用方 → Agent Gateway(入口与关联),分流到 LLM Gateway(模型路由 / 重试 / 预算)与 MCP Gateway(发现 / 授权 / 执行分离);③ 右侧三张语义卡——身份做主体映射,审批约束转发,审计材料不等于业务 Evidence;橙色虚线表示审批挂起后批准重新准入。面试一句话:三层网关共享一致的策略执行点,身份、审批、证据三条横切治理线可组合,但网关不拥有 Task 与 Outcome 权威。
▍逻辑全景图 · 图 2 · 责任边界与预算四档:发现≠授权 / 协议说明≠身份证明 / 审批未决不执行 / 审计≠Evidence / Evaluation 无发布权
五张边界卡把五类"不等号"钉在各自权威归属上;下半区预算四档从软约束到硬上限,只有严格预算能原子预留并证明最大消耗。
- MCP / 执行通道
- 审批 / 风险闸
- 审计 / 评估证据
- 平台核心归属
- 中性约束
读法:① 上半区五张边界卡各钉死一条权威归属——发现≠授权、协议说明≠身份证明、审批未决不执行、审计≠Evidence、Evaluation 无发布权,第六张把关联对象权威补齐;② 下半区预算四档从左到右由软到硬,只有严格预算能原子预留并证明最大消耗;③ 深色条演示"先查后扣"的并发超限漏洞,青绿面板是严格预算不变量。面试一句话:责任边界不混层——网关不替业务判定成功,预算也只有严格预算能承诺硬上限。
▍书中关键图(SVG 重绘版·示意)① 三种治理语义组合的完整调用链
示意 · 按正文重绘(原书图 9-1 与 9.1.3 用例)
▍书中关键图(SVG 重绘版·示意)② 预算四档:只有严格预算能承诺硬上限
示意 · 按正文重绘(原书图 9-2 与 9.2.6 预算语义)
▍书中关键图(SVG 重绘版·示意)③ 评估经验证与授权进入生产的受控变更链
示意 · 按正文重绘(原书图 9-6 与 9.6.5 变更链)