Memulai dengan AgentCore Gateway
Dalam panduan memulai cepat ini Anda akan belajar cara mengatur gateway dan mengintegrasikannya ke agen Anda menggunakan AgentCore CLI. Untuk panduan dan contoh yang lebih komprehensif, lihat GitHub repositori Amazon Bedrock AgentCore Gateway
catatan
AgentCore CLI menyediakan perintah dan wizard TUI interaktif untuk mengelola AgentCore sumber daya Gateway. Untuk referensi API AWS SDK selengkapnya, lihat Operasi AgentCore Control Plane
Topik
Prasyarat
Sebelum memulai, pastikan Anda memiliki yang berikut:
-
AWS Akun dengan kredensil dikonfigurasi. Untuk mengkonfigurasi kredensil, Anda dapat menginstal dan menggunakan Antarmuka Baris AWS Perintah dengan mengikuti langkah-langkah di Memulai dengan CLI AWS.
-
Node.js 18+ diinstal (untuk AgentCore CLI).
-
Python 3.10+ diinstal (untuk skrip agen).
-
Izin IAM untuk membuat peran, fungsi Lambda, dan menggunakan Amazon Bedrock. AgentCore
-
Akses Model - Aktifkan Claude Sonnet 3.7 Anthropic di konsol Amazon Bedrock (atau model lain untuk agen demo)
Langkah 1: Pengaturan dan instal
Instal AgentCore CLI secara global:
npm install -g @aws/agentcore
Buat AgentCore proyek baru dengan agen dan gateway:
contoh
Langkah 2: Buat gateway
Tambahkan gateway dan target ke proyek Anda menggunakan AgentCore CLI:
contoh
Untuk menggunakan JWT-based otorisasi sebagai gantinya, tentukan --authorizer-type CUSTOM_JWT dengan URL penemuan OAuth Anda:
contoh
Langkah 3: Jalankan pengaturan
Terapkan proyek Anda ke AWS:
agentcore deploy
CLI mensintesis tumpukan AWS CDK dan menyebarkan gateway, target, dan agen Anda ke Amazon Bedrock. AgentCore Ini membutuhkan waktu sekitar 2-3 menit.
Langkah 4: Gunakan gateway dengan agen
Ambil URL gateway Anda menggunakan AgentCore CLI:
agentcore status
Buat file baru bernama run_agent.py dan masukkan kode berikut. Instal dependensi Python terlebih dahulu:
pip install strands-agents mcp
""" Agent script to test the Gateway Run this after setup: python run_agent.py """ from strands import Agent from strands.models import BedrockModel from strands.tools.mcp.mcp_client import MCPClient from mcp.client.streamable_http import streamablehttp_client import json import sys def create_streamable_http_transport(mcp_url: str): return streamablehttp_client(mcp_url) def get_full_tools_list(client): """Get all tools with pagination support""" more_tools = True tools = [] pagination_token = None while more_tools: tmp_tools = client.list_tools_sync(pagination_token=pagination_token) tools.extend(tmp_tools) if tmp_tools.pagination_token is None: more_tools = False else: more_tools = True pagination_token = tmp_tools.pagination_token return tools def run_agent(): # Get the gateway URL from agentcore status gateway_url = "<YOUR_GATEWAY_URL>" # Replace with URL from 'agentcore status' # Model configuration - change if needed model_id = "anthropic.claude-3-7-sonnet-20250219-v1:0" print("Starting AgentCore Gateway Test Agent") print(f"Gateway URL: {gateway_url}") print(f"Model: {model_id}") print("-" * 60) # Setup Bedrock model bedrockmodel = BedrockModel( model_id=model_id, streaming=True, ) # Setup MCP client (no auth token needed for NONE authorizer) mcp_client = MCPClient(lambda: create_streamable_http_transport(gateway_url)) with mcp_client: # List available tools tools = get_full_tools_list(mcp_client) print(f"\nAvailable tools: {[tool.tool_name for tool in tools]}") print("-" * 60) # Create agent agent = Agent(model=bedrockmodel, tools=tools) # Interactive loop print("\nInteractive Agent Ready!") print("Try asking: 'What's the weather in Seattle?'") print("Type 'exit', 'quit', or 'bye' to end.\n") while True: user_input = input("You: ") if user_input.lower() in ["exit", "quit", "bye"]: print("Goodbye!") break print("\nThinking...\n") response = agent(user_input) print(f"\nAgent: {response.message.get('content', response)}\n") if __name__ == "__main__": run_agent()
Jalankan agen Anda
Uji gateway Anda dengan menjalankan agen dan berinteraksi dengan alat.
python run_agent.py
Itu dia! Agen akan mulai dan Anda dapat mengajukan pertanyaan seperti:
-
“Bagaimana cuaca di Seattle?”
-
“Jam berapa sekarang di New York?”
Apa yang telah Anda bangun
Melalui tutorial memulai ini, Anda telah membuat sumber daya berikut:
-
MCP Server (Gateway): Titik akhir terkelola di
https://gateway-id.gateway.bedrock-agentcore.region.amazonaws.com/mcp -
Alat Lambda: Fungsi tiruan yang mengembalikan data uji (cuaca: “72° F, Cerah”, waktu: "2:30 PM”)
-
Agen AI: Claude-powered asisten yang dapat menemukan dan menggunakan alat Anda
Pemecahan masalah
Tabel berikut menunjukkan beberapa kemungkinan masalah dan solusinya:
| Isu | Solusi |
|---|---|
|
“Tidak ada modul bernama 'untai'” |
Jalankan: |
|
“Model tidak diaktifkan” |
Aktifkan Claude Sonnet 3.7 di konsol Bedrock → Akses model |
|
"AccessDeniedException" |
Periksa izin IAM untuk batuan-agentcore: * |
|
Gateway tidak merespons |
Tunggu 30-60 detik setelah pembuatan untuk propagasi DNS |
Validasi cepat
Jalankan perintah berikut di terminal untuk memeriksa apakah gateway Anda berfungsi.
# Check your Gateway is working curl -X POST YOUR_GATEWAY_URL \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' # Watch live logs aws logs tail /aws/bedrock-agentcore/gateways/YOUR_GATEWAY_ID --follow
Pembersihan
Untuk menghapus gateway dan targetnya dari proyek Anda:
agentcore remove gateway --name TestGateway
Untuk menghapus semua sumber daya dan menerapkan ulang:
agentcore remove all agentcore deploy
Langkah selanjutnya
-
Alat Lambda Kustom: Buat fungsi Lambda dengan logika bisnis Anda
-
Tambahkan API Anda Sendiri: Perluas Gateway Anda dengan spesifikasi OpenAPI untuk layanan nyata
-
Pengaturan Produksi: Konfigurasikan titik akhir VPC, domain khusus, dan pemantauan