View a markdown version of this page

AgentCore 付款快速入门 - Amazon Bedrock AgentCore

AgentCore 付款快速入门

本教程将引导您完成设置 AgentCore 付款和处理第一笔微交易的过程。最后,您的代理将在测试网络上使用 x402 协议为资源付费。

您可以通过两种方式设置付款:

  • 使用 AgentCore 支付技能 — 一种自动设置体验,通过与 Kiro、Claude Code 或 Codex 等人工智能编码代理进行引导式对话来配置所有资源。该技能将为您处理 CLI 命令、SDK 脚本和框架布线。

  • 使用 CLI、SDK 或 Boto3 — 直接使用 CLI、 AWS SDK 或 AgentCore CLI 进行分步手动设置。 AWS

使用 “ AgentCore 付款” 技能

AgentCore Payments 技能通过交互式引导式体验自动完成整个设置过程。它提供了以下资源:

  • PaymentCredentialProvider— 在 “ AgentCore 身份” 中存储支付提供商凭证。

  • 付款管理器-协调付款操作的顶级资源。

  • 付款连接器-通过 AgentCore CLI 将管理员链接到您的凭证。

  • 支付工具 — 您的代理用来代表用户向商家付款的加密钱包。

  • 付款会话 — 具有支出限制的时限背景。

该技能还使用与框架无关的工具将付款汇入你的代理,因此它可以与 Strands、OpenAI Agents SDK 或任 LangGraph何 Python 框架配合使用。

先决条件

在开始之前,请确保你有:

  • AWS 已配置凭据的@@ 账户 (aws configure)

  • 可以 AgentCore 付款的 AWS 区域 — us-east-1、us-w est-2、eu-central-1 或 ap-southeast-2。参见支持的 AWS 区域

  • Node.js 已安装 20 多个(技能会自动安装 AgentCore CLI)

  • 访问付费端点的代理 — 该技能使您的代理能够为受 x402 保护的 API 付费。要进行测试,您可以使用沙盒端点https://sandbox.node4all.com/v1/x402-test

  • 安装@@ 在 AI 编码代理中的 AWSaws-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 “需要付款”

  • “使用插件中的agents-build技能向我的代理发送电汇以支付受 x402 保护的 API 的费用” aws-agents

该技能可检测与付款相关的意图并自动加载付款工作流程。

该技能能起到什么作用

该技能运行一个自动化流程,可以端到端地配置您的支付基础设施。该技能会自动运行大多数步骤,并会暂停两次以供你输入:

  1. 验证或安装 C AgentCore LI 并设置项目

  2. 创建付款管理器

  3. 暂停 — 你跑agentcore add payment-connector去输入你的提供商机密(Coinbase CDP 或 Stripe Privy 凭证)

  4. 将资源部署到您的 AWS 账户 () agentcore deploy -y

  5. 将与框架无关的支付工具 () x402_payment_tool.py 连接到您的代理

  6. 通过 SDK 创建按用户使用的钱包(工具)和预算有限的会话

  7. 暂停 — 您授权钱包(委托),并使用来自 Circle 水龙头网站的测试网 USDC 为其注资

  8. 设置环境变量并针对付费端点运行测试付款

在运行连接器命令之前,请从您的提供商那里获取凭证:

成功运行表示代理调用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-w est-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 或更高版本,则可以在步骤 2、3、5 和 6 中使用 CLI 命令作为开发工具包的替代方案。以下每个步骤都显示了这两个选项。

第 1 步:获取支付服务提供商凭证

AgentCore payments 连接到外部支付提供商进行钱包操作。在继续操作之前,您需要从其中一个支持的提供商那里获得证书。

Coinbase CDP
  1. 登录 Coinbase 开发者平台并创建或选择一个项目。

  2. 生成 API 密钥并记下 API 密钥 IDAPI 密钥密钥钱包密钥。

  3. 在 “项目” > “钱包” > “Non-custodial 钱包” > “安全” 下,启用委托签名

您将在下一步中使用这三个值:

凭证 说明

API Key ID

您的 CDP 项目的公共标识符

API Key Secret

用于签署 API 请求的私有密钥

Wallet Secret

加密钱包操作的秘密(获取地址、签署交易)

Privy
  1. 在 d ash board.privy.io 上创建专用 Privy 应用程序。请勿重复使用用于其他目的的应用程序。

  2. 从您的应用程序设置中复制应用程序 ID 和应用程序密钥

  3. 导航至 “钱包基础架构” > “授权”,然后选择 “新密钥” 以生成 P-256 密钥对。

您将在下一步中使用这四个值:

凭证 说明

App ID

你的 Privy 应用程序标识符

App Secret

服务器到服务器基本身份验证的秘密

Authorization ID

key pair 中的公 P-256 钥标识符

Authorization Private Key

来自 key pair 的私 P-256 钥

有关完整详细信息,包括安全最佳实践和证书轮换,请参阅先决条件

步骤 2:在 “ AgentCore 身份” 中存储凭证

将您的支付服务提供商凭证存储为 PaymentCredentialProvider. 这会将机密保存在S AWS ecrets 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 步:创建付款管理器和连接器

付款管理器是协调付款操作的顶级资源。付款连接器将管理员链接到您的支付服务提供商凭证。在创建这些资源之前,请按照 IAM AgentCore 付款角色中所述设置所需的 IAM 角色

Console

有关完整的控制台演练(包括 JWT 授权和自定义声明),请参阅创建付款管理器和连接器

  1. 打开 Amazon Bedrock AgentCore 控制台

  2. 在导航窗格的 “构建” 下,选择 “付款”。

  3. 选择 “创建付款管理器”

  4. 输入您的付款管理器的姓名

  5. 在 “权限” 下,选择创建并使用新的服务角色(或选择现有角色)。

  6. 入站身份验证下,选择使用 IAM 用户名进行 I AM 授权。

  7. (可选)在支付连接器部分中,为连接器选择一个名称,然后选择现有的出站身份验证,或者通过选择您的提供商(Coinbase 或 Stripe Privy)并输入您的凭据来创建新的出站身份验证。

  8. 选择 “创建付款管理器”

AgentCore CLI

CLI 在一个流程中创建凭证提供商、付款管理器和支付连接器。在您的 AgentCore 项目目录中,将付款管理器和连接器一起添加。

交互式向导:

agentcore add payment-manager

向导会提示输入经理姓名、模式(拦截器)、自动付款切换开关和默认支出限额。然后,它会询问是否添加连接器,并逐步完成提供商选择和凭据输入。

Non-interactive (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>

Non-interactive (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 角色,在 Ident AgentCore ity 中存储证书,并配置支付管理器和连接器。您将在输出中看到 “创建支付基础设施...”。

AgentCore SDK

S AgentCore DK 只需一次调用即可创建付款管理器、凭证提供商和连接器。

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,请将替换为credential_provider_vendor: "StripePrivy"和相应的 Privy payment_credential_provider_config 凭据。

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状态后,创建凭据提供程序和连接器。有关完整的 AWS CLI 工作流程,请参阅创建付款管理器和连接器

AWS SDK

首先,创建付款管理器(两个提供商都相同):

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)

然后为您的提供商创建支付连接器:

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 参考CreatePaymentConnector中的CreatePaymentManager和。

第 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

保存响应redirectUrl中的paymentInstrumentId和。

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中打开上面响应中的。通过钱包中心,用户可以:

  • 使用加密货币转账、 credit/debit 信用卡、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-sessionagentcore 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 未激活”

最终用户必须通过重定向网址向钱包注资并授予签名权限,然后代理才能进行交易。

“会话已过期或超出预算”

创建到期时间更长或支出限额更高的新付款会话。

“CredentialProvider 未找到”

验证凭证提供者 ARN 是否与您在步骤 2 中创建的 ARN 相匹配。确保所有呼叫的区域一致。

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— 存储在 Ident AgentCore ity 中的支付提供商凭证

  • PaymentManager— 协调支付业务的 Top-level 资源

  • PaymentConnector— 您的经理和外部支付提供商之间的集成

  • PaymentInstrument— 嵌入式加密钱包,由最终用户资助和授权

  • PaymentSession— 有时间限制、预算有限的支付环境

  • Strands Agent — 自动处理 x402 付款的人工智能代理

后续步骤