View a markdown version of this page

Memulai dengan bundel konfigurasi - Batu Dasar Amazon AgentCore

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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.

Sebelum Anda mulai

Pastikan Anda memiliki:

  • Proyek AgentCore CLI dengan agen yang dikerahkan ke AgentCore Runtime (atau ikuti Lampiran di bawah ini untuk membuatnya dengan dukungan bundel konfigurasi)

  • AWS kredenSIAL dengan izin untuk bedrock-agentcore dan bedrock-agentcore-control (lihat Pr asyarat)

Konstanta berikut digunakan dalam contoh boto3. Ganti dengan nilai-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 kunci-nilai (prompt sistem, ID model, suhu, deskripsi alat) yang dikunci oleh komponen ARN.

contoh
AgentCore CLI
agentcore add config-bundle \ --name myAgentConfig \ --components '{"arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123": {"configuration": {"system_prompt": "You are a helpful customer support assistant for Acme Store.", "model_id": "global.anthropic.claude-sonnet-4-5-20250929-v1:0"}}}' agentcore deploy

Setelah penerapan, CLI mencetak ID bundel dan ID versi awal.

AWS SDK (boto3)
import boto3 import uuid client = boto3.client("bedrock-agentcore-control", region_name=REGION) response = client.create_configuration_bundle( bundleName="myAgentConfig", components={ COMPONENT_ARN: { "configuration": { "system_prompt": "You are a helpful customer support assistant for Acme Store.", "model_id": "global.anthropic.claude-sonnet-4-5-20250929-v1:0", "temperature": 0.7, } } }, description="Acme Store agent configuration", commitMessage="Initial configuration", clientToken=str(uuid.uuid4()), ) bundle_id = response["bundleId"] version_id = response["versionId"] print(f"Created bundle: {bundle_id}") print(f"Initial version: {version_id}")

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
AgentCore CLI

Edit konfigurasi bundel diagentcore.json, lalu gunakan kembali:

# Edit the system_prompt in agentcore.json, then: agentcore deploy

CLI mendeteksi bundel yang ada dan membuat versi baru secara otomatis.

AWS SDK (boto3)
response = client.update_configuration_bundle( bundleId=bundle_id, components={ COMPONENT_ARN: { "configuration": { "system_prompt": ( "You are a helpful customer support assistant for Acme Store. " "Be concise. Confirm actions taken in one sentence." ), "model_id": "global.anthropic.claude-sonnet-4-5-20250929-v1:0", "temperature": 0.5, } } }, parentVersionIds=[version_id], commitMessage="Reduce verbosity: shorter prompt, lower temperature", clientToken=str(uuid.uuid4()), ) new_version_id = response["versionId"] print(f"New version: {new_version_id}")

Langkah 3: Baca bundel

Ambil konfigurasi saat ini untuk memverifikasi pembaruan mulai berlaku.

contoh
AgentCore CLI
agentcore config-bundle versions --name myAgentConfig

Output menunjukkan riwayat versi dengan pesan komit:

Version                               Branch     Created              Message
────────────────────────────────────────────────────────────────────────────────
a1b2c3d4-...                          mainline   2026-04-28 03:00     Reduce verbosity: shorter prompt, lower temperature
e5f6a7b8-...                          mainline   2026-04-28 02:30     Initial configuration
AWS SDK (boto3)
response = client.get_configuration_bundle(bundleId=bundle_id) config = response["components"][COMPONENT_ARN]["configuration"] print(f"Version: {response['versionId']}") print(f"System prompt: {config['system_prompt']}") print(f"Model: {config['model_id']}") print(f"Temperature: {config.get('temperature')}")

Langkah 4: Bandingkan versi

Bandingkan dua versi untuk melihat dengan tepat apa yang berubah:

contoh
AgentCore CLI
agentcore config-bundle diff --name myAgentConfig --from <version-1> --to <version-2>
AWS SDK (boto3)
# Fetch both versions v1 = client.get_configuration_bundle_version(bundleId=bundle_id, versionId=version_id) v2 = client.get_configuration_bundle_version(bundleId=bundle_id, versionId=new_version_id) # Compare v1_config = v1["components"][COMPONENT_ARN]["configuration"] v2_config = v2["components"][COMPONENT_ARN]["configuration"] for key in set(list(v1_config.keys()) + list(v2_config.keys())): if v1_config.get(key) != v2_config.get(key): print(f"{key}:") print(f" before: {v1_config.get(key)}") print(f" after: {v2_config.get(key)}")

Langkah selanjutnya

  • Jalankan evaluasi batch untuk mengukur dampak perubahan konfigurasi Anda. Lihat Evalu asi batch.

  • Gunakan rekomendasi untuk membiarkan layanan menghasilkan prompt yang dioptimalkan secara otomatis. Lihat Rekomendasi.

  • Siapkan A/B pengujian untuk membandingkan dua versi bundel dengan lalu lintas langsung. Lihat A/B pengujian.

  • Cabangkan konfigurasi Anda untuk eksperimen tanpa mempengaruhi 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 di tingkat modul, dan hook secara dinamis memperbarui prompt sistem sebelum setiap panggilan model. Perubahan bundel konfigurasi segera berlaku tanpa memulai ulang.

  • Persyaratan SDK: Diper bedrock-agentcore-sdk-python lukan versi 1.8 atau yang lebih baru. get_config_bundle()Metode aktif BedrockAgentCoreContext tersedia mulai 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(str(payload.get("prompt", "Hello"))) return {"response": str(result)} if __name__ == "__main__": app.run()