View a markdown version of this page

AgentCore 付款快速入門 - Amazon Bedrock AgentCore

AgentCore 付款快速入門

本教學課程會逐步引導您設定 AgentCore 付款並處理您的第一個微型交易。最後,您的代理程式將使用測試網路上的 x402 通訊協定來支付資源的費用。

您可以透過兩種方式設定付款:

  • 使用 AgentCore Payments 技能 — 透過與 Kiro、Claude Code 或 Codex 等 AI 編碼代理器的引導式對話來佈建所有資源的自動化設定體驗。此技能會為您處理 CLI 命令、軟體開發套件指令碼和架構佈線。

  • 使用 CLI、 SDK 或 Boto3 — 直接使用 AgentCore CLI、 AWS SDK 或 AWS CLI 的step-by-step手動設定。

使用 AgentCore Payments 技能

AgentCore Payments 技能會透過互動式的引導式體驗來自動化整個設定程序。它會佈建下列資源:

  • PaymentCredentialProvider — 將付款供應商憑證存放在 AgentCore Identity 中。

  • Payment Manager — 協調付款操作的最上層資源。

  • Payment Connector — 透過 AgentCore CLI 將管理員連結至您的憑證。

  • 付款工具 — 您的代理程式用來代表使用者支付商家費用的加密錢包。

  • 付款工作階段 — 具有花費限制的時間限制內容。

此技能也會使用與架構無關的工具將付款匯入您的代理程式,因此可與 Strands、LangGraph、OpenAI 代理程式 SDK 或任何 Python 架構搭配使用。

先決條件

開始之前,請確定您有:

  • AWS 已設定登入資料的帳戶 (aws configure)

  • 可使用 AgentCore 付款 AWS 的區域:us-east-1、us-west-2、eu-central-1 或 ap-southeast-2。請參閱支援的 AWS 區域

  • 已安裝 Node.js 20+ (技能會自動安裝 AgentCore CLI)

  • 存取付費端點的代理程式 — 技能可讓您的代理程式支付受 x402 保護APIs。針對測試,您可以使用沙盒端點 https://sandbox.node4all.com/v1/x402-test

  • 安裝在 AI 編碼代理程式中的 Agent Toolkit for AWS aws-agents外掛程式

    範例
    Claude Code
    /plugin marketplace add aws/agent-toolkit-for-aws /plugin install aws-agents@agent-toolkit-for-aws
    Codex

    外掛程式會自動從市場資訊清單探索。若要新增市集,請執行下列命令:

    codex plugin marketplace add aws/agent-toolkit-for-aws

叫用技能

付款技能是agents-build客服人員工具組中 AWS技能的一部分。若要觸發它,請在 AI 編碼代理程式中描述您的意圖。例如:

  • 「使用aws-agents外掛程式中的agents-build技能將付款新增至我的客服人員」

  • 「使用aws-agents外掛程式中的agents-build技能為我的客服人員設定微交易」

  • 「我需要使用aws-agents外掛程式中的agents-build技能來處理 402 Payment Required 回應」

  • 「使用aws-agents外掛程式中的agents-build技能,將我的代理程式連接到支付受 x402 保護APIs」

技能會偵測付款相關意圖,並自動載入付款工作流程。

技能的功能

此技能會執行自動化程序,end-to-end方式佈建您的付款基礎設施。技能會自動執行大多數步驟,並針對您的輸入暫停兩次:

  1. 驗證或安裝 AgentCore CLI 並設定專案

  2. 建立付款管理員

  3. 暫停 — 您執行 agentcore add payment-connector以輸入您的提供者秘密 (Coinbase CDP 或 Stripe Privy 登入資料)

  4. 將資源部署到 AWS 您的帳戶 (agentcore deploy -y)

  5. 將與架構無關的付款工具 (x402_payment_tool.py) 連接到您的代理程式

  6. 透過 SDK 建立每個使用者的錢包 (檢測) 和預算限制的工作階段

  7. 暫停 — 您授權錢包 (委派),並從 Circle faucet 網站使用睪丸 USDC 為其提供資金

  8. 設定環境變數,並針對付費端點執行測試付款

在執行連接器命令之前,從您的提供者取得登入資料:

  • Coinbase CDP — 來自 Coinbase 開發人員平台網站的 API 金鑰 ID、API 金鑰秘密和錢包秘密 (啟用委派簽署)。

  • Stripe PrivyPrivy 儀表板網站上的應用程式 ID、應用程式秘密、授權 ID 和授權私有金鑰。

成功執行會顯示呼叫 的代理程式x402_fetch、偵測 402、透過 AgentCore SDK 穩定付款,以及200使用付費內容傳回的重試。

使用 CLI、 SDK 或 Boto3

本節將引導您使用 AgentCore CLI、 AWS CLI 或 AWS SDK (Boto3) 手動完成每個步驟。

先決條件

開始之前,請確定您有:

  • AWS 已設定登入資料的帳戶 (aws configure)

  • 已安裝 Python 3.10+

  • 可使用 AgentCore 付款 AWS 的區域:us-east-1、us-west-2、eu-central-1 或 ap-southeast-2。請參閱支援的 AWS 區域

安裝必要的套件:

pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools

確認您的登入資料已設定:

aws sts get-caller-identity
提示

如果您已安裝 AgentCore CLI v0.19.0 或更新版本,您可以使用 CLI 命令來替代步驟 2、3、5 和 6 中的 SDK。以下每個步驟都顯示這兩個選項。

步驟 1:取得付款供應商憑證

AgentCore 付款會連線至外部付款供應商以進行錢包操作。您需要其中一個支援提供者的登入資料,才能繼續。

範例
Coinbase CDP
  1. 登入 Coinbase 開發人員平台並建立或選取專案。

  2. 產生 API 金鑰並記下 API 金鑰 IDAPI 金鑰秘密錢包秘密

  3. 專案 > 錢包 > 非自訂錢包 > 安全性下,啟用委派簽署

您將在下一個步驟中使用這三個值:

Credential 說明

API Key ID

CDP 專案的公有識別符

API Key Secret

用於簽署 API 請求的私有秘密

Wallet Secret

密碼編譯錢包操作的秘密 (衍生地址、簽署交易)

Privy
  1. dashboard.privy.io:// 建立專用 Privy 應用程式。請勿重複使用用於其他用途的應用程式。

  2. 從您的應用程式設定複製應用程式 ID應用程式秘密

  3. 導覽至錢包基礎設施 > 授權,然後選擇新金鑰以產生 P-256 金鑰對。

您將在下一個步驟中使用這四個值:

Credential 說明

App ID

您的 Privy 應用程式識別符

App Secret

server-to-server基本驗證的秘密

Authorization ID

來自 P-256 金鑰對的公有金鑰識別符

Authorization Private Key

來自 P-256 金鑰對的私有金鑰

如需包括安全最佳實務和登入資料輪換的完整詳細資訊,請參閱先決條件

步驟 2:將登入資料儲存在 AgentCore Identity 中

將您的付款供應商憑證儲存為 PaymentCredentialProvider。這會將秘密保存在 AWS Secrets Manager 中,而不是在您的應用程式程式碼中。

範例
Coinbase CDP
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-coinbase-credentials", credentialProviderVendor="CoinbaseCDP", coinbaseCdpConfig={ "apiKeyId": "<YOUR_CDP_API_KEY_ID>", "apiKeySecret": "<YOUR_CDP_API_KEY_SECRET>", "walletSecret": "<YOUR_CDP_WALLET_SECRET>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")
Privy
import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") credential_provider = client.create_payment_credential_provider( name="my-privy-credentials", credentialProviderVendor="StripePrivy", stripePrivyConfig={ "appId": "<YOUR_PRIVY_APP_ID>", "appSecret": "<YOUR_PRIVY_APP_SECRET>", "authorizationId": "<YOUR_PRIVY_AUTHORIZATION_ID>", "authorizationPrivateKey": "<YOUR_PRIVY_PRIVATE_KEY_BASE64>" } ) CREDENTIAL_PROVIDER_ARN = credential_provider["credentialProviderArn"] print(f"Credential provider created: {CREDENTIAL_PROVIDER_ARN}")

如需完整的請求和回應結構描述,請參閱 API 參考中的 CreatePaymentCredentialProvider

CLI 替代方案:存放登入資料

使用 AgentCore CLI,當您新增付款連接器時,登入資料儲存會自動發生 (步驟 3)。如果您打算使用 CLI 路徑,請略過此步驟。

步驟 3:建立付款管理員和連接器

Payment Manager 是協調付款操作的最上層資源。Payment Connector 會將管理員連結至您的付款供應商憑證。建立這些資源之前,請先設定所需的 IAM 角色,如 AgentCore 付款的 IAM 角色中所述。

範例
Console

如需包含 JWT 授權和自訂宣告的完整主控台演練,請參閱建立付款管理員和連接器

  1. 開啟 Amazon Bedrock AgentCore 主控台

  2. 在導覽窗格的建置下,選擇付款

  3. 選擇建立付款管理員

  4. 輸入 Payment Manager 的名稱

  5. 許可下,選擇建立並使用新的服務角色 (或選取現有的角色)。

  6. 傳入驗證下,選擇使用 IAM 使用者名稱進行 IAM 授權。

  7. (選用) 在付款連接器區段中,選擇連接器的名稱,然後選取現有的傳出身分驗證,或選取提供者 (Coinbase 或 Stripe Privy) 並輸入您的登入資料來建立新的身分驗證。

  8. 選擇建立付款管理員

AgentCore CLI

CLI 會在單一流程中建立登入資料提供者、Payment Manager 和 Payment Connector。從您的 AgentCore 專案目錄中,將付款管理員和連接器一起新增。

互動式精靈:

agentcore add payment-manager

精靈會提示管理員名稱、模式 (攔截器)、自動付款切換和預設花費限制。然後,它會詢問是否新增連接器,並逐步解說供應商選擇和登入資料輸入。

非互動式 (Coinbase CDP):

agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00 agentcore add payment-connector \ --manager my-payment-manager \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --api-key-id <YOUR_CDP_API_KEY_ID> \ --api-key-secret <YOUR_CDP_API_KEY_SECRET> \ --wallet-secret <YOUR_CDP_WALLET_SECRET>

非互動式 (Privy):

agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00 agentcore add payment-connector \ --manager my-payment-manager \ --name my-privy-connector \ --provider StripePrivy \ --app-id <YOUR_PRIVY_APP_ID> \ --app-secret <YOUR_PRIVY_APP_SECRET> \ --authorization-id <YOUR_PRIVY_AUTHORIZATION_ID> \ --authorization-private-key <YOUR_PRIVY_PRIVATE_KEY_BASE64>

新增後,部署 以佈建付款基礎設施:

agentcore deploy

部署步驟會建立 IAM 角色、將登入資料存放在 AgentCore Identity 中,以及佈建 Payment Manager 和 Connector。您會在輸出中看到「建立付款基礎設施...」。

AgentCore SDK

AgentCore SDK 會在單一呼叫中建立 Payment Manager、登入資料提供者和連接器。

from bedrock_agentcore.payments import PaymentClient payment_client = PaymentClient(region_name="us-west-2") response = payment_client.create_payment_manager_with_connector( payment_manager_name="my-first-payment-manager", payment_manager_description="Payment manager for my agent.", authorizer_type="AWS_IAM", role_arn="<YOUR_SERVICE_ROLE_ARN>", payment_connector_config={ "name": "my-coinbase-connector", "description": "Coinbase CDP connector", "payment_credential_provider_config": { "name": "my-coinbase-provider", "credential_provider_vendor": "CoinbaseCDP", "credentials": { "api_key_id": "<YOUR_CDP_API_KEY_ID>", "api_key_secret": "<YOUR_CDP_API_KEY_SECRET>", "wallet_secret": "<YOUR_CDP_WALLET_SECRET>", }, }, }, wait_for_ready=True, max_wait=300, poll_interval=5, ) PAYMENT_MANAGER_ARN = response["paymentManager"]["paymentManagerArn"] PAYMENT_CONNECTOR_ID = response["paymentConnector"]["paymentConnectorId"] print(f"Payment Manager ARN: {PAYMENT_MANAGER_ARN}") print(f"Connector ID: {PAYMENT_CONNECTOR_ID}")

對於 Stripe Privy,將 取代payment_credential_provider_configcredential_provider_vendor: "StripePrivy"和對應的 Privy 憑證。

AWS CLI

建立付款管理員:

aws bedrock-agentcore-control create-payment-manager \ --name "my-first-payment-manager" \ --authorizer-type AWS_IAM \ --role-arn "<YOUR_SERVICE_ROLE_ARN>" \ --region us-west-2

在管理員達到READY狀態後,建立登入資料提供者和連接器。如需完整的 CLI AWS 工作流程,請參閱建立付款管理員和連接器

AWS SDK

首先,建立 Payment Manager (兩個提供者相同):

import time manager = client.create_payment_manager( name="my-first-payment-manager", authorizerType="AWS_IAM", roleArn="<YOUR_SERVICE_ROLE_ARN>" ) PAYMENT_MANAGER_ARN = manager["paymentManagerArn"] print(f"Payment Manager created: {PAYMENT_MANAGER_ARN}") # Wait for the manager to reach READY state while True: status = client.get_payment_manager(paymentManagerArn=PAYMENT_MANAGER_ARN) if status["status"] == "READY": break print(f"Status: {status['status']}... waiting") time.sleep(5)

然後為您的供應商建立 Payment Connector:

Coinbase CDP:

connector = client.create_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, name="my-coinbase-connector", paymentConnectorType="CoinbaseCDP", credentialProviderArn=CREDENTIAL_PROVIDER_ARN ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(f"Connector created: {PAYMENT_CONNECTOR_ID}")

Privy:

connector = client.create_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, name="my-privy-connector", paymentConnectorType="StripePrivy", credentialProviderArn=CREDENTIAL_PROVIDER_ARN ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(f"Connector created: {PAYMENT_CONNECTOR_ID}")

如果您沒有服務角色,請參閱 AgentCore 付款的 IAM 角色,以取得建立服務角色的說明。主控台也可以代表您建立角色。如需完整的請求和回應結構描述,請參閱 API 參考中的 CreatePaymentManagerCreatePaymentConnector

步驟 4:建立付款工具

付款工具是您的代理程式用來代表使用者支付商家費用的內嵌加密錢包。每個工具都與特定的區塊鏈網路相關聯。

範例
AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) instrument = manager.create_payment_instrument( user_id="test-user-123", payment_connector_id=PAYMENT_CONNECTOR_ID, payment_instrument_type="EMBEDDED_CRYPTO_WALLET", payment_instrument_details={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")
AWS CLI
aws bedrock-agentcore create-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --user-id "test-user-123" \ --payment-instrument-type "EMBEDDED_CRYPTO_WALLET" \ --payment-instrument-details '{ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }' \ --client-token "$(uuidgen)" \ --region us-west-2

從回應儲存 paymentInstrumentIdredirectUrl

AWS SDK
import uuid dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2", endpoint_url="https://bedrock-agentcore.us-west-2.amazonaws.com") instrument = dp_client.create_payment_instrument( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID, paymentInstrumentType="EMBEDDED_CRYPTO_WALLET", paymentInstrumentDetails={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "your-email@example.com"}}] } }, clientToken=str(uuid.uuid4()), ) INSTRUMENT_ID = instrument["paymentInstrumentId"] REDIRECT_URL = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Instrument created: {INSTRUMENT_ID}") print(f"Fund the wallet at: {REDIRECT_URL}")

如需完整的請求和回應結構描述,請參閱 API 參考中的 CreatePaymentInstrument

為錢包提供資金並授予許可

在代理程式可以交易之前,最終使用者必須為錢包提供資金並授予簽署許可。redirectUrl 在瀏覽器中從上述回應開啟 。從錢包中樞,使用者可以:

  • 使用加密傳輸、信用卡/簽帳金融卡、Apple Pay、Google Pay 或 ACH 來補充錢包

  • 授予代理程式代其簽署交易的許可

對於測試環境,請使用睪丸 USDC 為錢包提供資金。

出資後,輪詢檢測狀態,直到變成 ACTIVE

範例
AgentCore SDK
instrument = manager.get_payment_instrument( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Status: {instrument['status']}")
AWS CLI
aws bedrock-agentcore get-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
while True: inst_status = dp_client.get_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) if inst_status["status"] == "ACTIVE": print("Instrument is active and funded.") break print(f"Instrument status: {inst_status['status']}... waiting for funding") time.sleep(10)

如需依供應商提供資金流程的詳細資訊,請參閱為錢包提供資金

步驟 5:建立付款工作階段

付款工作階段是具有選擇性花費限制的時間限制內容。當工作階段過期或預算用盡時,代理程式無法在該工作階段內進一步付款。

範例
AgentCore CLI

使用 CLI 時,您不需要手動建立工作階段。傳遞--auto-session至 ,agentcore invoke而 CLI 會使用您在付款管理員上設定的預設支出限制來建立或重複使用工作階段。

agentcore invoke \ --prompt "your prompt here" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

若要使用您透過 SDK 建立的特定工作階段,請傳遞 --payment-session-id而非 --auto-session

AgentCore SDK
from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) session = manager.create_payment_session( user_id="test-user-123", limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, expiry_time_in_minutes=60 ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")
AWS CLI
aws bedrock-agentcore create-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --user-id "test-user-123" \ --expiry-time-in-minutes 60 \ --limits '{"maxSpendAmount": {"value": "5.00", "currency": "USD"}}' \ --client-token "$(uuidgen)" \ --region us-west-2
AWS SDK
session = dp_client.create_payment_session( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, expiryTimeInMinutes=60, limits={"maxSpendAmount": {"value": "5.00", "currency": "USD"}}, clientToken=str(uuid.uuid4()), ) SESSION_ID = session["paymentSessionId"] print(f"Session created: {SESSION_ID} (expires in 60 minutes, $5.00 limit)")

如需完整的請求和回應結構描述,請參閱 API 參考中的 CreatePaymentSession

步驟 6:使用 Strands 代理程式處理付款

備妥所有資源後,建立可自動處理 x402 付款的 Strands 代理程式。當客服人員呼叫付費端點並收到 HTTP 402 回應時,付款外掛程式會簽署交易並重試請求。

範例
AgentCore CLI

使用付款內容調用您部署的代理程式。CLI 會在執行時間將付款檢測和工作階段傳遞給代理程式,而代理程式的 x402 攔截器會自動處理付款。

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --auto-session \ --payment-user-id test-user-123

若要傳遞明確的工作階段,而不是自動建立工作階段:

agentcore invoke \ --prompt "Access the premium endpoint at https://example-x402-merchant.com/paid-api" \ --payment-instrument-id <INSTRUMENT_ID> \ --payment-session-id <SESSION_ID> \ --payment-user-id test-user-123
AgentCore SDK

當您收到 HTTP 402 回應時,請使用 PaymentManager類別產生付款標頭:

import uuid from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=PAYMENT_MANAGER_ARN, region_name="us-west-2" ) # When you receive a 402 response, generate payment proof payment_required_request = { "statusCode": 402, "headers": payment_required["headers"], "body": payment_required["body"], } payment_proof_headers = manager.generate_payment_header( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, payment_required_request=payment_required_request, client_token=str(uuid.uuid4()), )

payment_proof_headers 包含付款證明標頭。將請求重試至付費端點時,請包含此標頭。

AWS CLI

使用 x402 承載process-payment直接呼叫 (當您自行處理付款協調時使用):

aws bedrock-agentcore process-payment \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --payment-instrument-id "$INSTRUMENT_ID" \ --payment-type "CRYPTO_X402" \ --payment-input '{ "cryptoX402": { "version": "2", "payload": { "scheme": "exact", "network": "eip155:84532", "amount": "100000", "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "payTo": "0xMERCHANT_ADDRESS", "maxTimeoutSeconds": 300, "extra": {"name": "USDC", "version": "2"} } } }' \ --client-token "$(uuidgen)" \ --region us-west-2

如需完整的請求和回應結構描述,請參閱 API 參考中的 ProcessPayment

AWS SDK
from strands import Agent from strands_tools import http_request from bedrock_agentcore.payments.integrations.config import AgentCorePaymentsPluginConfig from bedrock_agentcore.payments.integrations.strands.plugin import AgentCorePaymentsPlugin config = AgentCorePaymentsPluginConfig( payment_manager_arn=PAYMENT_MANAGER_ARN, user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID, payment_session_id=SESSION_ID, region="us-west-2", ) plugin = AgentCorePaymentsPlugin(config=config) agent = Agent( system_prompt="You are a helpful assistant that can access paid APIs.", tools=[http_request], plugins=[plugin], ) # The agent handles 402 responses automatically response = agent("Access the premium endpoint at https://example-x402-merchant.com/paid-api") print(response)

如需基礎 API 呼叫的完整請求和回應結構描述,請參閱 API 參考中的 ProcessPayment

驗證付款

客服人員處理付款後,請檢查工作階段以確認交易已記錄:

範例
AgentCore SDK
session = manager.get_payment_session( user_id="test-user-123", payment_session_id=SESSION_ID ) print(f"Status: {session['status']}, Remaining: {session['remainingAmount']}")

您也可以檢查檢測器餘額:

balance = manager.get_payment_instrument_balance( user_id="test-user-123", payment_instrument_id=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")
AWS CLI
aws bedrock-agentcore get-payment-session \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-session-id "$SESSION_ID" \ --region us-west-2 aws bedrock-agentcore get-payment-instrument-balance \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2
AWS SDK
session_status = dp_client.get_payment_session( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentSessionId=SESSION_ID ) print(f"Session status: {session_status['status']}") print(f"Amount spent: {session_status.get('spentAmount', '0.00')} USD")

您也可以檢查檢測器餘額:

balance = dp_client.get_payment_instrument_balance( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) print(f"Remaining balance: {balance['amount']} {balance['currency']}")

疑難排解

下列問題適用於技能型和手動設定路徑。

問題 解決方案

付款管理員卡在建立中

等待最多 2 分鐘。如果移至 CREATE_FAILED,請檢查您的服務角色 ARN 和許可是否正確。

「PaymentInstrument not active」

最終使用者必須先為錢包提供資金,並透過重新導向 URL 授予簽署許可,代理才能交易。

「工作階段已過期或超出預算」

建立具有較長過期時間或更高花費限制的新付款工作階段。

「找不到 CredentialProvider」

驗證登入資料提供者 ARN 符合您在步驟 2 中建立的內容。確保所有呼叫的區域一致。

ProcessPayment 傳回失敗

檢查錢包是否有足夠的 USDC 餘額來支付交易金額和瓦斯費用。

清除

刪除您在本教學課程中建立的資源:

範例
AgentCore CLI
agentcore remove payment-connector --manager my-payment-manager --name my-coinbase-connector --yes agentcore remove payment-manager --name my-payment-manager --yes agentcore deploy

remove 命令會更新本機組態。追蹤deploy會縮減您帳戶中的付款基礎設施。

AgentCore SDK
from bedrock_agentcore.payments import PaymentClient payment_client = PaymentClient(region_name="us-west-2") payment_client.delete_payment_manager( payment_manager_id="<paymentManagerId>" ) print("Payment Manager deleted.")
AWS CLI
aws bedrock-agentcore delete-payment-instrument \ --payment-manager-arn "$PAYMENT_MANAGER_ARN" \ --payment-instrument-id "$INSTRUMENT_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-connector \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --payment-connector-id "$PAYMENT_CONNECTOR_ID" \ --region us-west-2 aws bedrock-agentcore-control delete-payment-manager \ --payment-manager-id "$PAYMENT_MANAGER_ID" \ --region us-west-2
AWS SDK
# Delete payment instrument dp_client.delete_payment_instrument( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentInstrumentId=INSTRUMENT_ID ) # Delete payment connector client.delete_payment_connector( paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID ) # Delete payment manager client.delete_payment_manager( paymentManagerArn=PAYMENT_MANAGER_ARN ) print("All payment resources deleted.")

您已建置的內容

透過本教學課程,您建立了:

  • PaymentCredentialProvider — 存放在 AgentCore Identity 中的付款供應商憑證

  • PaymentManager — 協調付款操作的頂層資源

  • PaymentConnector — 管理員與外部付款供應商之間的整合

  • PaymentInstrument — 內嵌密碼錢包,由最終使用者提供資金和授權

  • PaymentSession — 有時間限制、預算限制的付款內容

  • Strands 代理程式:自動處理 x402 付款的 AI 代理程式

後續步驟