View a markdown version of this page

AgentCore Schnellstart für Zahlungen - Amazon Grundgestein AgentCore

AgentCore Schnellstart für Zahlungen

Dieses Tutorial führt Sie durch die Einrichtung von AgentCore Zahlungen und die Verarbeitung Ihrer ersten Mikrotransaktion. Am Ende bezahlt Ihr Agent für eine Ressource, die das x402-Protokoll in einem Testnetzwerk verwendet.

Sie können Zahlungen auf zwei Arten einrichten:

  • Nutzung des Skills „ AgentCore Zahlungen“ — Ein automatisiertes Setup-Erlebnis, bei dem alle Ressourcen im Rahmen eines geführten Gesprächs mit KI-Programmierern wie Kiro, Claude Code oder Codex bereitgestellt werden. Der Skill kümmert sich für Sie um CLI-Befehle, SDK-Skripte und die Framework-Verkabelung.

  • Verwenden von CLI, SDK oder Boto3 — Eine schrittweise manuelle Einrichtung mit der AgentCore CLI, dem AWS SDK oder der AWS CLI direkt.

Den Skill „Zahlungen“ verwenden AgentCore

Der Skill „ AgentCore Zahlungen“ automatisiert den gesamten Einrichtungsprozess mithilfe einer interaktiven, geführten Oberfläche. Sie stellt die folgenden Ressourcen bereit:

  • PaymentCredentialProvider— Speichert die Anmeldeinformationen des Zahlungsanbieters in AgentCore Identity.

  • Payment Manager — Die Ressource auf oberster Ebene, die Zahlungsvorgänge koordiniert.

  • Payment Connector — Verbindet den Manager über die AgentCore CLI mit Ihren Anmeldeinformationen.

  • Zahlungsinstrument — Eine Krypto-Wallet, die Ihr Agent verwendet, um Händler im Namen eines Benutzers zu bezahlen.

  • Zahlungssitzung — Ein zeitlich begrenzter Kontext mit Ausgabenlimits.

Der Skill überträgt Zahlungen auch über ein Framework-unabhängiges Tool an Ihren Agenten, sodass er mit Strands LangGraph, OpenAI Agents SDK oder einem beliebigen Python-Framework funktioniert.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • AWS Konto mit konfigurierten Anmeldeinformationen (aws configure)

  • Eine AWS Region, in der AgentCore Zahlungen verfügbar sind — us-east-1, us-west-2, eu-central-1 oder ap-southeast-2. AWS Siehe Unterstützte Regionen.

  • Node.js 20+ installiert (der Skill installiert die AgentCore CLI automatisch)

  • Ein Agent, der auf einen kostenpflichtigen Endpunkt zugreift — Mit diesem Skill kann Ihr Agent für x402-geschützte APIs bezahlen. Zum Testen können Sie den Sandbox-Endpunkt verwenden. https://sandbox.node4all.com/v1/x402-test

  • Das Agent Toolkit für das AWSaws-agents Plugin, das in Ihrem AI-Codierungsagenten installiert ist:

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

    Das Plugin wird automatisch aus dem Marketplace-Manifest erkannt. Führen Sie den folgenden Befehl aus, um den Marketplace hinzuzufügen:

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

Rufen Sie den Skill auf

Der Zahlungs-Skill ist Teil des agents-build Skills im Agent Toolkit für. AWS Um ihn auszulösen, beschreiben Sie Ihre Absicht in Ihrem KI-Codierungsagenten. Beispiel:

  • „Füge Zahlungen mit dem agents-build Skill aws-agents In-Plugin zu meinem Agenten hinzu“

  • „Richten Sie mithilfe des agents-build aws-agents Skill-In-Plug-ins Mikrotransaktionen für meinen Agenten ein“

  • „Ich muss 402 Antworten mit dem agents-build aws-agents Skill-In-Plugin bearbeiten, die für Zahlungen erforderlich sind“

  • „Weisen Sie meinen Agenten an, mithilfe des agents-build Skill-In-Plug-ins für x402-geschützte APIs zu bezahlen“ aws-agents

Der Skill erkennt zahlungsbezogene Absichten und lädt den Zahlungs-Workflow automatisch.

Was macht der Skill

Der Skill führt einen automatisierten Prozess durch, der Ihre Zahlungsinfrastruktur durchgängig bereitstellt. Der Skill führt die meisten Schritte automatisch aus und hält zweimal für Ihre Eingabe an:

  1. Überprüft oder installiert die AgentCore CLI und richtet das Projekt ein

  2. Erstellt den Zahlungsmanager

  3. Pausen — Sie laufenagentcore add payment-connector, um Ihre Anbietergeheimnisse (Coinbase CDP- oder Stripe Privy-Anmeldeinformationen) einzugeben

  4. Stellt Ressourcen für Ihr Konto bereit () AWS agentcore deploy -y

  5. Verbindet ein Framework-unabhängiges Zahlungstool () mit Ihrem Agenten x402_payment_tool.py

  6. Erstellt über das SDK eine benutzerspezifische Wallet (Instrument) und eine Sitzung mit begrenztem Budget

  7. Pausen — Sie autorisieren das Wallet (Delegation) und finanzieren es mit Testnet USDC von der Circle Faucet-Website

  8. Legt Umgebungsvariablen fest und führt eine Testzahlung für einen kostenpflichtigen Endpunkt aus

Bevor Sie den Connector-Befehl ausführen, holen Sie sich die Anmeldeinformationen von Ihrem Anbieter:

Ein erfolgreicher Start zeigt, dass der Agent anruftx402_fetch, eine erkennt402, die Zahlung über das AgentCore SDK abwickelt und den erneuten Versuch mit kostenpflichtigen Inhalten zurückgibt200.

Verwenden von CLI, SDK oder Boto3

In diesem Abschnitt werden Sie mithilfe der AgentCore CLI, AWS CLI oder AWS SDK (Boto3) manuell durch die einzelnen Schritte geführt.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • AWS Konto mit konfigurierten Anmeldeinformationen (aws configure)

  • Python 3.10+ installiert

  • Eine AWS Region, in der AgentCore Zahlungen verfügbar sind — us-east-1, us-west-2, eu-central-1 oder ap-southeast-2. AWS Siehe Unterstützte Regionen.

Installieren Sie die erforderlichen Pakete:

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

Stellen Sie sicher, dass Ihre Anmeldeinformationen konfiguriert sind:

aws sts get-caller-identity
Tipp

Wenn Sie AgentCore CLI v0.19.0 oder höher installiert haben, können Sie CLI-Befehle als Alternative zum SDK in den Schritten 2, 3, 5 und 6 verwenden. Jeder der folgenden Schritte zeigt beide Optionen.

Schritt 1: Besorgen Sie sich die Anmeldeinformationen des Zahlungsanbieters

AgentCore payments stellt eine Verbindung zu einem externen Zahlungsanbieter für Wallet-Operationen her. Sie benötigen Anmeldeinformationen von einem der unterstützten Anbieter, bevor Sie fortfahren können.

Beispiel
Coinbase CDP
  1. Loggen Sie sich auf der Coinbase Developer Platform ein und erstellen oder wählen Sie ein Projekt aus.

  2. Generieren Sie einen API-Schlüssel und notieren Sie sich die API-Schlüssel-ID, das API-Schlüsselgeheimnis und das Wallet-Secret.

  3. Aktivieren Sie unter Projekt > Wallets > Non-custodial Wallet > Sicherheit die Option Delegiertes Signieren.

Im nächsten Schritt werden Sie diese drei Werte verwenden:

Credential Description

API Key ID

Öffentliche Kennung für Ihr CDP-Projekt

API Key Secret

Privates Geheimnis zum Signieren von API-Anfragen

Wallet Secret

Geheim für kryptografische Wallet-Operationen (Adressen ableiten, Transaktionen signieren)

Privy
  1. Erstellen Sie eine spezielle Privy-App unter dashboard.privy.io. Verwenden Sie Apps, die anderen Zwecken dienen, nicht erneut.

  2. Kopieren Sie die App-ID und den App Secret aus Ihren App-Einstellungen.

  3. Navigieren Sie zu Wallet Infrastructure > Authorization und wählen Sie New Key, um ein P-256 key pair zu generieren.

Im nächsten Schritt werden Sie diese vier Werte verwenden:

Credential Description

App ID

Ihre Privy-Anwendungs-ID

App Secret

Geheim für Server-zu-Server-Basic-Auth

Authorization ID

Kennung des öffentlichen Schlüssels aus dem P-256 key pair

Authorization Private Key

Privater Schlüssel aus dem P-256 key pair

Vollständige Informationen, einschließlich bewährter Sicherheitsmethoden und Rotation von Anmeldeinformationen, finden Sie unter Voraussetzungen.

Schritt 2: Anmeldeinformationen in AgentCore Identity speichern

Speichern Sie die Anmeldeinformationen Ihres Zahlungsanbieters als PaymentCredentialProvider. Dadurch werden Geheimnisse in AWS Secrets Manager und nicht in Ihrem Anwendungscode aufbewahrt.

Beispiel
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}")

Das vollständige Anfrage- und Antwortschema finden Sie CreatePaymentCredentialProviderin der API-Referenz.

CLI-Alternative: Anmeldeinformationen speichern

Mit der AgentCore CLI erfolgt die Speicherung von Anmeldeinformationen automatisch, wenn Sie einen Zahlungskonnektor hinzufügen (Schritt 3). Überspringen Sie diesen Schritt, wenn Sie den CLI-Pfad verwenden möchten.

Schritt 3: Erstellen Sie einen Zahlungsmanager und einen Connector

Ein Zahlungsmanager ist die oberste Ressource, die Zahlungsvorgänge koordiniert. Ein Payment Connector verknüpft den Manager mit den Anmeldeinformationen Ihres Zahlungsanbieters. Bevor Sie diese Ressourcen erstellen, richten Sie die erforderlichen IAM-Rollen ein, wie unter IAM-Rollen für AgentCore Zahlungen beschrieben.

Beispiel
Console

Eine vollständige Anleitung für die Konsole, einschließlich JWT-Autorisierung und benutzerdefinierter Ansprüche, finden Sie unter Erstellen eines Zahlungsmanagers und eines Connectors.

  1. Öffnen Sie die Amazon AgentCore Bedrock-Konsole.

  2. Wählen Sie im Navigationsbereich unter Build die Option Payments aus.

  3. Wählen Sie Create Payment Manager aus.

  4. Geben Sie einen Namen für Ihren Zahlungsmanager ein.

  5. Wählen Sie unter Berechtigungen die Option Neue Servicerolle erstellen und verwenden (oder wählen Sie eine vorhandene Rolle aus).

  6. Wählen Sie unter Inbound Auth die Option IAM-Benutzernamen für die IAM-Autorisierung verwenden aus.

  7. (Optional) Wählen Sie im Bereich Payment Connector einen Namen für den Connector und wählen Sie entweder eine bestehende ausgehende Authentifizierung aus oder erstellen Sie eine neue, indem Sie Ihren Anbieter (Coinbase oder Stripe Privy) auswählen und Ihre Anmeldeinformationen eingeben.

  8. Wählen Sie „Zahlungsmanager erstellen“.

AgentCore CLI

Die CLI erstellt den Anmeldeinformationsanbieter, den Payment Manager und den Payment Connector in einem Arbeitsablauf. Fügen Sie aus Ihrem AgentCore Projektverzeichnis einen Zahlungsmanager und einen Connector zusammen hinzu.

Interaktiver Assistent:

agentcore add payment-manager

Der Assistent fordert Sie auf, den Namen des Managers, das Muster (Interceptor), die automatische Zahlungsoption und das Standardausgabenlimit einzugeben. Anschließend fragt er, ob ein Connector hinzugefügt werden soll, und führt die Anbieterauswahl und die Eingabe der Anmeldeinformationen durch.

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 (Geheimt):

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>

Nach dem Hinzufügen bereitstellen, um die Zahlungsinfrastruktur bereitzustellen:

agentcore deploy

Im Bereitstellungsschritt werden IAM-Rollen erstellt, Anmeldeinformationen in AgentCore Identity gespeichert und der Zahlungsmanager und der Connector bereitgestellt. In der Ausgabe wird „Zahlungsinfrastruktur wird erstellt...“ angezeigt.

AgentCore SDK

Das AgentCore SDK erstellt den Zahlungsmanager, den Anmeldeinformationsanbieter und den Connector in einem einzigen Aufruf.

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}")

Ersetzen Sie für Stripe Privy die payment_credential_provider_config durch credential_provider_vendor: "StripePrivy" und die entsprechenden Privy-Anmeldeinformationen.

AWS CLI

Erstellen Sie den Zahlungsmanager:

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

Wenn der Manager den READY Status erreicht hat, erstellen Sie einen Anmeldeinformationsanbieter und einen Connector. Den vollständigen AWS CLI-Workflow finden Sie unter Erstellen eines Zahlungsmanagers und Connectors.

AWS SDK

Erstellen Sie zunächst den Zahlungsmanager (derselbe für beide Anbieter):

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)

Erstellen Sie dann den Payment Connector für Ihren Anbieter:

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}")

Geheimt:

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}")

Wenn Sie noch keine Servicerolle haben, finden Sie unter IAM-Rollen für AgentCore Zahlungen Anweisungen zum Erstellen einer solchen. Die Konsole kann auch eine Rolle in Ihrem Namen erstellen. Die vollständigen Anfrage- und Antwortschemas finden Sie unter CreatePaymentManagerund CreatePaymentConnectorin der API-Referenz.

Schritt 4: Erstellen Sie ein Zahlungsinstrument

Ein Zahlungsinstrument ist eine eingebettete Krypto-Wallet, die Ihr Agent verwendet, um Händler im Namen eines Benutzers zu bezahlen. Jedes Instrument ist einem bestimmten Blockchain-Netzwerk zugeordnet.

Beispiel
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

Speichern Sie das paymentInstrumentId und redirectUrl aus der Antwort.

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}")

Das vollständige Anfrage- und Antwortschema finden Sie CreatePaymentInstrumentin der API-Referenz.

Finanzieren Sie das Wallet und gewähren Sie Berechtigungen

Bevor der Agent Transaktionen durchführen kann, muss der Endbenutzer das Wallet finanzieren und Signaturberechtigungen erteilen. Öffnen Sie die redirectUrl aus der obigen Antwort stammende Datei in einem Browser. Über den Wallet-Hub kann der Benutzer:

  • Die Brieftasche mit Kryptotransfer, credit/debit Karte, Apple Pay, Google Pay oder ACH aufladen

  • Erteilen Sie dem Agenten die Erlaubnis, Transaktionen in seinem Namen zu unterzeichnen

Für eine Testumgebung finanzieren Sie das Wallet mit Testnet USDC.

Fragen Sie nach der Finanzierung den Status des Instruments ab, bis dieser wie folgt lautet: ACTIVE

Beispiel
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)

Weitere Informationen zu den Finanzierungsströmen nach Anbietern findest du unter Finanzierung des Wallets.

Schritt 5: Erstellen Sie eine Zahlungssitzung

Eine Zahlungssitzung ist ein zeitlich begrenzter Kontext mit optionalen Ausgabenlimits. Wenn die Sitzung abläuft oder das Budget aufgebraucht ist, kann der Mitarbeiter innerhalb dieser Sitzung keine weiteren Zahlungen leisten.

Beispiel
AgentCore CLI

Wenn Sie die CLI verwenden, müssen Sie keine Sitzung manuell erstellen. Weiterleiten --auto-session an agentcore invoke und die CLI erstellt oder verwendet eine Sitzung mit dem Standard-Ausgabenlimit, das Sie im Zahlungsmanager konfiguriert haben.

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

Um eine bestimmte Sitzung zu verwenden, die Sie über das SDK erstellt haben, geben Sie --payment-session-id statt--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)")

Das vollständige Anfrage- und Antwortschema finden Sie CreatePaymentSessionin der API-Referenz.

Schritt 6: Verarbeiten Sie eine Zahlung mit einem Strons-Agenten

Wenn alle Ressourcen vorhanden sind, richten Sie einen Strons-Agenten ein, der x402-Zahlungen automatisch abwickelt. Wenn der Agent einen kostenpflichtigen Endpunkt anruft und eine HTTP 402-Antwort erhält, signiert das Zahlungs-Plugin die Transaktion und versucht die Anfrage erneut.

Beispiel
AgentCore CLI

Rufen Sie Ihren eingesetzten Agenten mit Zahlungskontext auf. Die CLI leitet das Zahlungsinstrument und die Sitzung zur Laufzeit an den Agenten weiter, und der x402-Interceptor des Agenten wickelt die Zahlung automatisch ab.

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

Um eine explizite Sitzung zu übergeben, anstatt eine automatisch zu erstellen:

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

Verwenden Sie die PaymentManager Klasse, um Zahlungskopfzeilen zu generieren, wenn Sie eine HTTP 402-Antwort erhalten:

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_headersenthält den Header des Zahlungsnachweises. Fügen Sie diesen Header hinzu, wenn Sie erneut versuchen, die Anfrage an den kostenpflichtigen Endpunkt zu senden.

AWS CLI

Rufen Sie process-payment direkt mit einer x402-Nutzlast an (wird verwendet, wenn Sie die Zahlungsorchestrierung selbst übernehmen):

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

Das vollständige Anfrage- und Antwortschema finden Sie ProcessPaymentin der API-Referenz.

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)

Das vollständige Anfrage- und Antwortschema des zugrunde liegenden API-Aufrufs finden Sie ProcessPaymentin der API-Referenz.

Überprüfen Sie die Zahlung

Nachdem der Mitarbeiter eine Zahlung bearbeitet hat, überprüfen Sie die Sitzung, um zu bestätigen, dass die Transaktion aufgezeichnet wurde:

Beispiel
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']}")

Sie können auch den Saldo des Instruments überprüfen:

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")

Sie können auch die Instrumentenbilanz überprüfen:

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

Fehlerbehebung

Die folgenden Probleme betreffen sowohl die auf Fertigkeiten basierenden als auch die manuellen Setup-Pfade.

Problem Lösung

Payment Manager blieb beim ERSTELLEN hängen

Warten Sie bis zu 2 Minuten. Wenn es zu CREATE_FAILED verschoben wird, überprüfen Sie, ob Ihr Dienstrollen-ARN und Ihre Berechtigungen korrekt sind.

„PaymentInstrument nicht aktiv“

Der Endbenutzer muss das Wallet finanzieren und über die Umleitungs-URL Signierberechtigungen gewähren, bevor der Agent Transaktionen durchführen kann.

„Die Sitzung ist abgelaufen oder das Budget wurde überschritten“

Erstellen Sie eine neue Zahlungssitzung mit einem längeren Ablauf oder einem höheren Ausgabenlimit.

„CredentialProvider nicht gefunden“

Stellen Sie sicher, dass der ARN des Anmeldeinformationsanbieters mit dem übereinstimmt, was Sie in Schritt 2 erstellt haben. Stellen Sie sicher, dass die Region bei allen Anrufen einheitlich ist.

ProcessPayment gibt FAILED zurück

Vergewissern Sie sich, dass die Brieftasche über ein ausreichendes USDC-Guthaben für den Transaktionsbetrag zuzüglich Gasgebühren verfügt.

Bereinigen

Löschen Sie die Ressourcen, die Sie in diesem Tutorial erstellt haben:

Beispiel
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

Die remove Befehle aktualisieren die lokale Konfiguration. Das deploy Follow-up zerstört die Zahlungsinfrastruktur in Ihrem Konto.

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.")

Was du gebaut hast

Mit diesem Tutorial haben Sie Folgendes erstellt:

  • PaymentCredentialProvider— Die in AgentCore Identity gespeicherten Anmeldeinformationen des Zahlungsanbieters

  • PaymentManager— Top-level Ressourcen, die Zahlungsvorgänge koordinieren

  • PaymentConnector— Integration zwischen Ihrem Manager und dem externen Zahlungsanbieter

  • PaymentInstrument— Eine eingebettete Krypto-Wallet, die vom Endbenutzer finanziert und autorisiert wird

  • PaymentSession— Ein zeitlich begrenzter, budgetbegrenzter Zahlungskontext

  • Strands Agent — Ein KI-Agent, der x402-Zahlungen automatisch abwickelt

Nächste Schritte