View a markdown version of this page

AgentCore avvio rapido dei pagamenti - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AgentCore avvio rapido dei pagamenti

Questo tutorial illustra la configurazione AgentCore dei pagamenti e l'elaborazione della prima microtransazione. Alla fine, il tuo agente pagherà una risorsa utilizzando il protocollo x402 su una rete di test.

Puoi impostare i pagamenti in due modi:

  • Utilizzo della funzionalità AgentCore Payments: un'esperienza di configurazione automatica che fornisce tutte le risorse tramite una conversazione guidata con agenti di codifica AI come Kiro, Claude Code o Codex. L'abilità gestisce i comandi CLI, gli script SDK e il cablaggio del framework per te.

  • Utilizzo di CLI, SDK o Boto3: una configurazione manuale dettagliata che utilizza direttamente la CLI, l'SDK o la CLI. AgentCore AWS AWS

Puoi fornire le credenziali in due modi quando crei un connettore Coinbase. Con Quick create (consigliato), autorizzi tramite Coinbase e le disposizioni AgentCore sui pagamenti e memorizza le credenziali al posto tuo, senza chiavi da generare o incollare. Con Manual, fornisci le chiavi API Coinbase che hai generato tu stesso. Stripe (Privy) utilizza solo il flusso manuale. Con Quick create, salti i passaggi 1 e 2 della configurazione manuale.

Utilizzo dell'abilità AgentCore Pagamenti

L'abilità AgentCore Payments automatizza l'intero processo di configurazione attraverso un'esperienza interattiva e guidata. Fornisce le seguenti risorse:

  • PaymentCredentialProvider— Memorizza le credenziali del fornitore di servizi di pagamento in AgentCore Identity.

  • Payment Manager: la risorsa di primo livello che coordina le operazioni di pagamento.

  • Payment Connector: collega il gestore alle tue credenziali tramite la CLI AgentCore .

  • Strumento di pagamento: un portafoglio crittografico che il tuo agente utilizza per pagare i commercianti per conto di un utente.

  • Sessione di pagamento: un contesto limitato nel tempo con limiti di spesa.

L'abilità trasferisce inoltre i pagamenti al tuo agente con uno strumento indipendente dal framework, quindi funziona con Strands LangGraph, OpenAI Agents SDK o qualsiasi framework Python.

Prerequisiti

Prima di iniziare, assicurati di avere:

  • AWS Account con credenziali configurate () aws configure

  • Una AWS regione in cui sono disponibili AgentCore i pagamenti: vedi AWS Aree Supportata AWS Regioni supportate.

  • Un abbonamento a Coinbase AWS Marketplace (solo Coinbase): se utilizzi Coinbase come fornitore di servizi di pagamento, devi abbonarti all'elenco di Coinbase Wallets for AgentCore Payments nel Marketplace. AWS Con questo abbonamento, i costi di utilizzo del portafoglio Coinbase vengono consolidati nella AWS fattura mensile in base ai prezzi di Coinbase sul sito web di Coinbase. https://docs.cdp.coinbase.com/wallets/pricing Vedi Abbonarsi ai portafogli Coinbase per i pagamenti in Marketplace. AgentCore AWS

  • Node.js 20+ installati (l'abilità installa automaticamente la CLI) AgentCore

  • Un agente che accede a un endpoint a pagamento: l'abilità consente al tuo agente di pagare per le API protette da x402. Per i test, puoi utilizzare l'endpoint sandbox. https://sandbox.node4all.com/v1/x402-test

  • L'Agent Toolkit per il AWS aws-agents plug-in installato nel tuo agente di codifica AI:

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

    Il plug-in viene scoperto automaticamente dal manifesto del marketplace. Per aggiungere il marketplace, esegui il comando seguente:

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

Invoca l'abilità

L'abilità relativa ai pagamenti fa parte dell'agents-buildabilità di Agent Toolkit per. AWS Per attivarla, descrivi la tua intenzione nel tuo agente di codifica AI. Ad esempio:

  • «Aggiungi pagamenti al mio agente usando il plugin agents-build Skill inaws-agents»

  • «Configura le microtransazioni per il mio agente usando il aws-agents plugin agents-build Skill in»

  • «Devo gestire le 402 risposte richieste di pagamento utilizzando il plugin agents-build Skill inaws-agents»

  • «Telefona al mio agente per pagare le API protette da x402 utilizzando il plugin Skill in» agents-build aws-agents

La skill rileva l'intento relativo al pagamento e carica automaticamente il flusso di lavoro dei pagamenti.

A cosa serve l'abilità

La competenza esegue un processo automatizzato che fornisce la tua infrastruttura di pagamento end-to-end. La skill esegue automaticamente la maggior parte dei passaggi e si interrompe due volte per ricevere i tuoi input:

  1. Verifica o installa la AgentCore CLI e configura il progetto

  2. Crea il gestore dei pagamenti

  3. Pause: aggiungi un connettore di pagamento. Per Coinbase con Quick create (consigliato), autorizzi le credenziali tramite Coinbase e AgentCore Payments Provisions al posto tuo, senza segreti da inserire. Per Coinbase manual o Stripe (Privy), corri a inserire i segreti del tuo provider. agentcore add payment-connector

  4. Distribuisce risorse sul tuo account () AWS agentcore deploy -y

  5. Trasferisce al tuo agente uno strumento di pagamento indipendente dal framework () x402_payment_tool.py

  6. Crea un portafoglio (strumento) per utente e una sessione con budget limitato tramite l'SDK

  7. Pause: autorizzi il portafoglio (delega) e lo finanzi con il testnet USDC dal sito web Circle faucet https://faucet.circle.com/

  8. Imposta le variabili di ambiente ed esegue un pagamento di prova su un endpoint a pagamento

Se utilizzi il flusso manuale (manuale Coinbase o Stripe Privy), ottieni le credenziali dal tuo provider prima di aggiungere il connettore. Con Coinbase Quick create, salti questo passaggio: autorizzi tramite Coinbase invece di incollare le chiavi.

Una corretta esecuzione mostra che l'agente chiamax402_fetch, rileva un 402 messaggio, salda il pagamento tramite l' AgentCore SDK e riprova a restituire i contenuti a pagamento. 200

Utilizzo di CLI, SDK o Boto3

Questa sezione illustra manualmente ogni passaggio utilizzando la AgentCore CLI, la CLI o l'SDK ( AWS Boto3). AWS

Prerequisiti

Prima di iniziare, assicurati di avere:

Installa i pacchetti richiesti:

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

Verifica che le tue credenziali siano configurate:

aws sts get-caller-identity
Suggerimento

Se hai installato la AgentCore CLI v0.19.0 o successiva, puoi utilizzare i comandi CLI come alternativa all'SDK nei passaggi 2, 3, 5 e 6. Ogni passaggio seguente mostra entrambe le opzioni.

Fase 1: Ottenere le credenziali del gestore dei pagamenti (flusso manuale)

I passaggi 1 e 2 si applicano al flusso manuale delle credenziali: Coinbase (manuale) o Stripe (Privy).

Nota

Utilizzo di Quick create per Coinbase (consigliato). Salta i passaggi 1 e 2 e vedi il passaggio 3. AgentCore i pagamenti ti forniscono le credenziali Coinbase dopo l'autorizzazione tramite Coinbase: non ottieni né memorizzi alcuna chiave.

AgentCore payments si connette a un fornitore di servizi di pagamento esterno per le operazioni di portafoglio. Prima di procedere, sono necessarie le credenziali di uno dei provider supportati.

Esempio
Coinbase CDP
  1. Accedi alla Coinbase Developer Platform e crea o accedi al tuo account. Scelta di un progetto.

  2. Accedi alla dashboard delle chiavi API, scegli Crea chiave API segreta e annota l'API Key ID e l'API Key Secret. Torna al tuo progetto.

  3. In Prodotti > Portafogli > Non-custodial Portafoglio > Sicurezza, scegli Genera nuovo sotto Genera il segreto del portafoglio e annota il segreto del portafoglio.

  4. In Prodotti > Portafogli > Non-custodial Portafoglio > Sicurezza, abilita la firma delegata.

Utilizzerai questi valori nel passaggio successivo:

Credential Description

API Key ID

Identificatore pubblico per il tuo progetto CDP

API Key Secret

Segreto privato per la firma delle richieste API

Wallet Secret

Segreto per le operazioni dei portafogli crittografici (derivazione degli indirizzi, firma delle transazioni)

Privy
  1. Crea un'app Privy dedicata su dashboard.privy.io. https://dashboard.privy.io/ Non riutilizzare app che servono ad altri scopi.

  2. Copia l'App ID e l'App Secret dalle impostazioni dell'app.

  3. Accedi a Wallet Infrastructure > Autorizzazione e scegli Nuova chiave per generare una coppia di P-256 chiavi.

Utilizzerai questi quattro valori nel passaggio successivo:

Credential Description

App ID

L'identificatore della tua applicazione Privy

App Secret

Segreto per l'autenticazione di base da server a server

Authorization ID

Identificatore di chiave pubblica derivante dalla coppia di chiavi P-256

Authorization Private Key

Chiave privata della coppia di P-256 chiavi

Per i dettagli completi, comprese le best practice di sicurezza e la rotazione delle credenziali, vedi Prerequisiti.

Fase 2: Archivia le credenziali in AgentCore Identity (flusso manuale)

Memorizza le credenziali del tuo gestore dei pagamenti come PaymentCredentialProvider. Ciò mantiene i AWS segreti in Secrets Manager anziché nel codice dell'applicazione. Se stai usando Coinbase Quick create, salta questo passaggio. AgentCore payments crea e memorizza il fornitore delle credenziali per te nel passaggio 3.

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

Per lo schema completo di richiesta e risposta, consulta CreatePaymentCredentialProvider l'API Reference.

Alternativa alla CLI: memorizza le credenziali

Con la AgentCore CLI, l'archiviazione delle credenziali avviene automaticamente quando aggiungi un connettore di pagamento (Fase 3). Salta questo passaggio se prevedi di utilizzare il percorso CLI.

Fase 3: Creare un gestore e un connettore dei pagamenti

Un Payment Manager è la risorsa di primo livello che coordina le operazioni di pagamento. Un Payment Connector collega il gestore alle credenziali del gestore dei pagamenti. Prima di creare queste risorse, configura i ruoli IAM richiesti come descritto in Ruoli IAM per i AgentCore pagamenti.

Innanzitutto, crea il Payment Manager (comune a tutti i provider):

Esempio
Console
  1. Apri la AgentCore console https://console.aws.amazon.com/bedrock-agentcore/ Amazon Bedrock.

  2. Nel pannello di navigazione, in Crea, scegli Pagamenti.

  3. Scegli Crea gestore dei pagamenti, inserisci un nome e in Autorizzazioni scegli Crea e usa un nuovo ruolo di servizio (o seleziona un ruolo esistente).

  4. In Inbound Auth, scegli Usa nome utente IAM.

  5. Scegli Crea gestore dei pagamenti. Aggiungi il connettore nella sezione del provider di seguito.

Per la procedura dettagliata completa sulla console, che include l'autorizzazione JWT e i reclami personalizzati, vedi Creare un gestore e un connettore dei pagamenti.

AgentCore CLI
agentcore add payment-manager \ --name my-payment-manager \ --auto-payment \ --default-spend-limit 5.00

Aggiungi il connettore nella sezione del provider di seguito, quindi esegui. agentcore deploy

AgentCore SDK
from bedrock_agentcore.payments.client import PaymentClient payment_client = PaymentClient(region_name="us-west-2") manager = payment_client.create_payment_manager( name="my-first-payment-manager", authorizer_type="AWS_IAM", role_arn="<YOUR_SERVICE_ROLE_ARN>", ) PAYMENT_MANAGER_ID = manager["paymentManagerId"]

Usa PAYMENT_MANAGER_ID with payment_client per creare il connettore nella sezione provider riportata di seguito.

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

Attendi che il gestore lo raggiungaREADY, quindi crea il connettore nella sezione provider riportata di seguito.

AWS SDK
import time manager = client.create_payment_manager( name="my-first-payment-manager", authorizerType="AWS_IAM", roleArn="<YOUR_SERVICE_ROLE_ARN>" ) PAYMENT_MANAGER_ID = manager["paymentManagerId"] while client.get_payment_manager(paymentManagerId=PAYMENT_MANAGER_ID)["status"] != "READY": time.sleep(5)

Quindi crea un connettore di pagamento per il tuo provider. Scegli la sezione Coinbase (Creazione rapida o Manuale) o la sezione Stripe (Privy).

Coinbase — Creazione rapida (consigliata)

Con Quick create, non si ottengono né si archiviano le credenziali Coinbase. Nella console, puoi completare questa operazione scegliendo Creazione rapida con Coinbase. Con AWS CLI, AWS SDK, AgentCore CLI o AgentCore SDK, passa provisionMode=QUICK_CREATE con un elenco di credenziali vuoto. Il connettore inizia e restituisce un. PENDING_AUTHENTICATION authorizationUrl Si apre il file restituito authorizationUrl in un browser. Dopo l'autorizzazione tramite Coinbase, AgentCore Payments fornisce le credenziali e sposta il connettore su. READY

Esempio
Console
  1. Nella sezione Connettore di pagamento, scegli Aggiungi autenticazione in uscita > Crea autenticazione di pagamento e per Payment provider scegli Coinbase.

  2. Scegli Configurazioni di creazione rapida (consigliata), quindi scegli Crea autenticazione di pagamento.

  3. Si apre una finestra Coinbase: accedi o registrati e autorizza (collega) il tuo account Coinbase CDP.

  4. AgentCore payments fornisce la chiave API Coinbase CDP e il segreto di Wallet e li archivia per te. Il connettore si sposta da aPENDING_AUTHENTICATION. READY

AgentCore CLI
agentcore add payment-connector \ --manager my-payment-manager \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --provision-mode QUICK_CREATE agentcore deploy

La CLI apre il flusso di autorizzazione di Coinbase. Dopo l'autorizzazione, il servizio fornisce le credenziali e il connettore le raggiunge. READY

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-coinbase-connector", connector_type="CoinbaseCDP", credential_provider_configurations=[], provision_mode="QUICK_CREATE", ) # Open connector["authorizationUrl"], authorize through Coinbase, # then poll get_payment_connector until status == "READY".
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-coinbase-connector" \ --type CoinbaseCDP \ --credential-provider-configurations '[]' \ --provision-mode QUICK_CREATE \ --region us-west-2

La risposta include status: PENDING_AUTHENTICATION e un. authorizationUrl Apri l'URL in un browser e completa l'autorizzazione Coinbase, quindi esegui il polling finché il connettore non è: READY

aws bedrock-agentcore-control get-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --payment-connector-id "<PAYMENT_CONNECTOR_ID>" \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-coinbase-connector", type="CoinbaseCDP", credentialProviderConfigurations=[], provisionMode="QUICK_CREATE", ) PAYMENT_CONNECTOR_ID = connector["paymentConnectorId"] print(connector["status"], connector.get("authorizationUrl")) # PENDING_AUTHENTICATION https://... # Open the authorizationUrl, authorize, then poll get_payment_connector until READY.

Coinbase — Manuale

Usa le credenziali Coinbase CDP che hai generato tu stesso (passaggi 1—2). Crea il fornitore di credenziali, quindi crea il connettore facendo riferimento al relativo ARN. Per la procedura dettagliata manuale della console o della AgentCore CLI, consulta Creazione di un gestore e di un connettore dei pagamenti.

Esempio
AgentCore CLI
agentcore add payment-connector \ --manager <manager-name> \ --name my-coinbase-connector \ --provider CoinbaseCDP \ --api-key-id <YOUR_API_KEY_ID> \ --api-key-secret <YOUR_API_KEY_SECRET> \ --wallet-secret <YOUR_WALLET_SECRET> agentcore deploy

La CLI memorizza le credenziali in AgentCore Identity e crea il connettore durante l'esecuzione. agentcore deploy

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-coinbase-connector", connector_type="CoinbaseCDP", credential_provider_configurations=[ {"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}} ], )
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-coinbase-connector" \ --type CoinbaseCDP \ --credential-provider-configurations '[{"coinbaseCDP":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-coinbase-connector", type="CoinbaseCDP", credentialProviderConfigurations=[{"coinbaseCDP": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}], )

Stripe (Privy) — Manuale

Stripe (Privy) utilizza solo il flusso manuale. Crea il provider di credenziali dalle tue credenziali Privy (passaggi 1—2), quindi crea il connettore che fa riferimento al relativo ARN. Per la procedura dettagliata manuale della Console o della AgentCore CLI, consulta Creazione di un gestore e di un connettore dei pagamenti. Crea un gestore e un connettore dei pagamenti

Esempio
AgentCore CLI
agentcore add payment-connector \ --manager <manager-name> \ --name my-privy-connector \ --provider StripePrivy \ --app-id <YOUR_APP_ID> \ --app-secret <YOUR_APP_SECRET> \ --authorization-id <YOUR_AUTHORIZATION_ID> \ --authorization-private-key <YOUR_PRIVATE_KEY_BASE64> agentcore deploy

La CLI memorizza le credenziali in AgentCore Identity e crea il connettore durante l'esecuzione. agentcore deploy

AgentCore SDK
connector = payment_client.create_payment_connector( payment_manager_id=PAYMENT_MANAGER_ID, name="my-privy-connector", connector_type="StripePrivy", credential_provider_configurations=[ {"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}} ], )
AWS CLI
aws bedrock-agentcore-control create-payment-connector \ --payment-manager-id "<PAYMENT_MANAGER_ID>" \ --name "my-privy-connector" \ --type StripePrivy \ --credential-provider-configurations '[{"stripePrivy":{"credentialProviderArn":"<CREDENTIAL_PROVIDER_ARN>"}}]' \ --region us-west-2
AWS SDK
connector = client.create_payment_connector( paymentManagerId=PAYMENT_MANAGER_ID, name="my-privy-connector", type="StripePrivy", credentialProviderConfigurations=[{"stripePrivy": {"credentialProviderArn": CREDENTIAL_PROVIDER_ARN}}], )

Se non disponi di un ruolo di servizio, consulta Ruoli IAM per i AgentCore pagamenti per istruzioni su come crearne uno. La console può anche creare un ruolo per tuo conto. Per gli schemi completi di richiesta e risposta, consulta CreatePaymentManager e CreatePaymentConnector consulta Amazon Bedrock AgentCore Control API Reference.

Fase 4: Creare uno strumento di pagamento

Uno strumento di pagamento è un portafoglio crittografico incorporato che il tuo agente utilizza per pagare i commercianti per conto di un utente. Ogni strumento è associato a una rete blockchain specifica.

Esempio
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

Salva la paymentInstrumentId e redirectUrl dalla risposta.

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

Per lo schema completo di richiesta e risposta, consulta CreatePaymentInstrument l'API Reference.

Finanzia il portafoglio e concedi le autorizzazioni

Prima che l'agente possa effettuare transazioni, l'utente finale deve finanziare il portafoglio e concedere le autorizzazioni di firma. Apri il modulo redirectUrl della risposta precedente in un browser. Dall'hub del portafoglio, l'utente può:

  • Ricarica il portafoglio utilizzando il trasferimento di criptovalute, la credit/debit carta, Apple Pay, Google Pay o ACH

  • Concedi all'agente il permesso di firmare transazioni per suo conto

Per un ambiente di test, finanzia il portafoglio con testnet USDC.

Dopo il finanziamento, esegui un sondaggio sullo stato dello strumento finché non diventa: ACTIVE

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

Per maggiori dettagli sui flussi di finanziamento per fornitore, vedi Finanziamento del portafoglio.

Passaggio 5: crea una sessione di pagamento

Una sessione di pagamento è un contesto limitato nel tempo con limiti di spesa opzionali. Quando la sessione scade o il budget è esaurito, l'agente non può effettuare ulteriori pagamenti all'interno di quella sessione.

Esempio
AgentCore CLI

Quando si utilizza la CLI, non è necessario creare una sessione manualmente. Passa --auto-session a agentcore invoke e la CLI crea o riutilizza una sessione con il limite di spesa predefinito configurato nel gestore dei pagamenti.

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

Per utilizzare una sessione specifica creata tramite l'SDK, passa --payment-session-id invece di. --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)")

Per lo schema completo di richiesta e risposta, consulta CreatePaymentSession l'API Reference.

Fase 6: Elabora un pagamento con un agente Strands

Con tutte le risorse disponibili, crea un agente Strands che gestisca automaticamente i pagamenti x402. Quando l'agente chiama un endpoint a pagamento e riceve una risposta HTTP 402, il plug-in per i pagamenti firma la transazione e ritenta la richiesta.

Esempio
AgentCore CLI

Richiama l'agente impiegato con il contesto di pagamento. La CLI trasmette lo strumento di pagamento e la sessione all'agente in fase di esecuzione e l'interceptor x402 dell'agente gestisce il pagamento automaticamente.

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

Per passare una sessione esplicita anziché crearne una automaticamente:

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

Usa la PaymentManager classe per generare le intestazioni di pagamento quando ricevi una risposta HTTP 402:

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_headerscontiene l'intestazione della prova di pagamento. Includi questa intestazione quando ritenti la richiesta all'endpoint a pagamento.

AWS CLI

Chiama process-payment direttamente con un payload x402 (utilizzato quando gestisci tu stesso l'orchestrazione dei pagamenti):

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

Per lo schema completo di richiesta e risposta, consulta ProcessPayment l'API Reference.

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)

Per lo schema completo di richiesta e risposta della chiamata API sottostante, consulta ProcessPayment l'API Reference.

Verifica il pagamento

Dopo che l'agente ha elaborato un pagamento, controlla la sessione per confermare che la transazione è stata registrata:

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

Puoi anche controllare il saldo dello strumento:

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

Puoi anche controllare il saldo dello strumento:

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

Risoluzione dei problemi

I seguenti problemi si applicano sia al percorso di configurazione basato sulle competenze che a quello manuale.

Problema Soluzione

Payment Manager bloccato in CREATING

Attendi fino a 2 minuti. Se passa a CREATE_FAILED, verifica che l'ARN e le autorizzazioni del ruolo di servizio siano corretti.

«non attivo» PaymentInstrument

L'utente finale deve finanziare il portafoglio e concedere le autorizzazioni di firma tramite l'URL di reindirizzamento prima che l'agente possa effettuare transazioni.

«Sessione scaduta o budget superato»

Crea una nuova sessione di pagamento con una scadenza più lunga o un limite di spesa più elevato.

«CredentialProvider non trovato»

Verifica che l'ARN del fornitore di credenziali corrisponda a quello che hai creato nel passaggio 2. Assicurati che la regione sia coerente in tutte le chiamate.

ProcessPayment restituisce FALLITO

Verifica che il portafoglio abbia un saldo in USDC sufficiente per l'importo della transazione più le commissioni sul gas.

Pulizia

Elimina le risorse che hai creato durante questo tutorial:

Esempio
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

I remove comandi aggiornano la configurazione locale. Il follow-up deploy distrugge l'infrastruttura di pagamento del tuo account.

AgentCore SDK
from bedrock_agentcore.payments.client 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.")

Cosa hai costruito

Attraverso questo tutorial, hai creato:

  • PaymentCredentialProvider— Credenziali del fornitore di servizi di pagamento memorizzate in Identity AgentCore

  • PaymentManager— Top-level risorsa che coordina le operazioni di pagamento

  • PaymentConnector— Integrazione tra il tuo gestore e il fornitore di servizi di pagamento esterno

  • PaymentInstrument— Un portafoglio crittografico incorporato, finanziato e autorizzato dall'utente finale

  • PaymentSession— Un contesto di pagamento limitato nel tempo e con un budget limitato

  • Strands Agent: un agente AI che gestisce automaticamente i pagamenti x402

Fasi successive