Introducción a los paquetes de configuración
En este tutorial, se pasa de cero a un paquete de configuración versionado que el agente lee en tiempo de ejecución. Creará un paquete, lo actualizará para producir una nueva versión, leerá la configuración y verá el historial de versiones.
Temas
Antes de empezar
Asegúrese de que:
-
Un proyecto de AgentCore CLI con un agente implementado en AgentCore Runtime (o siga el siguiente apéndice para crear uno compatible con paquetes de configuración)
-
AWS credenciales con permisos para
bedrock-agentcoreybedrock-agentcore-control(consulte los requisitos previos)
En los ejemplos de boto3 se utilizan las siguientes constantes. Sustitúyalas por sus propios valores:
REGION = "us-west-2" BUNDLE_ID = "myAgentConfig-a1b2c3d4e5" # from create response COMPONENT_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123"
Paso 1: Crear un paquete de configuración
Cree un paquete con la configuración inicial de su agente. El paquete almacena pares clave-valor (indicador del sistema, ID de modelo, temperatura, descripciones de herramientas) codificados por el ARN del componente.
ejemplo
Paso 2: Actualizar el paquete
Tras realizar una evaluación por lotes e identificar que las respuestas de su agente son demasiado detalladas, actualice el indicador del sistema. Cada actualización crea una nueva versión inmutable.
ejemplo
Paso 3: Lea el paquete
Recupera la configuración actual para comprobar que la actualización se ha realizado.
ejemplo
Paso 4: Compara las versiones
Divida dos versiones para ver exactamente qué ha cambiado:
ejemplo
Siguientes pasos
-
Realice una evaluación por lotes para medir el impacto del cambio de configuración. Consulte Evaluación de lotes.
-
Utilice las recomendaciones para permitir que el servicio genere automáticamente mensajes optimizados. Consulte las recomendaciones.
-
Configura A/B las pruebas para comparar dos versiones de paquetes con el tráfico en directo. Consulte A/B las pruebas.
-
Ramifique su configuración para realizar experimentos sin afectar a la línea principal. Consulte Actualizar un paquete de configuración.
Apéndice: Código de agente con integración de paquete de configuración
El siguiente código de agente lee el paquete de configuración activo en tiempo de ejecución mediante el BeforeModelCallEvent patrón de enlaces. El agente se crea una vez a nivel de módulo y el enlace actualiza dinámicamente el indicador del sistema antes de cada llamada al modelo. Los cambios en el paquete de configuración se aplican inmediatamente sin necesidad de reiniciarse.
-
Requisito del SDK: se requiere la
bedrock-agentcore-sdk-pythonversión 1.8 o posterior. Elget_config_bundle()método onBedrockAgentCoreContextestá disponible a partir de esta versión.
Guarda esto como el de tu 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(payload.get("prompt", "Hello")) return {"response": str(result)} if __name__ == "__main__": app.run()