Memulai dengan bundel konfigurasi
Panduan ini membawa Anda dari nol ke bundel konfigurasi berversi yang dibaca agen Anda saat runtime. Anda akan membuat bundel, memperbaruinya untuk menghasilkan versi baru, membaca konfigurasi, dan melihat riwayat versi.
Topik
Sebelum Anda mulai
Pastikan Anda memiliki:
-
Proyek AgentCore CLI dengan agen yang diterapkan ke AgentCore Runtime (atau ikuti Lampiran di bawah ini untuk membuatnya dengan dukungan bundel konfigurasi)
-
AWS kredensil dengan izin untuk bedrock-agentcore dan bedrock-agentcore-control (lihat Prasyarat)
Konstanta berikut digunakan dalam contoh boto3. Ganti dengan nilai Anda sendiri:
REGION = "us-west-2" BUNDLE_ID = "myAgentConfig-a1b2c3d4e5" # from create response COMPONENT_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123"
Langkah 1: Buat bundel konfigurasi
Buat bundel dengan konfigurasi awal agen Anda. Bundel menyimpan pasangan nilai kunci (prompt sistem, ID model, suhu, deskripsi alat) yang dikunci oleh komponen ARN.
contoh
Langkah 2: Perbarui bundel
Setelah menjalankan evaluasi batch dan mengidentifikasi bahwa tanggapan agen Anda terlalu bertele-tele, perbarui prompt sistem. Setiap pembaruan membuat versi baru yang tidak dapat diubah.
contoh
Langkah 3: Baca bundel
Ambil konfigurasi saat ini untuk memverifikasi pembaruan berlaku.
contoh
Langkah 4: Bandingkan versi
Diff dua versi untuk melihat dengan tepat apa yang berubah:
contoh
Langkah selanjutnya
-
Jalankan evaluasi batch untuk mengukur dampak perubahan konfigurasi Anda. Lihat Evaluasi Batch.
-
Gunakan rekomendasi untuk memungkinkan layanan menghasilkan permintaan yang dioptimalkan secara otomatis. Lihat Rekomendasi.
-
Siapkan A/B pengujian untuk membandingkan dua versi bundel dengan lalu lintas langsung. Lihat A/B pengujian.
-
Cabang konfigurasi Anda untuk eksperimen tanpa memengaruhi jalur utama. Lihat Memperbarui bundel konfigurasi.
Lampiran: Kode agen dengan integrasi bundel konfigurasi
Kode agen berikut membaca bundel konfigurasi aktif saat runtime menggunakan pola BeforeModelCallEvent hook. Agen dibuat sekali pada tingkat modul, dan hook secara dinamis memperbarui prompt sistem sebelum setiap panggilan model. Perubahan bundel konfigurasi segera berlaku tanpa memulai ulang.
-
Persyaratan SDK: Diperlukan
bedrock-agentcore-sdk-pythonversi 1.8 atau yang lebih baru.get_config_bundle()Metode aktifBedrockAgentCoreContexttersedia dari versi ini dan seterusnya.
Simpan ini sebagai agen Andamain.py:
"""Agent with Configuration Bundle integration — hooks pattern.""" from strands import Agent, tool from strands.models.bedrock import BedrockModel from strands.hooks.events import BeforeModelCallEvent from bedrock_agentcore.runtime import BedrockAgentCoreApp, BedrockAgentCoreContext app = BedrockAgentCoreApp() DEFAULT_MODEL_ID = "global.anthropic.claude-sonnet-4-5-20250929-v1:0" DEFAULT_SYSTEM_PROMPT = ( "You are a helpful customer support assistant for Acme Store. " "Help customers with their orders, returns, and shipping questions." ) @tool def lookup_order(order_id: str) -> str: """Look up an order by ID.""" orders = { "ORD-1001": {"status": "delivered", "item": "Blue T-Shirt (L)", "total": "$29.99"}, "ORD-1002": {"status": "in_transit", "item": "Running Shoes (10)", "total": "$89.99"}, "ORD-1003": {"status": "delayed", "item": "Wireless Headphones", "days_late": 5, "total": "$59.99"}, } return str(orders.get(order_id, {"error": f"Order {order_id} not found"})) @tool def check_shipping_status(order_id: str) -> str: """Check detailed shipping status for an order.""" statuses = { "ORD-1002": "Package is with carrier, on schedule for April 5.", "ORD-1003": "Package delayed 5 days. Policy: 3+ days late qualifies for 15% discount.", } return statuses.get(order_id, f"No active shipment found for {order_id}.") TOOLS = [lookup_order, check_shipping_status] def dynamic_config_hook(event: BeforeModelCallEvent): """Read config bundle and apply system prompt before every model call.""" config_bundle = BedrockAgentCoreContext.get_config_bundle() event.agent.system_prompt = config_bundle.get("system_prompt", DEFAULT_SYSTEM_PROMPT) agent = Agent( model=BedrockModel(model_id=DEFAULT_MODEL_ID), tools=TOOLS, system_prompt=DEFAULT_SYSTEM_PROMPT, ) agent.hooks.add_callback(BeforeModelCallEvent, dynamic_config_hook) @app.entrypoint def invoke(payload, context): result = agent(payload.get("prompt", "Hello")) return {"response": str(result)} if __name__ == "__main__": app.run()