Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menyebarkan AG-UI server di AgentCore Runtime
Amazon Bedrock AgentCore Runtime memungkinkan Anda menyebarkan dan menjalankan server Agent User Interface (AG-UI) di AgentCore Runtime. Panduan ini memandu Anda melalui pembuatan, pengujian, dan penerapan AG-UI server pertama Anda.
Di bagian ini, Anda belajar:
-
Bagaimana Amazon Bedrock mendukung AgentCore AG-UI
-
Cara membuat AG-UI server
-
Cara menguji server Anda secara lokal
-
Cara menyebarkan server Anda ke AWS
-
Cara memanggil server yang Anda gunakan
Untuk informasi selengkapnya AG-UI, lihat kontrak AG-UI protokol.
Topik
Bagaimana Amazon Bedrock mendukung AgentCore AG-UI
Dukungan AG-UI protokol Amazon Bedrock AgentCore memungkinkan integrasi dengan server antarmuka pengguna agen dengan bertindak sebagai lapisan proxy. Saat dikonfigurasi untuk AG-UI, Amazon Bedrock AgentCore mengharapkan kontainer menjalankan server pada port 8080 di /invocations jalur untuk HTTP/SSE atau /ws untuk WebSocket koneksi. Meskipun AG-UI menggunakan port dan jalur yang sama dengan protokol HTTP, runtime membedakan antara mereka berdasarkan --protocol flag yang ditentukan selama konfigurasi penerapan.
Amazon Bedrock AgentCore bertindak sebagai proxy antara klien dan AG-UI wadah Anda. Permintaan dari InvokeAgentRuntime API diteruskan ke wadah Anda tanpa modifikasi. Amazon Bedrock AgentCore menangani otentikasi (SigV4/OAuth 2.0), isolasi sesi, dan penskalaan.
Perbedaan utama dari protokol lain:
- Port
-
AG-UI server berjalan pada port 8080 (sama dengan HTTP, vs 8000 untuk MCP, 9000 untuk A2A)
- Jalur
-
AG-UI server digunakan
/invocationsuntuk HTTP/SSE dan/wsuntuk WebSocket (sama dengan protokol HTTP) - Format Pesan
-
Menggunakan aliran acara melalui Ev Server-Sent ents (SSE) untuk streaming, atau WebSocket untuk komunikasi dua arah
- Fokus Protokol
-
Agent-to-User interaksi (vs MCP untuk alat, A2A untuk agen-ke-agen)
- Autentikasi
-
Mendukung skema otentikasi SigV4 dan OAuth 2.0
Untuk informasi selengkapnya, lihat https://docs.ag-ui.com/introduction
Menggunakan AG-UI dengan AgentCore Runtime
Dalam tutorial ini Anda membuat, menguji, dan menyebarkan AG-UI server.
Untuk contoh lengkap dan implementasi khusus kerangka kerja, lihat Dokumentasi AG-UI Quickstart dan Dojo.
Topik
Prasyarat
-
Python 3.12 atau lebih tinggi diinstal
-
Node.js 20 atau lebih tinggi diinstal untuk AgentCore CLI
-
AWS Akun dengan izin yang sesuai dan kredenSIAL lokal dikonfigurasi
-
Pemahaman tentang AG-UI protokol dan konsep komunikasi agen-ke-pengguna berbasis peristiwa
Langkah 1: Buat AG-UI server Anda
AG-UI didukung oleh beberapa kerangka kerja agen. Tutorial ini menggunakan AWS Strands untuk Python.
Menginstal paket yang diperlukan
Instal paket untuk AWS Strands dengan AG-UI dukungan:
pip install fastapi pip install uvicorn pip install ag-ui-strands
Untuk kerangka kerja lainnya, lihat integrasi AG-UI
Buat AG-UI server pertama Anda
Buat file bernama my_agui_server.py. Contoh ini menggunakan Str AWS ands with AG-UI. Server mendengarkan port8080, mengek /invocations spos AG-UI lalu lintas, dan mengekspos /ping untuk pemeriksaan kesehatan. AgentCore Runtime membutuhkan kontrak ini untuk AG-UI kontainer.
# my_agui_server.py import uvicorn from fastapi import FastAPI, Request from fastapi.responses import StreamingResponse, JSONResponse from ag_ui_strands import StrandsAgent from ag_ui.core import RunAgentInput from ag_ui.encoder import EventEncoder from strands import Agent # Create a simple Strands agent strands_agent = Agent( system_prompt="You are a helpful assistant.", ) # Wrap with AG-UI protocol support agui_agent = StrandsAgent( agent=strands_agent, name="my_agent", description="A helpful assistant", ) # FastAPI server app = FastAPI() @app.post("/invocations") async def invocations(input_data: dict, request: Request): """Main AG-UI endpoint that returns event streams.""" accept_header = request.headers.get("accept") encoder = EventEncoder(accept=accept_header) async def event_generator(): run_input = RunAgentInput(**input_data) async for event in agui_agent.run(run_input): yield encoder.encode(event) return StreamingResponse( event_generator(), media_type=encoder.get_content_type() ) @app.get("/ping") async def ping(): return JSONResponse({"status": "Healthy"}) if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8080)
Untuk contoh lengkap khusus kerangka kerja, lihat:
Memahami kode
- Aliran Acara
-
AG-UI menggunakan Ev Server-Sent ents (SSE) untuk mengalirkan peristiwa yang diketik ke klien
- /Titik akhir pemanggilan
-
Titik akhir utama untuk HTTP/SSE komunikasi (sama dengan protokol HTTP)
- Pelabuhan 8080
-
AG-UI server berjalan pada port 8080 secara default di Runtime AgentCore
Langkah 2: Uji AG-UI server Anda secara lokal
Jalankan dan uji AG-UI server Anda di lingkungan pengembangan lokal.
Mulai AG-UI server Anda
Jalankan AG-UI server Anda secara lokal:
python my_agui_server.py
Anda akan melihat output yang menunjukkan server berjalan di port8080.
Menguji titik akhir
Uji titik akhir SSE dengan AG-UI permintaan yang diformat dengan benar:
curl -N -X POST http://localhost:8080/invocations \ -H "Content-Type: application/json" \ -d '{ "threadId": "test-123", "runId": "run-456", "state": {}, "messages": [{"role": "user", "content": "Hello, agent!", "id": "msg-1"}], "tools": [], "context": [], "forwardedProps": {} }'
Anda akan melihat aliran AG-UI acara dikembalikan dalam format SSE, termasukRUN_STARTED,TEXT_MESSAGE_CONTENT, dan RUN_FINISHED acara.
Langkah 3: Terapkan AG-UI server Anda ke Bedrock Runtime AgentCore
Terapkan AG-UI server Anda untuk AWS menggunakan AgentCore CLI.
Instal alat penyebaran
Instal AgentCore CLI:
npm install -g @aws/agentcore
Mulailah dengan membuat folder proyek dengan struktur berikut:
## Project Folder Structure your_project_directory/ ├── my_agui_server.py # Your main agent code ├── requirements.txt # Dependencies for your agent
Buat file baru yang disebut requirements.txt dengan dependensi Anda:
fastapi uvicorn ag-ui-strands
Siapkan kumpulan pengguna Cognito untuk otentikasi
Konfigurasikan otentikasi untuk akses aman ke server yang Anda gunakan. Untuk petunjuk penyiapan Cognito terperinci, lihat Menyi apkan kumpulan pengguna Cognito untuk otentikasi. Ini menyediakan token OAuth yang diperlukan untuk akses aman ke server yang Anda gunakan.
Setelah Anda menyelesaikan penyiapan Cognito, ekspor nilai yang digunakan perintah penerapan:
export REGION="<your-region>" export POOL_ID="<your-user-pool-id>" export CLIENT_ID="<your-app-client-id>"
Konfigurasikan AG-UI server Anda untuk penerapan
Buat AgentCore proyek kosong. Kemudian daftarkan server yang Anda buat di Buat AG-UI server pertama Anda sebagai agen BYO dengan konfigurasi Cognito dari langkah sebelumnya:
agentcore create --project-name AguiProject --no-agent cd AguiProject agentcore add agent \ --name AguiAgent \ --type byo \ --language Python \ --framework Strands \ --model-provider Bedrock \ --memory none \ --code-location .. \ --entrypoint my_agui_server.py \ --protocol AGUI \ --authorizer-type CUSTOM_JWT \ --discovery-url "https://cognito-idp.$REGION.amazonaws.com/$POOL_ID/.well-known/openid-configuration" \ --allowed-clients "$CLIENT_ID" \ --request-header-allowlist Authorization
Perintah mendaftarkan implementasi yang ada dengan AG-UI protokol dan konfigurasi Cognito OAuth dari langkah sebelumnya.
Menyebarkan ke AWS
Menyebarkan agen Anda:
agentcore deploy
Setelah penerapan, Anda akan menerima ARN runtime agen yang terlihat seperti:
arn:aws:bedrock-agentcore:us-west-2:accountId:runtime/my_agui_server-xyz123
Langkah 4: Panggil server yang Anda gunakan AG-UI
Panggil AgentCore AG-UI server Amazon Bedrock yang Anda gunakan dan berinteraksi dengan aliran acara.
Menyiapkan variabel lingkungan
Menyiapkan variabel lingkungan
-
Ekspor token pembawa sebagai variabel lingkungan. Untuk pengaturan token pembawa, lihat Menyiapkan kum pulan pengguna Cognito untuk otentikasi.
export BEARER_TOKEN="<BEARER_TOKEN>" -
Ekspor agen ARN.
export AGENT_ARN="arn:aws:bedrock-agentcore:us-west-2:accountId:runtime/my_agui_server-xyz123"
Memanggil server AG-UI
Untuk memanggil AG-UI server secara terprogram, pilih bahasa yang cocok dengan klien Anda:
contoh
Untuk membangun aplikasi UI lengkap, lihat CopilotKit
Lampiran
Siapkan kumpulan pengguna Cognito untuk otentikasi
Untuk petunjuk penyiapan Cognito terperinci, lihat Menyiapkan kumpulan pengguna Cognito untuk otentikasi dalam dokumentasi MCP. Proses penyiapannya identik untuk AG-UI server.
Pemecahan masalah
AG-UI-specific Masalah umum
Berikut ini adalah masalah umum yang mungkin Anda temui:
- Konflik pelabuhan
-
AG-UI server harus berjalan pada port 8080 di lingkungan AgentCore Runtime
- Ketidakcocokan metode otorisasi
-
Pastikan permintaan Anda menggunakan metode otentikasi yang sama (OAuth atau SigV4) yang dikonfigurasi dengan agen
- Kesalahan format acara
-
Pastikan acara Anda mengikuti spesifikasi AG-UI protokol. Lihat Dokument AG-UI asi Acara