一、核心挑战:Agent为什么"付不了钱"
传统支付基础设施的每一层都假设交易发起方是一个经过KYC的自然人:发卡行基于持卡人身份核发卡片,3-D Secure基于浏览器与设备指纹做强客户认证(SCA),争议处理(Chargeback)依赖持卡人本人的签名与申诉。AI Agent作为交易发起者,在这套体系里几乎没有合法位置:
- 无金融账户:Agent无法开立银行账户或申请信用卡,它持有的只是一段在推理运行时中执行的代码与一组密钥。
- 无法律身份:Agent不是法人,无法承担合同义务,也无法成为持卡协议的签约主体。
- 无强认证通道:Agent的"行为"是模型推理的输出,没有指纹、没有手机短信、没有生物特征,传统SCA通道全部失效。
- 授权边界模糊:用户对Agent的指令是自然语言("帮我买下周的咖啡豆"),而支付网络需要的是精确到分、精确到商户类别的可验证授权。
这一矛盾的解法不是给Agent发一张卡,而是构建一套密码学信任链:用可验证数字凭证(Verifiable Digital Credential, VDC)把"人类用户的授权意图"以一种任何交易参与方都能独立验证的方式,沿交易路径传递下去。这条信任链的技术载体,就是本文拆解的三层协议栈与AP2 Mandate机制。
二、三层支付协议栈架构总览
AI Agent自主支付的工程实现并非单一协议,而是一个自下而上的三层协议栈:协议层负责"Agent如何调用工具",PSP层负责"钱怎么走",网络层负责"信任如何被全网验证"。
理解这张图的关键在于分清授权(Authorization)与结算(Settlement)的职责切分:AP2只携带授权、不搬运资金,因此一个AP2 Mandate既可以上游对接Mastercard卡轨道,也可以对接x402稳定币轨道——授权与结算被解耦,这是整个架构能同时兼容法币与加密货币的根本原因。
三、协议层:MCP——Agent调用支付工具的统一契约
3.1 MCP在支付栈中的定位
Model Context Protocol(MCP)由Anthropic发起,已成为事实上的Agent-工具交互标准。它标准化了三件事:工具发现(tools/list)、工具调用(tools/call)、资源读取(resources/read),全部以JSON-RPC 2.0承载,传输层支持stdio、HTTP+SSE、Streamable HTTP。在支付场景中,MCP的价值在于:把"创建支付意图""发起退款""查询交易状态"这些支付原语,统一成LLM可理解、可调用的工具接口,使Agent无需为每个PSP编写专属胶水代码。
截至2026年中,MCP生态已达到97M+月下载量、10000+活跃服务器的规模,支付类MCP服务器是其增长最快的垂直子类之一。
3.2 MCP支付工具调用代码示例(JSON-RPC格式)
下面是一个Agent通过MCP调用Stripe Agent Toolkit创建Payment Intent的完整JSON-RPC交互。首先是工具发现:
// 1. Agent 向 MCP Server 发起 tools/list 请求
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}
// 2. MCP Server 返回可用工具(节选支付相关)
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{
"name": "create_payment_intent",
"description": "创建一个Stripe Payment Intent,用于接收持卡人付款",
"inputSchema": {
"type": "object",
"properties": {
"amount": { "type": "integer", "description": "金额,最小货币单位(分)" },
"currency": { "type": "string", "description": "ISO 4217 货币代码" },
"metadata": { "type": "object", "description": "附加元数据,如 mandate_id" }
},
"required": ["amount", "currency"]
}
},
{
"name": "create_refund",
"description": "对指定Charge发起全额或部分退款"
}
]
}
}
随后Agent根据用户意图发起实际调用,注意metadata字段携带了AP2 Mandate的引用,这是授权链与结算链的缝合点:
// 3. Agent 调用 create_payment_intent 工具
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "create_payment_intent",
"arguments": {
"amount": 4789,
"currency": "usd",
"metadata": {
"ap2_intent_mandate_id": "mandate_intent_01HZX...",
"ap2_cart_mandate_id": "mandate_cart_01HZX...",
"agent_id": "did:web:shopper.acme.com",
"user_id": "did:web:user.alice.com"
}
}
}
}
// 4. MCP Server 返回 Payment Intent
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [
{
"type": "text",
"text": "{\"id\":\"pi_3PqX...\",\"client_secret\":\"pi_3PqX..._secret_...\",\"status\":\"requires_payment_method\"}"
}
],
"isError": false
}
}
这里有一个常被忽略的工程细节:MCP的tools/call结果以content数组返回(支持text/image/resource多模态),而非直接返回业务对象。这意味着Agent运行时必须解析content[0].text中的JSON才能拿到Payment Intent ID。在生产环境中,应在MSP Server侧对支付结果做结构化封装,避免LLM误读isError字段而把成功响应当作失败重试,造成重复扣款。
四、PSP层:Agent Toolkit的标准化
4.1 Stripe Agent Toolkit
Stripe通过mcp.stripe.com暴露了远程托管的MCP Server,提供约25种操作,覆盖Payment Intents、Checkout Sessions、Customers、Subscriptions、Refunds、Invoices、Webhook事件等全链路能力。其设计哲学是"零本地凭证":Agent通过OAuth连接商户的Stripe账户,无需在Agent运行时内存中落盘API Key,从根上降低了凭证泄露面。
4.2 PayPal MCP与Square MCP
PayPal MCP Server封装了订单创建(Orders v2)、支付捕获、退款与交易查询;Square MCP Server则侧重线下/全渠道对账,提供目录(Catalog)、结账(Checkout)、订单(Orders)与支付(Payments)能力。三者共同构成了PSP层的"标准件库",使上层AP2授权可以无缝下发到不同的资金通道。
4.3 AgentPay MCP:HTTP 402自动赎回
AgentPay MCP是PSP层中面向加密轨道的特殊成员。它的核心机制是:当Agent发起HTTP请求并收到402 Payment Required响应时,自动完成链上支付并重试原始请求。其安全设计有三个要点:
- 硬性消费上限:在MCP Server配置中设定不可逾越的单笔与累计上限,即使LLM被提示注入诱导,也无法超额签署交易;
- 人工审批模式:对于超过阈值的支付,挂起交易并向用户推送审批请求,等待人类确认后才广播;
- 链上审计追踪:每笔支付都产生不可篡改的链上收据,与AP2 Mandate的
hash chain对齐,形成完整的争议解决证据链。
五、网络层:Visa TAP与Mastercard Agent Pay
网络层是信任链的"终局裁判"——它决定了商户最终能否相信一笔Agent发起的交易。2025-2026年,两大卡组织分别推出了Agent原生的网络级框架。
5.1 Visa Trusted Agent Protocol (TAP)
TAP是Visa Intelligent Commerce的组成部分,由Visa与Cloudflare联合创建,并吸纳Shopify、Microsoft、Stripe的输入,于2025年10月发布。其核心是agent-specific payment credentials与密码学签名的HTTP消息:Agent在每次与商户交互时携带一个安全数字签名,商户无需改造支付栈即可即时验证"这是一个经授权的合法Agent,而非匿名爬虫"。TAP被刻意设计为叠加在现有Web与商户基础设施之上的标准化信任层,而非另起炉灶的支付轨道。
5.2 Mastercard Agent Pay与Agentic Tokens
Mastercard Agent Pay是一个网络级框架,与EMVCo tokenization、3-D Secure处于同一层级。其核心创新是Agentic Tokens(代理令牌)——一种新型token类型,除替代真实卡号外,还携带三类元数据:Agent身份、授权用户、策略约束。可编程guardrails允许发卡机构在token上直接绑定消费限额与商户类别限制(MCC restriction),使"消费上限"从应用层下沉到网络层强制执行。Mastercard已披露Agent Pay存在生产环境真实交易。
5.3 Agentic Token vs 传统Network Token对比
| 维度 | 传统Network Token | Agentic Token |
|---|---|---|
| 承载主体 | 持卡人设备/钱包(手机、手表) | 经过验证注册的AI Agent |
| 身份信息 | 仅Device Primary Account Number的token化映射 | Agent身份 + 授权用户 + 策略元数据三联体 |
| 消费控制 | 依赖发卡行风控规则,事后拦截 | 可编程guardrails,网络层强制消费限额与MCC限制 |
| 授权来源 | 持卡人本人主动刷卡/绑卡 | 用户签发的Mandate(VDC)委托授权 |
| 认证方式 | 3-D Secure SCA(指纹/OTP) | 密码学签名 + Mandate链验证 |
| 审计粒度 | 交易级,无意图上下文 | 携带购买意图(自主/辅助)、购物车、有效期窗口 |
| 争议处理 | 持卡人申诉,he-said-she-said | Mandate hash chain提供可验证争议证据 |
| 部署层级 | EMVCo tokenization | 与EMVCo/3DS同层,网络级框架 |
这张表揭示了Agentic Token的本质区别:它把"谁授权、授权做什么、授权上限多少"三个原本散落在应用层的约束,编码进token本身,使网络层成为策略的执行点而非仅仅是资金的搬运点。
六、Google AP2:Mandate信任链的工程实现
6.1 基于角色的架构
AP2(Agent Payments Protocol)是Google开源的Agent支付授权协议,作为Agent2Agent(A2A)协议的扩展,并与MCP协同。AP2定义了六个角色:
- Users:最终人类用户,是授权链的唯一源头;
- User Agents / Shopping Agents:代表用户执行购物与支付的AI Agent;
- Credential Providers:签发并托管支付凭证(如钱包、发卡行);
- Merchant Endpoints:商户侧接收Agent请求的端点;
- Merchant Payment Processors:商户收单处理器;
- Networks and Issuers:支付网络与发卡机构,执行最终授权与结算。
6.2 Mandate:可验证数字凭证(VDC)
AP2的灵魂是Mandate(授权书)机制——一种密码学签名的可验证数字凭证(VDC),编码用户的支付指令。Agent在交易中携带Mandate,商户、支付网络及任何参与方都可独立验证其签名,确认用户确实授权了这一具体行为。AP2定义三类核心Mandate:
- Intent Mandate(意向授权):用户预授权Agent在某一范围内消费,包含消费限额、类别约束、时间窗口、可选商户白名单、Agent身份绑定。Agent据此可在无实时人工审批下自主行动。
- Cart Mandate(购物车授权):在购买时刻签发,包含具体商品与数量、精确价格、商户身份、配送信息、用户签名与时间戳。
- Payment Mandate(支付授权):下发给支付网络,携带对Intent与Cart Mandate的引用、token化支付方式凭证、Agent身份与欺诈信号,标记本次交易有Agent参与。
6.3 AP2 Mandate的JSON结构示例
下面是一个Cart Mandate的JSON结构示例,展示VDC的核心字段与签名封装:
{
"mandate_id": "mandate_cart_01HZX9F8T7Y6K5J4",
"type": "cart",
"version": "ap2-1.0",
"issuer": "did:web:user.alice.com",
"subject_agent": "did:web:shopper.acme.com",
"issued_at": "2026-07-23T08:14:22Z",
"expires_at": "2026-07-23T08:24:22Z",
"intent_mandate_ref": "mandate_intent_01HZX9A0B1C2D3E4",
"merchant": {
"id": "did:web:store.specialty-coffee.com",
"name": "Specialty Coffee Roasters"
},
"cart": {
"items": [
{ "sku": "BEAN-ETHIOPIA-250G", "name": "耶加雪菲 250g", "qty": 2, "unit_price": 1899 },
{ "sku": "SHIP-STANDARD", "name": "标准配送", "qty": 1, "unit_price": 0 }
],
"currency": "usd",
"total": 3798
},
"policy": {
"max_amount": 5000,
"allowed_mcc": ["5499"],
"valid_for_seconds": 600
},
"prev_hash": "sha256:9f2c...e41a",
"proof": {
"type": "Ed25519Signature2020",
"verification_method": "did:web:user.alice.com#key-1",
"proof_value": "z3Xt...kQ7v",
"proof_purpose": "assertionMethod",
"created": "2026-07-23T08:14:22Z"
}
}
几个关键设计点:
prev_hash构成hash chain:Cart Mandate的prev_hash指向Intent Mandate的哈希,Payment Mandate的prev_hash指向Cart Mandate的哈希。任何对上游Mandate的篡改都会使下游哈希失配,从而实现可验证的争议解决。proof采用W3C VC的Ed25519Signature2020:分离签名与负载,便于任何方仅凭公钥(verification_method)独立验证。policy内嵌约束:限额与MCC限制写在凭证内,验证方无需查询外部策略库即可判定合法性。
6.4 Mandate签名验证流程
Mandate的验证是一个确定性流水线,任何参与方(商户、网络、收单行)都可独立执行:
整个验证过程零信任、零外部依赖——验证方不需要回调用户的身份服务,也不需要信任Agent本身,只需密码学即可确证"这是用户授权过的、未被篡改的、在范围内的交易"。这正是AP2区别于API Key/OAuth预付钱包模式的根本所在:它把"用户说了yes"变成一个可被全网独立验证的密码学事实。
6.5 兼容性:法币与加密货币的统一授权
AP2的Mandate框架与结算轨道解耦,因此能同时兼容:
- 传统卡网络:通过Mastercard、Visa、Amex的合作伙伴关系,Payment Mandate可触发标准卡授权;
- 加密货币轨道:通过A2A x402扩展(与Coinbase、MetaMask联合开发),同一套Mandate可授权USDC链上支付。
这意味着一个AP2实现既能授权一笔Mastercard卡支付,也能授权一笔经x402在Base链上结算的USDC支付——授权逻辑一份,结算通道多选。
七、x402:HTTP 402的复活与链上支付原语
7.1 协议本质
x402由Coinbase发起,是开源、网络中立的协议,复活了HTTP中沉睡多年的402 Payment Required状态码。它把支付嵌入HTTP请求生命周期:服务端在返回数据前要求并收取一笔稳定币(USDC)付款,无需API Key、无需订阅、无需注册。x402支持EVM兼容网络(Base、Ethereum、Injective等)与SVM兼容网络(Solana)。
7.2 x402支付流程的HTTP交互示例
下面是一次完整的x402交互,展示402挑战、签名、赎回、重试四个阶段:
// ─── 阶段1: 客户端发起普通请求 ───
GET /v1/marketdata/TSLA-USD HTTP/1.1
Host: api.quantfeed.example
Accept: application/json
// ─── 阶段2: 服务端返回 402 与报价 ───
HTTP/1.1 402 Payment Required
Content-Type: application/json
{
"x402_version": 1,
"accepts": [{
"scheme": "exact",
"network": "base-mainnet",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"description": "$0.01 USDC for TSLA market data"
}],
"max_retry_after_seconds": 60
}
// ─── 阶段3: 客户端签署USDC转账(不上链),
// 由facilitator代为广播并等待确认 ───
// (客户端钱包对EIP-3009 transferWithAuthorization签名)
// ─── 阶段4: 客户端携带支付凭证重试请求 ───
GET /v1/marketdata/TSLA-USD HTTP/1.1
Host: api.quantfeed.example
X-PAYMENT: base-mainnet,0x8335...,10000,0x4f2a...signature...0xb1c3
// ─── 阶段5: 服务端经facilitator验证收据后返回数据 ───
HTTP/1.1 200 OK
Content-Type: application/json
X-PAYMENT-RESPONSE: 0x9d8e...receipt...
{ "symbol": "TSLA", "price": 248.37, "ts": "2026-07-23T08:15:01Z" }
x402的核心抽象是facilitator(促成器):它代为处理签名验证、RPC提交、Gas估算、链上确认轮询,使API服务端保持纯Web原生——服务端只需一个中间件调用即可把任意端点变成按请求付费的服务。对于Agent而言,x402消除了"预先注册凭证"这一瓶颈:一个持有USDC余额的Agent可以调用任何x402保护的端点,无需事先开通账户,每次请求都产生一条不可篡改的链上收据作为审计轨迹。
八、四Mandate链式验证时序图
AP2规范定义三类核心Mandate(Intent / Cart / Payment)。在需要完整可验证争议解决的扩展实现(如VCAP-AP2 verified commerce settlement绑定)中,会在交易完成后追加第四个Fulfillment/Settlement Mandate(履约结算授权),闭合"授权→下单→支付→履约"的可验证环路。四Mandate通过hash chain首尾相连,任一环节篡改都会使链条断裂。
hash chain的工程价值在于争议解决的确定性:当用户否认某笔交易时,网络不再依赖"持卡人申诉 vs 商户举证"的对峙,而是直接重算SHA256(Intent) → SHA256(Cart) → SHA256(Payment) → SHA256(Fulfillment)四段哈希。哪一段失配,责任就在哪一段的签发方——这是从"he-said-she-said"到"密码学举证"的范式跃迁。
九、ACP与ConvPayMAS:能力发现与对话式支付
9.1 ACP (Agentic Commerce Protocol)
ACP解决的是"Agent如何发现商户能力并协商支付方式"的前置问题。在异构PSP与网络并存的生态中,Agent在发起交易前需要知道:该商户接受哪些支付轨道?是否支持AP2 Mandate?是否暴露了x402端点?ACP提供了一套能力发现协议,使Agent能在下单前完成支付方式的自动协商,避免"选好商品却发现无法支付"的尴尬。
9.2 ConvPayMAS:对话式支付多Agent系统
ConvPayMAS(Conversational Payment Multi-Agent System)是AP2三Mandate机制的学术级参考实现,其工程细节具有标杆意义:
- 跨协议互操作:通过Google A2A协议实现可信握手与安全消息传递,实现Agent-to-Agent的授权传递;
- AP2三Mandate实现:用Intent/Cart/Payment三Mandate的密码学链实现可验证授权与争议解决;
- MCP工具服务:支付能力以MCP tools server暴露,支持会话、钱包操作与基于Mastercard基础设施的实时授权;
- 加密与会话管理:传输层采用AES-256-CBC加密载荷,会话管理采用JWT(HS256)签发与校验;
- 端到端验证:演示了从对话式结账到实时Mandate验证的完整闭环。
ConvPayMAS证明了一个关键论点:AP2 Mandate链可以与MCP工具调用、A2A跨Agent通信、Mastercard网络授权无缝组合,构成端到端的对话式支付流水线。
十、支付安全威胁模型分析
Agent自主支付引入了传统支付不存在的全新攻击面。以下从四个核心威胁建模。
10.1 Agent被劫持(Prompt Injection / 模型越狱)
威胁:攻击者通过提示注入或模型越狱,诱导Agent执行非授权交易,例如在解析网页内容时被恶意指令劫持,转而向攻击者商户付款。
缓解:将消费限额从应用层下沉到网络层Agentic Token的可编程guardrails,即使Agent推理输出被完全控制,网络层也会拒绝超额交易;对超阈值交易启用人工审批模式(AgentPay MCP模式),把最终决策权交还人类。
10.2 Mandate伪造(私钥泄露 / 签名欺骗)
威胁:用户签名私钥泄露,攻击者伪造Intent/Cart Mandate,冒充用户授权。
缓解:私钥托管于HSM/KMS,签名操作在硬件安全边界内完成,应用层永不可读私钥明文;采用W3C VC的分离签名负载结构,签名与业务负载解耦,便于独立审计;Mandate携带verification_method指向DID文档,支持密钥轮换与撤销。
10.3 重放攻击(截获有效Mandate重用)
威胁:攻击者截获一个合法的Cart Mandate,在有效期内重复提交,造成多次扣款。
缓解:每个Mandate内嵌nonce与短expires_at(如10分钟),收单方维护已用nonce去重表;prev_hash构成单向链,使Mandate只能在其所属链的特定位置使用,跨交易重用会导致hash chain断裂;Payment Mandate绑定具体交易ID,使重放的Mandate无法对接新的结算请求。
10.4 超额消费(限额绕过 / 累计失控)
威胁:Agent在Intent Mandate的合法范围内高频小额消费,累计突破用户预期;或利用验证逻辑漏洞绕过单笔限额。
缓解:Intent Mandate同时设置单笔限额与累计(月度)限额,收单方维护累计计数器;策略校验在商户、收单、网络三处冗余执行(defense in depth),任一处拒绝即终止;引入冷却期与速率限制,防止Agent在短时间内发起海量交易。
十一、企业级Agent支付部署架构建议
基于上述协议栈与威胁模型,给出企业级Agent支付部署的架构建议。
11.1 分层部署架构
11.2 关键架构原则
- 私钥永不落Agent运行时:签名私钥托管于KMS/HSM,Agent运行时仅持有短期委托令牌,运行时被攻破也不影响签名私钥安全。
- Mandate全链留存:四Mandate及其hash chain完整写入不可篡改审计日志(建议追加链上锚定),满足合规审计与争议举证需求。
- 三处冗余策略校验:消费限额在MCP网关、AP2 Mandate服务、网络层Agentic Token三处独立校验,避免单点绕过。
- 双轨结算能力:同时保留法币PSP通道与x402稳定币通道,按交易金额与场景路由——微支付走x402(低费率、链上审计),大额交易走卡网络(争议保护成熟)。
- 人工审批兜底:超过阈值的交易强制进入人工审批队列,Agent挂起等待,确保人类对高风险交易保留最终否决权。
- 能力发现先行:通过ACP在交易前完成支付方式协商,避免下单后支付失败的资源浪费。
十二、结语
AI Agent自主支付的成熟,本质上是一次信任载体从"账户"到"凭证"的迁移。传统支付信任锚定在持卡人账户与发卡行KYC上;Agent支付则把信任锚定在密码学签名的Mandate链上——Agent无需银行账户,因为它携带的是用户授权的可验证凭证,而非自己的金融身份。
这条从MCP(工具调用契约)到PSP Agent Toolkit(资金通道标准化),再到Visa TAP/Mastercard Agent Pay(网络级信任)与AP2 Mandate(授权信任链)、x402(链上结算原语)的技术路径,正在把"Agent付款"从一个被怀疑的黑箱,变成一个每一步都可被密码学独立验证的透明过程。当四Mandate的hash chain能在争议发生的瞬间指出责任归属时,Agent自主支付才真正跨越了从"能付"到"可信付"的门槛——而这,正是它走向企业级规模化部署的前提。
浙公网安备 33010602011771号