A2A x402 商業化擴充:如何為 AI 智慧體配置按次即時付費呼叫

9 分鐘閱讀
Client agentyour-agent.comGET /.well-known/agent-card.json200 · application/json{ name, description, version, capabilities, supportedInterfaces[], skills[] }
標準探索流程之後,是透過任務狀態與訊息中繼資料承載的 x402 支付協商。

當 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 本來就有的任務狀態與訊息中繼資料:

  1. 在名片中宣告:智慧體在 capabilities.extensions 中列出擴充 URI;
  2. 需要付款:智慧體回傳一個處於 input-required 狀態的任務,其訊息中繼資料攜帶支付要求;
  3. 提交付款並結算:客戶端回覆已簽署的支付酬載,智慧體驗證後在鏈上結算,並在中繼資料中回報收據。

在 Agent Card 中宣告擴充

這個擴充的宣告方式與任何 A2A 擴充一樣:在 capabilities 的 extensions 陣列中加入一項,並以 URI 識別。

宣告 A2A x402 擴充的 Agent Card
{
  "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 的商家智慧體之間的標準互動,依下列步驟進行:

Client agentyour-agent.comGET /.well-known/agent-card.json200 · application/json{ name, description, version, capabilities, supportedInterfaces[], skills[] }

先是探索步驟,隨後是支付互動:名片宣告擴充,支付本身則在任務中繼資料中協商。

  1. 探索與啟用:客戶端讀取名片,看到 x402 擴充,並在每個請求的擴充標頭中列出它的 URI 來啟用(擴充的 v0.1 文字把這個標頭稱為 X-A2A-Extensions;A2A v1.0 將其註冊為 A2A-Extensions);
  2. 需要付款:對於收費請求,智慧體建立一個處於 input-required 狀態的任務。它的訊息攜帶 x402.payment.status: "payment-required" 與 x402.payment.required,後者是包含 x402Version 與支付選項清單 accepts 的物件,客戶端可以任選其一;
  3. 提交付款:客戶端簽署其中一個選項,並在同一任務(taskId)上傳送一則訊息,帶有 x402.payment.status: "payment-submitted" 與已簽署的 x402.payment.payload。如果拒絕所有選項,則回報為 payment-rejected;
  4. 驗證、結算與收據:智慧體驗證酬載(payment-verified),透過 facilitator 在鏈上結算,並回傳結果,附帶 x402.payment.status: "payment-completed" 與 x402.payment.receipts 陣列。失敗時以 payment-failed 結束,並給出 x402.payment.error 錯誤碼。
payment-required 任務上的訊息中繼資料(x402 v2 欄位名稱)
{
  "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 智慧體,首先要把基礎中繼資料寫對。如果名片無效,客戶端智慧體就無法探索你的服務,也無法與之協商。

組裝名片與智慧體的步驟:

  1. 開啟我們的 Agent Card 產生器,起草基礎端點、技能與驗證方案,並開啟 x402 開關。它會加入上文所示的擴充宣告;
  2. 用我們的 Agent Card 驗證器 驗證結果,它會檢查 capabilities.extensions 項目的格式是否正確;
  3. 將名片部署在你網域下的 /.well-known/agent-card.json;
  4. 在智慧體中實作各個支付狀態。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 回應送出它們。

參考資料

  1. A2A 協定官方規範 (a2a-protocol.org)a2a-protocol.org
  2. A2A 協定官方程式碼庫 (a2aproject/A2A)github.com/a2aproject/A2A
  3. A2A x402 擴充官方程式庫github.com/google-agentic-commerce/a2a-x402
  4. A2A 的 x402 傳輸規範 (coinbase/x402)github.com/coinbase/x402/blob/main/specs/transports-v2/a2a.md

相關工具: Agent Card 產生器

下一步

數分鐘內建構符合 A2A 規範的 Agent Card。

使用我們的互動式產生器設定介面參數、宣告 x402 擴充,並匯出符合 v1.0 規範的高品質 JSON。