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:
-
Verifica o installa la AgentCore CLI e configura il progetto
-
Crea il gestore dei pagamenti
-
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
-
Distribuisce risorse sul tuo account () AWS agentcore deploy -y
-
Trasferisce al tuo agente uno strumento di pagamento indipendente dal framework () x402_payment_tool.py
-
Crea un portafoglio (strumento) per utente e una sessione con budget limitato tramite l'SDK
-
Pause: autorizzi il portafoglio (delega) e lo finanzi con il testnet USDC dal sito web Circle faucet https://faucet.circle.com/
-
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
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).
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
-
-
Accedi alla Coinbase Developer Platform e crea o accedi al tuo account. Scelta di un progetto.
-
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.
-
In Prodotti > Portafogli > Non-custodial Portafoglio > Sicurezza, scegli Genera nuovo sotto Genera il segreto del portafoglio e annota il segreto del portafoglio.
-
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
-
-
Crea un'app Privy dedicata su dashboard.privy.io. https://dashboard.privy.io/ Non riutilizzare app che servono ad altri scopi.
-
Copia l'App ID e l'App Secret dalle impostazioni dell'app.
-
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
-
-
Apri la AgentCore console https://console.aws.amazon.com/bedrock-agentcore/ Amazon Bedrock.
-
Nel pannello di navigazione, in Crea, scegli Pagamenti.
-
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).
-
In Inbound Auth, scegli Usa nome utente IAM.
-
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
-
-
Nella sezione Connettore di pagamento, scegli Aggiungi autenticazione in uscita > Crea autenticazione di pagamento e per Payment provider scegli Coinbase.
-
Scegli Configurazioni di creazione rapida (consigliata), quindi scegli Crea autenticazione di pagamento.
-
Si apre una finestra Coinbase: accedi o registrati e autorizza (collega) il tuo account Coinbase CDP.
-
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