Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Guida introduttiva ai pacchetti di configurazione
Questa procedura dettagliata consente di passare da zero a un bundle di configurazione con versione che l'agente legge in fase di esecuzione. Creerai un pacchetto, lo aggiornerai per produrre una nuova versione, leggerai la configurazione e visualizzerai la cronologia delle versioni.
Argomenti
Prima di iniziare
Assicurati di:
-
Un progetto AgentCore CLI con un agente distribuito su AgentCore Runtime (o segui l'Appendice seguente per crearne uno con supporto per il pacchetto di configurazione)
-
AWS credenziali con autorizzazioni per e (vedi Prerequisiti)
bedrock-agentcorebedrock-agentcore-controlPrerequisiti
Le seguenti costanti vengono utilizzate negli esempi boto3. Sostituiscile con i tuoi valori:
REGION = "us-west-2" BUNDLE_ID = "myAgentConfig-a1b2c3d4e5" # from create response COMPONENT_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123"
Fase 1: Creare un pacchetto di configurazione
Crea un pacchetto con la configurazione iniziale del tuo agente. Il pacchetto memorizza le coppie chiave-valore (prompt di sistema, ID del modello, temperatura, descrizioni degli strumenti) codificate dall'ARN del componente.
Esempio
Fase 2: Aggiorna il pacchetto
Dopo aver eseguito una valutazione in batch e aver rilevato che le risposte dell'agente sono troppo dettagliate, aggiorna il prompt di sistema. Ogni aggiornamento crea una nuova versione immutabile.
Esempio
Fase 3: Leggi il pacchetto
Recupera la configurazione corrente per verificare che l'aggiornamento abbia avuto effetto.
Esempio
Fase 4: Confronta le versioni
Differenzia due versioni per vedere esattamente cosa è cambiato:
Esempio
Fasi successive
-
Esegui una valutazione in batch per misurare l'impatto della modifica della configurazione. Vedi Valutazione in batch.
-
Utilizza i consigli per consentire al servizio di generare automaticamente prompt ottimizzati. Vedi Raccomandazioni.
-
Imposta A/B i test per confrontare due versioni del pacchetto con il traffico in tempo reale. Vedi A/B test.
-
Suddividi la tua configurazione per gli esperimenti senza influire sulla linea principale. Vedi Aggiornamento di un pacchetto di configurazione.
Appendice: codice agente con integrazione del pacchetto di configurazione
Il seguente codice dell'agente legge il pacchetto di configurazione attivo in fase di esecuzione utilizzando lo schema hook. BeforeModelCallEvent L'agente viene creato una volta a livello di modulo e l'hook aggiorna dinamicamente il prompt di sistema prima di ogni chiamata al modello. Le modifiche al pacchetto di configurazione hanno effetto immediato senza riavvio.
-
Requisiti SDK: è richiesta la
bedrock-agentcore-sdk-pythonversione 1.8 o successiva. Ilget_config_bundle()metodo attivoBedrockAgentCoreContextè disponibile da questa versione in poi.
Salvalo come nome del tuo agente: main.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()