一个AI代理要补全一条客户记录,调用的工具是收费的。问题来了:谁有权批准这笔钱?x402 v2没说,MCP 2026-07-28也没说。两个规范都把价格和路由元数据搬进了HTTP头,网关终于能看见一次工具调用要花多少钱。但看得见价格,不等于有批准价格的权力。
HTTP里那个402 Payment Required状态码,从1997年起就一直闲置,预留了却从未被定义。x402给了它一个含义:服务器用402回应,附上它想要的条款;客户端带着签名的支付授权重试;服务器返回结果,外加结算凭证。v2版本(2025年12月)把这一切搬进了头部——PAYMENT-REQUIRED、PAYMENT-SIGNATURE和PAYMENT-RESPONSE,不再埋在请求体里。
![]()
MCP则是AI代理发现和调用工具的方式。2026-07-28修订版移除了会话和Mcp-Session-Id头,新增Mcp-Method和Mcp-Name作为头部,并按RFC 9207用签发方校验加固了授权。
两个版本为什么放在一起看
它们都把关键元数据从请求体挪到了头部。网关、限流器和WAF现在不用解析一行JSON-RPC正文,就能看清谁在调用、调哪个工具、要花多少钱。付费代理流量的计量和路由成本大幅下降。
问题恰恰从这里开始。头部可见性不等于授权。基础设施一旦能看见价格,就必须对价格做出某种决定,而两个规范都没告诉你谁来做这个决定。支出决策应该属于代理够不着的预算权威,把它放在哪里,才是协议细节过时之后依然重要的部分。
在东京的AGNTCon + MCPCon Japan上,这套逻辑被真跑了一遍:一个实时代理在测试网络上为MCP工具调用付费,包括它试图为未获批准的东西花钱的那条路径。
一次请求的完整旅程
威胁模型先说清楚:代理进程及它的每一个输入都被视为敌对的。网关、服务及其策略是诚实的,但会犯错。被篡改的二进制、恶意操作者、从硬件中提取密钥以及链级攻击不在讨论范围内。
代理拿到的任务是业务语言描述的:补全记录42。它不知道这要花多少钱,也不知道哪个提供方会做这件事。第一个问题立刻出现:怎么让一个敌对的东西货比三家,又不先递给它一个钱包?
它发问,然后被故意拒绝。返回的头部是base64编码的JSON,解码后是一份报价:方案为exact,网络是测试网络,资产是某个稳定币合约,包含收款地址、最大所需金额、资源地址、60秒最大超时和一个服务器选定的nonce。
这是HTTP绑定下的协商。走MCP时同样的协商会发生,但位置不同。在边缘计量之前值得知道的一点是:MCP绑定会给网关返回一个200,而这次调用还没人付过钱。如果你的计量逻辑以状态码为键,它会直接滑过去。
这里出现了第一个比表面更重要的设计决策:询问是免费的。如果弄清某样东西的价格本身就要花钱,那么每个代理在规划之前都需要支出权限,这会把授权决策推到整个流程中信息最不充分的时刻。免费发现让这第一趟完全不携带消耗价值的权限。边界可以放行它,正是因为放行不使组织承诺任何东西。
因为这一趟放行成本很低,边界在转发时还能悄悄做一件重要的事:它验证断言,应用较轻的策略,做受众转换——铸造一个只限定于一个资源和一个动作的下游凭证,然后只带着这个凭证转发。资源返回条款响应,也就是报价。网关在返回路径上亲眼看到了这份报价。
注意穿过边界的是什么:不是企业凭证,而是一个新铸造的、只限于一个资源和一个动作的凭证,用于其他任何事都没用。这就是受众转换,也是避免把下游服务能反过来复用的东西交出去的办法。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.