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:
-
Überprüft oder installiert die AgentCore CLI und richtet das Projekt ein
-
Erstellt den Zahlungsmanager
-
Pausen — Sie laufenagentcore add payment-connector, um Ihre Anbietergeheimnisse (Coinbase CDP- oder Stripe Privy-Anmeldeinformationen) einzugeben
-
Stellt Ressourcen für Ihr Konto bereit () AWS agentcore deploy -y
-
Verbindet ein Framework-unabhängiges Zahlungstool () mit Ihrem Agenten x402_payment_tool.py
-
Erstellt über das SDK eine benutzerspezifische Wallet (Instrument) und eine Sitzung mit begrenztem Budget
-
Pausen — Sie autorisieren das Wallet (Delegation) und finanzieren es mit Testnet USDC von der Circle Faucet-Website
-
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
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
-
-
Loggen Sie sich auf der Coinbase Developer Platform ein und erstellen oder wählen Sie ein Projekt aus.
-
Generieren Sie einen API-Schlüssel und notieren Sie sich die API-Schlüssel-ID, das API-Schlüsselgeheimnis und das Wallet-Secret.
-
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
-
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.
-
Öffnen Sie die Amazon AgentCore Bedrock-Konsole.
-
Wählen Sie im Navigationsbereich unter Build die Option Payments aus.
-
Wählen Sie Create Payment Manager aus.
-
Geben Sie einen Namen für Ihren Zahlungsmanager ein.
-
Wählen Sie unter Berechtigungen die Option Neue Servicerolle erstellen und verwenden (oder wählen Sie eine vorhandene Rolle aus).
-
Wählen Sie unter Inbound Auth die Option IAM-Benutzernamen für die IAM-Autorisierung verwenden aus.
-
(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.
-
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