Tu veux les meilleurs outils IA avant les autres ?
On teste et on décrypte les nouveaux outils IA chaque soir, en 5 min. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
Construire et déployer un agent sur AWS avec Strands et AgentCore
Créer un agent d'intelligence artificielle capable d'effectuer des tâches utiles peut être une entreprise relativement simple. Pour une application basique, quelques lignes de code en Python utilisant la bibliothèque boto3 et l'API Bedrock suffisent souvent. Le processus implique de configurer l'accès à un modèle de langage large (LLM), d'envoyer une invite et des entrées, puis de recevoir et retourner une réponse à l'utilisateur.
Cependant, la complexité augmente lorsque l'application doit gérer davantage de responsabilités. Par exemple, si le modèle doit maintenir le contexte d'une conversation, choisir entre différents outils, suivre des instructions détaillées ou coordonner plusieurs étapes, le code de l'application commence à ressembler à un cadre d'agent sophistiqué. C'est ici que Strands et AgentCore entrent en jeu.
Strands fournit cette couche d'agent, mais pour que l'agent fonctionne de manière fiable, il faut résoudre un ensemble de préoccupations supplémentaires. Cela inclut la nécessité d'un environnement d'exécution, d'une interface d'invocation, d'une isolation de session, d'une évolutivité, de la sécurité, et potentiellement de services comme la mémoire à long terme ou un accès géré aux outils. Amazon Bedrock AgentCore offre ces capacités opérationnelles sans imposer de comportement spécifique à l'agent lui-même.
L'agent que nous allons construire
Nous allons concevoir et déployer un assistant éducatif utilisant Strands, auquel nous ajouterons la mémoire d'AgentCore pour conserver les préférences des utilisateurs entre les conversations. Cet agent sera capable de répondre à des questions dans les domaines suivants :
- Physique
- Chimie
- Mathématiques
- Histoire
Le modèle déterminera le sujet le plus approprié pour chaque question, éliminant ainsi le besoin de maintenir une liste de mots-clés ou un outil de routage séparé. Il répondra aux questions dans les domaines pris en charge en tant qu'expert et refusera celles qui sortent de ces quatre catégories.
Ce type d'agent est un bon point de départ car son comportement est facile à comprendre tout en impliquant des décisions que l'on retrouve dans des systèmes plus complexes : sélection d'un modèle, rédaction d'instructions, validation des demandes, test du comportement du modèle, déploiement de l'application et gestion des sessions de conversation.
Pour cette première implémentation, j'ai choisi d'utiliser un seul agent Strands plutôt que des agents spécialisés pour chaque sujet. Des agents séparés deviennent pertinents lorsque les sujets nécessitent des modèles, outils, instructions, données ou autorisations différents, mais pour l'instant, cela ajouterait une coordination et une complexité inutiles.
Capacités d'Amazon Bedrock AgentCore
Amazon Bedrock AgentCore est un ensemble de services gérés par AWS pour construire, déployer, connecter et faire fonctionner des agents dans le cloud AWS. Il est indépendant du cadre, ce qui signifie qu'il peut héberger des agents construits avec Strands, LangChain, OpenAI Agents SDK et d'autres frameworks. Les principales capacités d'AgentCore incluent :
- Runtime : Héberge et met à l'échelle les agents dans des environnements isolés par session, prenant en charge le streaming et les protocoles HTTP, MCP et A2A.
-
Memory : Stocke les événements de conversation et extrait des faits durables, préférences, résumés ou épisodes pour une utilisation à travers les sessions.
-
Gateway : Expose des API, des fonctions Lambda et des serveurs MCP en tant qu'outils gérés que les agents peuvent découvrir et appeler.
-
Identity : Gère l'authentification entrante et les identifiants que les agents utilisent pour accéder aux services externes.
-
Policy : Applique les règles d'autorisation Cedar aux appels d'outils Gateway avant qu'ils n'atteignent leurs cibles.
-
Browser : Fournit des sessions de navigateur gérées pour les agents qui doivent interagir avec des sites web.
-
Code Interpreter : Exécute du Python, JavaScript ou TypeScript dans des environnements isolés gérés.
-
Observability : Envoie des journaux, des traces et des métriques des agents à des services tels que CloudWatch et X-Ray.
-
Evaluations : Mesure le comportement des agents et la qualité des réponses à l'aide d'évaluateurs intégrés ou personnalisés.
Ces capacités sont indépendantes, ce qui signifie qu'un agent peut utiliser uniquement celles dont il a besoin et en ajouter d'autres à mesure que ses responsabilités croissent.
Installation des outils de développement
Pour suivre ce guide, vous aurez besoin de plusieurs outils et configurations :
- Identifiants AWS configurés localement.
- Node.js version 20 ou ultérieure.
- Python version 3.10 ou ultérieure.
- AWS CDK (utilisé par AgentCore pour le déploiement).
- AgentCore CLI.
- Accès au modèle sélectionné dans Amazon Bedrock.
Mon installation a été réalisée sur un PC Windows en utilisant PowerShell. Commencez par installer l'AWS CLI et Node.js si ces commandes ne sont pas déjà disponibles.
PS C:\ > msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
PS C:\ > aws --version
aws-cli/2.22.15 Python/3.12.6 Windows/11 exe/AMD64
Installez l'AWS CDK globalement avec npm :
PS C:\ > npm install -g aws-cdk
PS C:\ > cdk --version
2.1126.0 (build a90d578)
Installez l'AgentCore CLI :
PS C:\ > npm install -g @aws/agentcore
PS C:\ > agentcore --version
L'AgentCore CLI collecte des analyses d'utilisation anonymes agrégées pour aider à améliorer l'outil. Pour vous désinscrire : agentcore config telemetry.enabled false. Pour auditer : agentcore config telemetry.audit true. Pour en savoir plus : agentcore telemetry --help.
La commande create de l'AgentCore CLI crée l'environnement Python et installe les dépendances du projet généré lors de l'exécution locale. Le fichier pyproject.toml généré enregistre les dépendances, telles que Strands et le SDK AgentCore.
Configurez les identifiants AWS en utilisant l'approche appropriée pour l'environnement. Pour le développement local, cela se fait généralement à l'aide d'un fichier de profil AWS.
Confirmez que le LLM ou le profil d'inférence que vous souhaitez utiliser est disponible depuis la région source prévue. Vous pouvez le faire depuis l'AWS CLI comme ceci :
PS C:\ > aws bedrock list-foundation-models --region <YOUR_REGION>
PS C:\ > aws bedrock list-inference-profiles --region <YOUR_REGION>
Choisir votre modèle
Lors de la création d'un projet AgentCore, le drapeau de ligne de commande --model-provider Bedrock sélectionne Amazon Bedrock comme fournisseur, mais ne spécifie pas quel modèle de base l'application a l'intention d'utiliser.
Strands utilise par défaut l'un des modèles d'Anthropic lorsque aucun modèle n'est fourni. Au moment de la rédaction, le dernier modèle par défaut de Strands est global.anthropic.[claude](/outil/claude)-sonnet-4–6, mais il est préférable de toujours spécifier un modèle particulier que vous souhaitez que Strands utilise.
Ce fragment de code exemple spécifie explicitement l'utilisation d'Anthropic Claude Sonnet 4.6 via un profil d'inférence global inter-régional :
from strands.models import BedrockModel
model = BedrockModel(
model_id="global.anthropic.claude-sonnet-4-6"
)






