A2A x402 商业化扩展:如何为 AI 智能体配置按次即时付费调用
当 AI 智能体雇佣其他 AI 智能体来执行专业工作流时,传统的计费模式就失效了:按月订阅和需要人工签署的信用卡,无法支持无人值守、按请求粒度的委派。A2A x402 扩展让智能体可以用链上支付为技能收费,调用方智能体无需人工介入即可完成付款。
机器与机器间(M2M)商业生态的兴起
A2A 协议规范 解决了智能体如何跨组织边界宣告能力、交换任务的问题。但随着多智能体生态走向成熟,一个关键问题随之而来:服务提供商如何为高价值的智能体变现?
设想一个专业的法律审计智能体,或一个蛋白质折叠分析模型。运营方既不可能向互联网上任意的调用方智能体提供无限量的免费访问,也不可能要求一个自主运行的客户端智能体去填写交互式的结账表单。
自主系统需要的是程序化、机器可读的支付方式:
- 调用方智能体在承诺工作之前就知道价格;
- 接收方智能体明确说明自己接受什么:网络、资产、金额和地址;
- 支付在交付工作之前或同时完成验证和结算。
什么是 A2A x402 扩展协议?
有两样东西共用这个名字,很容易混淆。
x402 是一个开放的支付协议,在 x402 仓库 中定义,它重新启用了 HTTP 402 Payment Required。服务端对未付款的请求返回自己的支付要求;客户端签署支付授权后重试;facilitator(促成方)在链上验证并结算这笔授权。在纯 HTTP 下,支付要求通过 PAYMENT-REQUIRED 响应头传递,签署后的支付通过 PAYMENT-SIGNATURE 请求头传递。
A2A x402 扩展 由 google-agentic-commerce/a2a-x402 仓库开发,是通过 A2A 承载的 x402。它使用核心 a2aproject/A2A 规范的标准扩展机制,因此 Agent Card 的 schema 没有任何变化。它不使用 HTTP 头,而是使用 A2A 本来就有的任务状态和消息元数据:
- 在卡片中声明:智能体在
capabilities.extensions中列出扩展 URI; - 需要付款:智能体返回一个处于
input-required状态的任务,其消息元数据携带支付要求; - 提交付款并结算:客户端回复已签署的支付载荷,智能体验证后在链上结算,并在元数据中报告收据。
在 Agent Card 中声明扩展
该扩展的声明方式与任何 A2A 扩展一样:在 capabilities 的 extensions 数组中添加一项,并用 URI 标识。
{
"name": "Market Intelligence Oracle",
"description": "Performs fundamental analysis on listed equity tickers and returns a structured report.",
"version": "1.0.0",
"supportedInterfaces": [
{
"url": "https://oracle.example.com/a2a/v1",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"capabilities": {
"extensions": [
{
"uri": "https://github.com/google-a2a/a2a-x402/v0.1",
"description": "Supports payments using the x402 protocol for on-chain settlement.",
"required": true
}
]
},
"defaultInputModes": ["application/json"],
"defaultOutputModes": ["application/json"],
"skills": [
{
"id": "deep-equity-scan",
"name": "Deep Equity Scan",
"description": "Performs fundamental analysis on listed equity tickers.",
"tags": ["finance", "equity", "analytics"]
}
]
}
扩展规范推荐设置 required: true,这表示客户端必须理解 x402 才能使用收费技能。
支付协商与结算的完整生命周期
客户端智能体与支持 x402 的商户智能体之间的标准交互按以下步骤进行:
先是发现步骤,随后是支付交互:卡片声明扩展,支付本身则在任务元数据中协商。
- 发现与激活:客户端读取卡片,看到 x402 扩展,并在每个请求的扩展头里列出它的 URI 来激活(扩展的 v0.1 文本把这个头称为
X-A2A-Extensions;A2A v1.0 将其注册为A2A-Extensions); - 需要付款:对于收费请求,智能体创建一个处于
input-required状态的任务。它的消息携带x402.payment.status: "payment-required"和x402.payment.required,后者是包含x402Version和支付选项列表accepts的对象,客户端可以任选其一; - 提交付款:客户端签署其中一个选项,并在同一任务(
taskId)上发送一条消息,带有x402.payment.status: "payment-submitted"和已签署的x402.payment.payload。如果拒绝所有选项,则报告为payment-rejected; - 验证、结算与收据:智能体验证载荷(
payment-verified),通过 facilitator 在链上结算,并返回结果,附带x402.payment.status: "payment-completed"和x402.payment.receipts数组。失败时以payment-failed结束,并给出x402.payment.error错误码。
{
"x402.payment.status": "payment-required",
"x402.payment.required": {
"x402Version": 2,
"resource": {
"url": "https://oracle.example.com/a2a/v1",
"description": "Deep equity scan"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"amount": "48240000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bda02913",
"payTo": "0xServerWalletAddressHere",
"maxTimeoutSeconds": 600,
"extra": { "name": "USD Coin", "version": "2" }
}
]
}
}
金额以代币的最小单位表示(USDC 有六位小数,因此上面的数字是 48.24 USDC)。不同 x402 版本的字段名不同:扩展自带的 v0.1 文本仍使用 v1 形式(maxAmountRequired),而 A2A 的 x402 传输规范 使用此处展示的 v2 形式。
如何构建并生成商业化智能体
在 A2A 上构建商业化的 AI 智能体,首先要把基础元数据写对。如果卡片无效,客户端智能体就无法发现你的服务,也无法与之协商。
组装卡片和智能体的步骤:
- 打开我们的 Agent Card 生成器,起草基础端点、技能和鉴权方案,并打开 x402 开关。它会加入上文所示的扩展声明;
- 用我们的 Agent Card 校验器 校验结果,它会检查
capabilities.extensions条目的格式是否正确; - 将卡片部署在你域名下的
/.well-known/agent-card.json; - 在智能体中实现各个支付状态。a2a-x402 仓库附带一个 Python 实现(
x402_a2a),用来包装 A2A 执行器;你还需要一个 facilitator 来验证和结算支付。在接收真实资金之前,先在测试网络上跑通整个流程。
常见问题解答
HTTP 状态码 402 与 A2A x402 是什么关系?
HTTP 状态码 402(Payment Required)在最初的 HTTP 规范中就为数字现金系统预留。x402 是一个开放的支付协议,让它真正派上了用场:服务端用自己的支付要求回应请求,客户端签署支付授权,再由 facilitator(促成方)在链上验证并结算。A2A x402 扩展在 A2A 中承载同样的交互,使用任务状态和消息元数据,而不是 HTTP 头。
x402 支持哪些支付模式?
支付以 USDC 等代币在链上结算;x402 不是银行卡或订阅通道。核心协议定义了支付方案(scheme):exact 方案收取固定金额,在 EVM 链上使用 EIP-3009 转账授权,在 Solana 上使用 TransferChecked,其他方案另行规定。
一个智能体能否同时提供免费技能和付费技能?
扩展只需在 capabilities.extensions 中声明一次。哪些请求需要付费由运行时决定:对付费请求,智能体返回一个 payment-required 任务;免费请求则直接处理。扩展文本推荐设置 required 为 true;如果你的大多数技能是免费的,需要权衡这样做会把不支持 x402 的客户端拒之门外。
调用方智能体如何决定是否付款?
支付要求以元数据形式附在任务上,来自客户端通过 Agent Card 已经找到的那个端点。客户端在签署任何内容之前,会检查 scheme、network、asset、金额和 payTo 地址。扩展规范还强调:私钥只能由受信任的组件处理,绝不能直接交给运行智能体的 LLM。
AgentCard.net 生成器支持 x402 扩展吗?
支持。打开 x402 开关后,会把扩展 URI 加入 capabilities.extensions,并将 required 设为 true。它无法配置价格或钱包,因为这些并不属于 Agent Card:你的智能体会在运行时通过 payment-required 响应发送它们。
参考资料
相关工具: Agent Card 生成器
浏览更多指南
下一步
数分钟内构建符合 A2A 规范的 Agent Card。
使用我们的交互式生成器配置接口参数、声明 x402 扩展,并导出符合 v1.0 规范的高质量 JSON。