AgentCore pembayaran mulai cepat
Tutorial ini memandu Anda melalui pengaturan AgentCore pembayaran dan memproses transaksi mikro pertama Anda. Pada akhirnya, agen Anda akan membayar sumber daya menggunakan protokol x402 pada jaringan uji.
Anda dapat mengatur pembayaran dengan dua cara:
-
Menggunakan keterampilan AgentCore Pembayaran — Pengalaman pengaturan otomatis yang menyediakan semua sumber daya melalui percakapan terpandu dengan agen pengkodean AI seperti Kiro, Claude Code, atau Codex. Keterampilan ini menangani perintah CLI, skrip SDK, dan kabel kerangka kerja untuk Anda.
-
Menggunakan CLI, SDK, atau Boto3 - Pengaturan manual langkah demi langkah menggunakan CLI, SDK, AWS atau AgentCore CLI secara langsung. AWS
Menggunakan keterampilan AgentCore Pembayaran
Keterampilan AgentCore Pembayaran mengotomatiskan seluruh proses penyiapan melalui pengalaman interaktif dan terpandu. Ini menyediakan sumber daya berikut:
-
PaymentCredentialProvider— Menyimpan kredensi penyedia pembayaran di AgentCore Identity.
-
Manajer Pembayaran — Sumber daya tingkat atas yang mengoordinasikan operasi pembayaran.
-
Konektor Pembayaran - Menautkan manajer ke kredensil Anda melalui CLI AgentCore .
-
Instrumen Pembayaran — Dompet kripto yang digunakan agen Anda untuk membayar pedagang atas nama pengguna.
-
Sesi Pembayaran — Konteks yang dibatasi waktu dengan batas pengeluaran.
Keterampilan ini juga menghubungkan pembayaran ke agen Anda dengan alat kerangka agnostik, sehingga berfungsi dengan Strands,, LangGraph OpenAI Agents SDK, atau kerangka kerja Python apa pun.
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
-
AWS Akun dengan kredensi yang dikonfigurasi () aws configure
-
AWS Wilayah di mana AgentCore pembayaran tersedia — us-east-1, us-west-2, eu-central-1, atau ap-southeast-2. Lihat AWS Wilayah yang Didukung.
-
Node.js 20+ diinstal (keterampilan menginstal CLI AgentCore secara otomatis)
-
Agen yang mengakses titik akhir berbayar — Keterampilan ini memungkinkan agen Anda membayar API yang dilindungi x402. Untuk pengujian, Anda dapat menggunakan https://sandbox.node4all.com/v1/x402-test endpoint sandbox.
-
Agen Toolkit untuk AWS aws-agents plugin yang diinstal di agen pengkodean AI Anda:
contoh
- Claude Code
-
/plugin marketplace add aws/agent-toolkit-for-aws
/plugin install aws-agents@agent-toolkit-for-aws
- Codex
-
Plugin ditemukan secara otomatis dari manifes pasar. Untuk menambahkan marketplace, jalankan perintah berikut:
codex plugin marketplace add aws/agent-toolkit-for-aws
Memanggil keterampilan
Keterampilan pembayaran adalah bagian dari agents-build keterampilan dalam Toolkit Agen untuk AWS. Untuk memicunya, jelaskan maksud Anda di agen pengkodean AI Anda. Contoh:
-
“Tambahkan pembayaran ke agen saya menggunakan agents-build keterampilan di aws-agents plugin”
-
“Siapkan transaksi mikro untuk agen saya menggunakan agents-build keterampilan di aws-agents plugin”
-
“Saya perlu menangani 402 Tanggapan Pembayaran yang Diperlukan menggunakan agents-build keterampilan di aws-agents plugin”
-
“Kawat agen saya untuk membayar API yang dilindungi x402 menggunakan agents-build skill in plugin” aws-agents
Keterampilan mendeteksi maksud terkait pembayaran dan memuat alur kerja pembayaran secara otomatis.
Apa yang dilakukan keterampilan
Keterampilan menjalankan proses otomatis yang menyediakan infrastruktur pembayaran Anda secara end-to-end. Keterampilan menjalankan sebagian besar langkah secara otomatis dan berhenti dua kali untuk masukan Anda:
-
Memverifikasi atau menginstal AgentCore CLI dan menyiapkan proyek
-
Membuat manajer pembayaran
-
Jeda - Anda menjalankan agentcore add payment-connector untuk memasukkan rahasia penyedia Anda (kredensi Coinbase CDP atau Stripe Privy)
-
Menyebarkan sumber daya ke AWS akun Anda () agentcore deploy -y
-
Menghubungkan alat pembayaran kerangka kerja agnostik () ke agen Anda x402_payment_tool.py
-
Membuat dompet per pengguna (instrumen) dan sesi terbatas anggaran melalui SDK
-
Jeda - Anda mengotorisasi dompet (delegasi) dan mendanainya dengan testnet USDC dari situs web faucet Circle
-
Menetapkan variabel lingkungan dan menjalankan pembayaran uji terhadap titik akhir berbayar
Sebelum menjalankan perintah konektor, dapatkan kredensi dari penyedia Anda:
Jalankan yang berhasil menunjukkan agen meneleponx402_fetch, mendeteksi402, menyelesaikan pembayaran melalui AgentCore SDK, dan coba lagi kembali 200 dengan konten berbayar.
Menggunakan CLI, SDK, atau Boto3
Bagian ini memandu Anda melalui setiap langkah secara manual menggunakan AgentCore CLI, AWS CLI, atau AWS SDK (Boto3).
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
-
AWS Akun dengan kredensi yang dikonfigurasi () aws configure
-
Python 3.10+ diinstal
-
AWS Wilayah di mana AgentCore pembayaran tersedia — us-east-1, us-west-2, eu-central-1, atau ap-southeast-2. Lihat AWS Wilayah yang Didukung.
Instal paket yang diperlukan:
pip install boto3 bedrock-agentcore[strands-agents] strands-agents strands-agents-tools
Verifikasi kredenal Anda dikonfigurasi:
aws sts get-caller-identity
Jika Anda menginstal AgentCore CLI v0.19.0 atau yang lebih baru, Anda dapat menggunakan perintah CLI sebagai alternatif SDK di Langkah 2, 3, 5, dan 6. Setiap langkah di bawah ini menunjukkan kedua opsi.
Langkah 1: Dapatkan kredensi penyedia pembayaran
AgentCore pembayaran terhubung ke penyedia pembayaran eksternal untuk operasi dompet. Anda memerlukan kredensi dari salah satu penyedia yang didukung sebelum melanjutkan.
contoh
- Coinbase CDP
-
-
Masuk ke Platform Pengembang Coinbase dan buat atau pilih proyek.
-
Buat kunci API dan catat ID Kunci API, Rahasia Kunci API, dan Rahasia Dompet.
-
Di bawah Project > Wallets > Non-custodial Wallet > Security, aktifkan penandatanganan Delegasi.
Anda akan menggunakan tiga nilai ini di langkah berikutnya:
| Kredensi |
Deskripsi |
|
API Key ID
|
Pengidentifikasi publik untuk proyek CDP Anda
|
|
API Key Secret
|
Rahasia pribadi untuk menandatangani permintaan API
|
|
Wallet Secret
|
Rahasia untuk operasi dompet kriptografi (memperoleh alamat, menandatangani transaksi)
|
- Privy
-
-
Buat aplikasi Privy khusus di dashboard.privy.io. Jangan gunakan kembali aplikasi yang melayani tujuan lain.
-
Salin ID Aplikasi dan Rahasia Aplikasi dari setelan aplikasi Anda.
-
Arahkan ke Wallet Infrastructure > Authorization dan pilih New Key untuk menghasilkan P-256 key pair.
Anda akan menggunakan empat nilai ini di langkah berikutnya:
| Kredensi |
Deskripsi |
|
App ID
|
Pengidentifikasi aplikasi Privy Anda
|
|
App Secret
|
Rahasia untuk Auth Dasar server-ke-server
|
|
Authorization ID
|
Pengidentifikasi kunci publik dari P-256 key pair
|
|
Authorization Private Key
|
Kunci pribadi dari P-256 key pair
|
Untuk detail selengkapnya termasuk praktik terbaik keamanan dan rotasi kredensi, lihat Prasyarat.
Langkah 2: Simpan kredensi di Identitas AgentCore
Simpan kredensi penyedia pembayaran Anda sebagai. PaymentCredentialProvider Ini menyimpan AWS rahasia di Secrets Manager daripada di kode aplikasi Anda.
contoh
- 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}")
Untuk skema permintaan dan respons lengkap, lihat CreatePaymentCredentialProviderdi Referensi API.
Alternatif CLI: Kredensi toko
Dengan AgentCore CLI, penyimpanan kredensi terjadi secara otomatis ketika Anda menambahkan konektor pembayaran (Langkah 3). Lewati langkah ini jika Anda berencana untuk menggunakan jalur CLI.
Langkah 3: Buat Manajer Pembayaran dan Konektor
Manajer Pembayaran adalah sumber daya tingkat atas yang mengoordinasikan operasi pembayaran. Konektor Pembayaran menautkan manajer ke kredensi penyedia pembayaran Anda. Sebelum membuat sumber daya ini, siapkan peran IAM yang diperlukan seperti yang dijelaskan dalam peran IAM untuk AgentCore pembayaran.
contoh
- Console
-
Untuk panduan lengkap konsol termasuk otorisasi JWT dan klaim khusus, lihat Membuat Manajer Pembayaran dan Konektor.
-
Buka AgentCore konsol Amazon Bedrock.
-
Di panel navigasi, di bawah Build, pilih Pembayaran.
-
Pilih Buat Manajer Pembayaran.
-
Masukkan Nama untuk Manajer Pembayaran Anda.
-
Di bawah Izin, pilih Buat dan gunakan peran layanan baru (atau pilih peran yang ada).
-
Di bawah Inbound Auth, pilih Gunakan nama pengguna IAM untuk otorisasi IAM.
-
(Opsional) Di bagian Konektor pembayaran, pilih nama untuk konektor dan pilih autentikasi keluar yang ada atau buat yang baru dengan memilih penyedia Anda (Coinbase atau Stripe Privy) dan masukkan kredensil Anda.
-
Pilih Buat Manajer Pembayaran.
- AgentCore CLI
-
CLI menciptakan penyedia kredensi, Manajer Pembayaran, dan Konektor Pembayaran dalam satu aliran. Dari direktori AgentCore proyek Anda, tambahkan manajer pembayaran dan konektor bersama-sama.
Wisaya interaktif:
agentcore add payment-manager
Wizard meminta nama manajer, pola (pencegat), sakelar pembayaran otomatis, dan batas pengeluaran default. Kemudian menanyakan apakah akan menambahkan konektor dan berjalan melalui pemilihan penyedia dan input kredenal.
Non-interactive (CDP Coinbase):
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 (Penasihat):
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>
Setelah menambahkan, gunakan untuk menyediakan infrastruktur pembayaran:
agentcore deploy
Langkah penerapan membuat peran IAM, menyimpan kredensi di AgentCore Identity, dan menyediakan Manajer Pembayaran dan Konektor. Anda akan melihat “Membuat infrastruktur pembayaran...” di output.
- AgentCore SDK
-
AgentCore SDK membuat Manajer Pembayaran, penyedia kredensi, dan konektor dalam satu panggilan.
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}")
Untuk Stripe Privy, ganti payment_credential_provider_config dengan credential_provider_vendor: "StripePrivy" dan kredenal Privy yang sesuai.
- AWS CLI
-
Buat Manajer Pembayaran:
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
Setelah manajer mencapai READY status, buat penyedia kredensi dan konektor. Lihat Membuat Manajer Pembayaran dan Konektor untuk alur kerja AWS CLI selengkapnya.
- AWS SDK
-
Pertama, buat Manajer Pembayaran (sama untuk kedua penyedia):
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)
Kemudian buat Konektor Pembayaran untuk penyedia Anda:
CDP Coinbase:
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}")
Penasihat:
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}")
Jika Anda tidak memiliki peran layanan, lihat peran IAM untuk AgentCore pembayaran untuk petunjuk cara membuatnya. Konsol juga dapat membuat peran atas nama Anda. Untuk skema permintaan dan respons lengkap, lihat CreatePaymentManagerdan CreatePaymentConnectordi Referensi API.
Langkah 4: Buat instrumen pembayaran
Instrumen pembayaran adalah dompet kripto tertanam yang digunakan agen Anda untuk membayar pedagang atas nama pengguna. Setiap instrumen dikaitkan dengan jaringan blockchain tertentu.
contoh
- 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
Simpan paymentInstrumentId dan redirectUrl dari respon.
- 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}")
Untuk skema permintaan dan respons lengkap, lihat CreatePaymentInstrumentdi Referensi API.
Mendanai dompet dan memberikan izin
Sebelum agen dapat bertransaksi, pengguna akhir harus mendanai dompet dan memberikan izin penandatanganan. Buka redirectUrl dari respons di atas di browser. Dari hub dompet, pengguna dapat:
-
Isi ulang dompet menggunakan transfer kripto, credit/debit kartu, Apple Pay, Google Pay, atau ACH
-
Memberikan izin agen untuk menandatangani transaksi atas nama mereka
Untuk lingkungan pengujian, danai dompet dengan testnet USDC.
Setelah pendanaan, jajak pendapat status instrumen hingga menjadiACTIVE:
contoh
- 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)
Untuk detail selengkapnya tentang aliran pendanaan menurut penyedia, lihat Mendanai dompet.
Langkah 5: Buat sesi pembayaran
Sesi pembayaran adalah konteks yang dibatasi waktu dengan batas pengeluaran opsional. Ketika sesi berakhir atau anggaran habis, agen tidak dapat melakukan pembayaran lebih lanjut dalam sesi itu.
contoh
- AgentCore CLI
-
Saat menggunakan CLI, Anda tidak perlu membuat sesi secara manual. Lulus --auto-session ke agentcore invoke dan CLI membuat atau menggunakan kembali sesi dengan batas pengeluaran default yang Anda konfigurasikan pada manajer pembayaran.
agentcore invoke \
--prompt "your prompt here" \
--payment-instrument-id <INSTRUMENT_ID> \
--auto-session \
--payment-user-id test-user-123
Untuk menggunakan sesi tertentu yang Anda buat melalui SDK, teruskan --payment-session-id saja. --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)")
Untuk skema permintaan dan respons lengkap, lihat CreatePaymentSessiondi Referensi API.
Langkah 6: Proses pembayaran dengan agen Strands
Dengan semua sumber daya di tempat, buat agen Strands yang menangani pembayaran x402 secara otomatis. Ketika agen memanggil titik akhir berbayar dan menerima respons HTTP 402, plugin pembayaran menandatangani transaksi dan mencoba ulang permintaan tersebut.
contoh
- AgentCore CLI
-
Panggil agen yang Anda gunakan dengan konteks pembayaran. CLI meneruskan instrumen pembayaran dan sesi ke agen saat runtime, dan pencegat x402 agen menangani pembayaran secara otomatis.
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
Untuk meneruskan sesi eksplisit alih-alih membuat sesi otomatis:
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
-
Gunakan PaymentManager kelas untuk menghasilkan header pembayaran saat Anda menerima respons 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_headersberisi header bukti pembayaran. Sertakan header ini saat mencoba kembali permintaan ke titik akhir berbayar.
- AWS CLI
-
Hubungi process-payment langsung dengan payload x402 (digunakan saat Anda menangani orkestrasi pembayaran sendiri):
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
Untuk skema permintaan dan respons lengkap, lihat ProcessPaymentdi Referensi API.
- 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)
Untuk skema permintaan dan respons lengkap dari panggilan API yang mendasarinya, lihat ProcessPaymentdi Referensi API.
Verifikasi pembayaran
Setelah agen memproses pembayaran, periksa sesi untuk mengonfirmasi transaksi dicatat:
contoh
- 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']}")
Anda juga dapat memeriksa saldo instrumen:
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")
Anda juga dapat memeriksa saldo instrumen:
balance = dp_client.get_payment_instrument_balance(
paymentManagerArn=PAYMENT_MANAGER_ARN,
paymentInstrumentId=INSTRUMENT_ID
)
print(f"Remaining balance: {balance['amount']} {balance['currency']}")
Pemecahan masalah
Masalah berikut berlaku untuk jalur penyiapan berbasis keterampilan dan manual.
| Isu |
Solusi |
|
Manajer Pembayaran terjebak dalam MENCIPTAKAN
|
Tunggu hingga 2 menit. Jika pindah ke CREATE_FAILED, periksa apakah ARN dan izin peran layanan Anda sudah benar.
|
|
“PaymentInstrument tidak aktif”
|
Pengguna akhir harus mendanai dompet dan memberikan izin penandatanganan melalui URL pengalihan sebelum agen dapat bertransaksi.
|
|
“Sesi kedaluwarsa atau anggaran terlampaui”
|
Buat sesi pembayaran baru dengan kadaluwarsa yang lebih lama atau batas pengeluaran yang lebih tinggi.
|
|
“CredentialProvider tidak ditemukan”
|
Verifikasi penyedia kredensi ARN cocok dengan apa yang Anda buat di Langkah 2. Pastikan wilayah konsisten di semua panggilan.
|
|
ProcessPayment mengembalikan GAGAL
|
Pastikan dompet memiliki saldo USDC yang cukup untuk jumlah transaksi ditambah biaya gas.
|
Pembersihan
Hapus sumber daya yang Anda buat selama tutorial ini:
contoh
- 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
removePerintah memperbarui konfigurasi lokal. Tindak lanjut deploy meruntuhkan infrastruktur pembayaran di akun Anda.
- 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.")
Apa yang telah Anda bangun
Melalui tutorial ini, Anda membuat:
-
PaymentCredentialProvider— Kredensi penyedia pembayaran yang disimpan dalam Identitas AgentCore
-
PaymentManager— Top-level operasi pembayaran koordinasi sumber daya
-
PaymentConnector— Integrasi antara manajer Anda dan penyedia pembayaran eksternal
-
PaymentInstrument— Dompet kripto tertanam, didanai dan disahkan oleh pengguna akhir
-
PaymentSession— Konteks pembayaran terbatas waktu dan terbatas anggaran
-
Strands Agent — Agen AI yang menangani pembayaran x402 secara otomatis
Langkah selanjutnya