Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Commencer à utiliser les packs de configuration
Cette procédure pas à pas vous permet de passer de zéro à un ensemble de configuration versionné que votre agent lit au moment de l'exécution. Vous allez créer un bundle, le mettre à jour pour produire une nouvelle version, lire la configuration et consulter l'historique des versions.
Rubriques
Avant de commencer
Assurez-vous d’avoir :
-
Un projet AgentCore CLI avec un agent déployé sur AgentCore Runtime (ou suivez l'annexe ci-dessous pour en créer un avec prise en charge du bundle de configuration)
-
AWS informations d'identification avec autorisations pour
bedrock-agentcoreetbedrock-agentcore-control(voir Conditions préalables)
Les constantes suivantes sont utilisées dans les exemples boto3. Remplacez-les par vos propres valeurs :
REGION = "us-west-2" BUNDLE_ID = "myAgentConfig-a1b2c3d4e5" # from create response COMPONENT_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123"
Étape 1 : Création d'un ensemble de configuration
Créez un bundle avec la configuration initiale de votre agent. Le bundle stocke les paires clé-valeur (invite système, identifiant du modèle, température, descriptions des outils) saisies par l'ARN du composant.
Exemple
Étape 2 : mettre à jour le bundle
Après avoir effectué une évaluation par lots et identifié que les réponses de votre agent sont trop détaillées, mettez à jour l'invite du système. Chaque mise à jour crée une nouvelle version immuable.
Exemple
Étape 3 : Lisez le bundle
Récupérez la configuration actuelle pour vérifier que la mise à jour a pris effet.
Exemple
Étape 4 : comparer les versions
Différenciez deux versions pour voir exactement ce qui a changé :
Exemple
Étapes suivantes
-
Exécutez une évaluation par lots pour mesurer l'impact de votre modification de configuration. Voir Évaluation par lots.
-
Utilisez les recommandations pour permettre au service de générer automatiquement des invites optimisées. Voir les recommandations.
-
Configurez A/B des tests pour comparer deux versions du bundle avec le trafic réel. Voir A/B tests.
-
Branchez votre configuration à des fins d'expérimentation sans affecter la ligne principale. Voir Mettre à jour un ensemble de configuration.
Annexe : Code d'agent avec intégration du bundle de configuration
Le code d'agent suivant lit le bundle de configuration actif lors de l'exécution à l'aide du modèle BeforeModelCallEvent hook. L'agent est créé une fois au niveau du module et le hook met à jour dynamiquement l'invite du système avant chaque appel de modèle. Les modifications apportées au bundle de configuration prennent effet immédiatement sans redémarrage.
-
Configuration requise du SDK : la
bedrock-agentcore-sdk-pythonversion 1.8 ou ultérieure est requise. Laget_config_bundle()méthode activéeBedrockAgentCoreContextest disponible à partir de cette version.
Enregistrez ceci comme étant celui de votre agent 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()