Article original : How to Deploy an AI Agent with Amazon Bedrock AgentCore
Amazon Bedrock AgentCore est un service géré qui facilite la construction, le déploiement et l'exploitation d'agents IA de manière sécurisée et à l'échelle sur AWS. Il fonctionne parfaitement avec des frameworks tels que Strands Agents, LangGraph, CrewAI et LlamaIndex, tout en prenant en charge les tâches complexes telles que la gestion du runtime, la configuration des rôles IAM et l'observabilité.
Dans ce guide, vous allez configurer votre environnement, créer et tester un agent IA simple localement, le déployer avec le kit de démarrage AgentCore et l'invoquer via l'AWS SDK.
Table des matières
Prérequis
Avant de commencer, assurez-vous d'avoir :
Un compte AWS avec des identifiants configurés.
L'AWS CLI installée et fonctionnelle.
Python 3.10 ou version ultérieure installé.
Boto3 installé.
L'accès aux modèles activé dans la console Amazon Bedrock (par exemple, Anthropic Claude Sonnet 4.0).
Étape 1 : Configurer l'AWS CLI
Tout d'abord, installez l'AWS CLI si vous ne l'avez pas déjà. Sur Linux ou macOS : Guide de configuration de l'AWS CLI.
Ensuite, configurez un profil avec AWS SSO :
aws configure sso --profile my-profile
Vous serez invité à saisir des détails tels que :
SSO start URL – l'URL du portail IAM Identity Center de votre organisation AWS.
SSO region – la région AWS où IAM Identity Center est configuré.
Account ID – le compte AWS auquel vous souhaitez accéder.
Role name – le rôle IAM que vous souhaitez assumer dans ce compte.
Default region – la région qui sera utilisée lors des requêtes.
Default output format – par exemple,
json,yamloutable.
Cela crée un nouveau profil nommé my-profile dans votre configuration AWS CLI, vous permettant d'utiliser cette identité pour interagir avec les services AWS.
Ensuite, vous devez vérifier votre identité. Une fois votre profil configuré, confirmez que la CLI s'authentifie correctement auprès d'AWS en exécutant :
aws sts get-caller-identity --profile my-profile
Cette commande renvoie des détails sur votre identité, notamment :
Account – l'ID du compte AWS avec lequel vous êtes authentifié.
UserId – l'identifiant unique de votre rôle ou utilisateur IAM.
Arn – l'Amazon Resource Name (ARN) complet de votre identité.
Si la commande réussit et affiche les informations de votre compte, cela signifie que votre profil est correctement configuré et prêt à être utilisé avec les SDK AWS, l'AWS CLI ou des services comme Bedrock AgentCore.
Étape 2 : Installer et créer votre agent
Tout d'abord, vous devez configurer un environnement virtuel Python. Cela évite les conflits de dépendances avec d'autres projets sur votre machine.
Créons et activons un environnement virtuel :
Sur macOS/Linux :
python3 -m venv .venv
source .venv/bin/activate
Sur Windows (PowerShell ou CMD) :
python -m venv .venv
.venv\\Scripts\\activate
python -m venv .venv→ crée un environnement virtuel nommé.venvdans votre dossier de projet..venv\\Scripts\\activate→ active l'environnement.
Une fois activé, votre invite de commande affichera (.venv) au début. Pour désactiver :
deactivate
Créer un fichier requirements.txt
Listez les dépendances dont votre projet a besoin en créant un fichier nommé requirements.txt à la racine du projet :
bedrock-agentcore
strands-agents
Cela facilite l'installation de tout en une seule fois avec :
pip install -r requirements.txt
Créez un fichier appelé my_agent.py et ajoutez le code suivant :
from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent
app = BedrockAgentCoreApp()
# Créer un agent avec les paramètres par défaut
agent = Agent()
@app.entrypoint
def invoke(payload):
"""Votre fonction d'agent IA"""
user_message = payload.get("prompt", "Bonjour ! Comment puis-je vous aider aujourd'hui ?")
result = agent(user_message)
return {"result": result.message}
if __name__ == "__main__":
app.run()
Analyse du code
BedrockAgentCoreApp– le wrapper de runtime central qui gère la configuration, l'exécution et l'intégration avec les services AWS.Agent– un objet agent de base de la bibliothèque Strands qui peut traiter et répondre aux prompts.BedrockAgentCoreApp()crée l'application conteneur qui gère le cycle de vie de votre agent.Agent()initialise un agent Strands simple avec les paramètres par défaut. Dans un cas réel, vous pouvez personnaliser cela avec des outils spécifiques, de la mémoire ou une logique de raisonnement.Le décorateur
@app.entrypointmarque cette fonction comme le point d'entrée appelable pour votre agent. Chaque fois qu'une requête est envoyée à l'agent (via l'AWS SDK, la CLI ou un test local), cette fonction est invoquée.L'agent recherche un
"prompt"dans le payload entrant.Si aucun prompt n'est fourni, il utilise par défaut
"Bonjour ! Comment puis-je vous aider aujourd'hui ?".L'objet
Agenttraite ensuite cette entrée et génère une réponse.
Étape 3 : Tester l'agent localement
Exécutez l'agent :
python3 -u my_agent.py
Ouvrez un autre terminal et envoyez une requête :
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{"prompt": "Bonjour !"}'
Si cela réussit, vous verrez :
{"result": "Bonjour ! Je suis là pour vous aider..."}
Vous pouvez arrêter l'agent avec Ctrl+C.
Étape 4 : Déployer sur le Runtime AgentCore
Vous êtes maintenant prêt à déployer votre agent sur AWS.
Configurez l'agent :
agentcore configure -e my_agent.py
Cela crée un fichier de configuration appelé bedrock_agentcore.yaml.
Vous pouvez lancer le déploiement avec cette commande :
agentcore launch
La sortie inclura :
L'Amazon Resource Name (ARN) de votre agent.
L'emplacement des logs dans Amazon CloudWatch.
Testez votre agent déployé :
agentcore invoke '{"prompt": "raconte-moi une blague"}'
Si vous recevez une blague en retour, votre agent fonctionne correctement.
Étape 5 : Invoquer l'agent avec l'AWS SDK
Vous pouvez appeler votre agent par programmation en utilisant Boto3. Créez un fichier appelé invoke_agent.py :
import json
import boto3
agent_arn = "VOTRE_AGENT_ARN"
prompt = "Raconte-moi une blague"
agent_core_client = boto3.client("bedrock-agentcore")
payload = json.dumps({"prompt": prompt}).encode()
response = agent_core_client.invoke_agent_runtime(
agentRuntimeArn=agent_arn,
payload=payload
)
content = []
for chunk in response.get("response", []):
content.append(chunk.decode("utf-8"))
print(json.loads("".join(content)))
Exécutez le script :
python invoke_agent.py
Vous devriez voir la réponse de l'agent IA.
Étape 6 : Nettoyage
Si vous ne souhaitez plus exécuter l'agent, supprimez le runtime :
aws bedrock-agentcore delete-agent-runtime --agent-runtime-arn <votre_arn>
Problèmes courants
Permission refusée : Vérifiez vos identifiants AWS et vos politiques IAM.
Avertissement Docker : Ignorez ceci à moins d'utiliser
--localou--local-build.Accès au modèle refusé : Activez l'accès au modèle (tel que Claude Sonnet 4.0) dans la console Bedrock.
Erreurs de build : Vérifiez les logs de build CloudWatch et les politiques IAM.
Conclusion
Amazon Bedrock AgentCore facilite la création et le déploiement d'agents IA sans avoir à gérer des configurations de conteneurs complexes ou l'infrastructure. Vous pouvez tester localement, lancer sur le cloud avec une seule commande et tout surveiller via CloudWatch.
Ce workflow est idéal pour les développeurs qui souhaitent passer rapidement du prototype à la production tout en restant dans l'écosystème AWS.
Ressources :