View a markdown version of this page

处理付款 - Amazon Bedrock AgentCore

处理付款

要处理付款,您需要两种资源:

  • 支付工具 — 带有Coinbase或Stripe的嵌入式加密钱包。请参阅创建付款工具

  • 付款会话 — 有时间限制的会话,可以选择强制执行支出预算。请参阅创建付款会话

两者都存在后,请ProcessPayment使用付款会话 ID、付款工具 ID 和 x402 付款有效负载进行调用。该服务验证请求,检查预算,在相应的区块链上签署交易,并返回加密证明。有关完整的请求和响应架构,请参阅 API 参考ProcessPayment中的。

提示

您可以使用 AWS 代理工具包中的 “ AgentCore 付款” 技能自动执行此页面上的步骤。该技能是 aws- agents 插件的一部分,它允许 AI 编码代理使用 CL agentcore I 创建您的支付管理器、连接器、凭证提供商、支付工具和会话,并向您的代理添加 x402 支付工具。有关详细信息,请参阅上的快速入门和AWS 代理工具包。 GitHub

有五种方法可以调用 ProcessPayment API:

AgentCore 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 user@example.com

要使用显式会话而不是自动创建会话,请执行以下操作:

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 user@example.com

部署的代理的 x402 插件拦截 HTTP 402 响应、呼叫ProcessPayment,并使用证据重试请求。需要 AgentCore CLI 版本 0.19.0 或更高版本。

AgentCore SDK

使用该PaymentManager类在任何代理框架内手动生成付款标题:

import uuid from bedrock_agentcore.payments import PaymentManager manager = PaymentManager( payment_manager_arn=mgr["paymentManagerArn"], 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["paymentInstrumentId"], payment_session_id=session["paymentSessionId"], payment_required_request=payment_required_request, client_token=str(uuid.uuid4()), )

payment_proof_headers包含付款证明标题。在向付费端点重试请求时,请包含此标头。您也可以调用process_payment方法PaymentManager来更好地控制输入。

AWS CLI
aws bedrock-agentcore process-payment \ --payment-manager-arn "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager" \ --payment-session-id "payment-session-abc123" \ --payment-instrument-id "payment-instrument-xyz789" \ --payment-type "CRYPTO_X402" \ --payment-input '{ "cryptoX402": { "version": "2", "payload": { "scheme": "exact", "network": "eip155:84532", "amount": "100000", "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "payTo": "0x99935f281d3ED1E804bF1413b76E0B03e1fed4F9", "maxTimeoutSeconds": 300, "extra": {"name": "USDC", "version": "2"} } } }' \ --client-token "$(uuidgen)" \ --region us-west-2
AWS SDK

使用完整的 x402 有效载荷process_payment直接拨打电话:

import uuid payment = dp_client.process_payment( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, paymentSessionId=SESSION_ID, paymentInstrumentId=INSTRUMENT_ID, paymentType="CRYPTO_X402", paymentInput={ "cryptoX402": { "version": "2", "payload": { "scheme": "exact", "network": "eip155:84532", "amount": "100000", "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e", "payTo": "0x99935f281d3ED1E804bF1413b76E0B03e1fed4F9", "maxTimeoutSeconds": 300, "extra": {"name": "USDC", "version": "2"}, }, } }, clientToken=str(uuid.uuid4()), )

响应:

{ "processPaymentId": "12345678-1234-1234-1234-123456789012", "paymentManagerArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/my-manager-a1b2c3d4e5", "paymentSessionId": "payment-session-abc123def4567", "paymentInstrumentId": "payment-instrument-xyz789abc1234", "paymentType": "CRYPTO_X402", "status": "PROOF_GENERATED", "paymentOutput": { "cryptoX402": { "version": "2", "payload": { "...signed transaction proof..." } } }, "createdAt": "2025-07-15T10:35:00Z", "updatedAt": "2025-07-15T10:35:02Z" }

A statusPROOF_GENERATED表示交易已签署,且加密证明已包含在中。paymentOutput

Strands SDK

AgentCore 付款插件为Strands Agents提供自动付款处理。它支持 x402 需要付款协议,使代理能够自动处理 HTTP 402 响应。

安装:

pip install 'bedrock-agentcore[strands-agents]'

配置和使用插件:

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 # Configure the plugin config = AgentCorePaymentsPluginConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", payment_instrument_id="payment-instrument-XJU4RSQP9VO0ler", payment_session_id="payment-session-xuzrnUCd7RT725G", region="us-west-2", ) # Create the plugin plugin = AgentCorePaymentsPlugin(config=config) # Create agent with the plugin agent = Agent( system_prompt="You are a helpful assistant that can access paid APIs.", tools=[http_request], plugins=[plugin], ) # Use the agent -- 402 responses are automatically handled agent("access https://drvd12nxpcyd5.cloudfront.net/market-recap")

AgentCore 付款插件会自动拦截 x402 付款请求,处理付款,然后使用代理的付款证明重试该请求。

LangGraph

AgentCore 支付中间件为 LangGraph 代理提供自动付款处理。它支持 x402 需要付款协议,使代理能够自动处理 HTTP 402 响应。

安装:

pip install 'bedrock-agentcore[langgraph]'

配置和使用中间件:

from langchain.agents import create_agent from bedrock_agentcore.payments.integrations.langgraph import ( AgentCorePaymentsConfig, AgentCorePaymentsMiddleware, ) config = AgentCorePaymentsConfig( payment_manager_arn="arn:aws:bedrock-agentcore:us-west-2:123456789012:payment-manager/pm-abc123", user_id="test-user-123", payment_instrument_id="payment-instrument-XJU4RSQP9VO0ler", region="us-west-2", auto_session=True, ) payments = AgentCorePaymentsMiddleware(config) agent = create_agent( model="us.anthropic.claude-sonnet-4-20250514-v1:0", tools=[], middleware=[payments], ) result = agent.invoke({"messages": [{"role": "user", "content": "access https://drvd12nxpcyd5.cloudfront.net/market-recap"}]}) print(result)

AgentCore 支付中间件会自动拦截 x402 付款请求,处理付款,然后使用代理的付款证明重试该请求。

框架集成

有关包括错误处理、配置选项和内置工具在内的完整参考文档,请参阅框架集成。

框架 集成类型 参考

Strands 特工

插件(基于挂钩)

中断处理、配置选项、内置工具

LangGraph

中间件(封装工具调用)

错误回调、许可名单、异步支持、配置选项