Strands harness : l'agent IA open source d'AWS, expliqué

Rama Adi
Écrit par

Rama Adi

Katelin Teen
Relu par

Katelin Teen

Dernière modification September 24, 2026

Vérifié par un expert
Illustration dessinée à la main d'une boucle d'agent IA à côté d'un développeur devant un terminal

En bref

Le Strands harness est le nouvel agent IA open source d'AWS, lancé le 21 septembre 2026 sous licence Apache 2.0. L'idée est simple : au lieu de monter votre propre boucle d'agent, vous écrivez un import, vous confiez une tâche à l'agent, et il arrive avec des valeurs par défaut éprouvées pour les outils, la mémoire, les sessions et la gestion du contexte. Point crucial, vous apportez votre propre modèle : le même agent fonctionne sur Amazon Bedrock, Anthropic, OpenAI, Google ou un modèle Ollama local.

Le chiffre phare est « 28 % de coût en tokens en moins » par rapport aux harness concurrents exécutant les mêmes modèles, et AWS affirme qu'une exécution de code a coûté 77 % de moins que Claude Code tout en obtenant un meilleur score. Ce sont des chiffres réels et officiels, mais ils reposent sur des benchmarks, donc je les lirais comme des indications plutôt que comme parole d'évangile.

Si vous construisez des agents et voulez un contrôle total sur la boucle, le modèle et le déploiement, c'est une option solide et vraiment gratuite. Si vous voulez un agent IA pour le service client ou pour du contenu, prêt à travailler sans que vous ayez à assembler ni héberger quoi que ce soit, un framework est la mauvaise couche, et quelque chose comme eesel AI se rapproche davantage de ce que vous cherchez vraiment.

Je construis et déploie des agents IA qui travaillent sur de vraies files de clients, et j'ai passé assez de temps à écrire des boucles d'agent à la main pour savoir exactement quelles parties sont fastidieuses. Alors quand AWS sort, le jour du lancement, un harness préassemblé et agnostique au modèle, je le lis ligne par ligne. Voici ce qu'est réellement le Strands harness, ce qu'il apporte, et l'affirmation que je mettrais à l'épreuve avant de la citer dans un document de planification.

Qu'est-ce que le Strands harness ?

Le Strands harness est décrit par sa propre documentation comme « a state-of-the-art, fully assembled agent harness ». L'idée est d'obtenir un agent optimisé en un seul import plutôt que de l'assembler pièce par pièce. En Python, c'est pip install strands-harness puis create_harness() ; en TypeScript, npm install @strands-agents/harness puis createHarness(). Vous lui donnez une tâche et il s'exécute.

C'est la porte d'entrée « tout inclus » d'une boîte à outils open source d'AWS plus large appelée Strands Agents. Le harness s'appuie sur une brique plus ancienne et de plus bas niveau : le Strands Agents SDK, qu'AWS a publié en open source pour la première fois en mai 2025 et qui tourne déjà dans des systèmes de production d'AWS comme Amazon Q Developer et AWS Glue. Le dépôt harness-sdk montre l'élan : 7,8k étoiles et 1,2k forks au moment de la rédaction, le tout sous Apache 2.0.

Ce qui compte, c'est ce que le harness n'est pas. Ce n'est pas un produit hébergé, pas un chatbot auquel on se connecte, ni un agent orienté client que l'on place sur son site web. C'est du code que vous installez et exécutez dans votre propre processus, sur votre propre infrastructure. Cette distinction conditionne tout ce qui suit.

D'abord, qu'est-ce qu'un agent harness ?

Si le mot « harness » porte beaucoup de poids et que vous n'êtes pas sûr de ce qu'il signifie, vous n'êtes pas seul. La documentation de Strands donne la phrase la plus claire que j'aie lue : « A language model can answer questions. An agent can do things. The agent loop is what makes that difference possible. »

Un simple grand modèle de langage ne connaît que ce que couvre son entraînement. Dès qu'une tâche demande quelque chose en dehors (lire un fichier, appeler une API, exécuter une commande), le modèle doit atteindre le monde extérieur. La boucle d'agent est la couche d'orchestration qui le permet : invoquer le modèle, vérifier s'il veut utiliser un outil, exécuter l'outil, réinjecter le résultat, et recommencer jusqu'à ce que le modèle ait une réponse finale.

La boucle d'agent Strands : un prompt invoque l'agent, qui alterne entre le modèle et ses outils avant de renvoyer un résultat, tiré de la documentation Strands
La boucle d'agent Strands : un prompt invoque l'agent, qui alterne entre le modèle et ses outils avant de renvoyer un résultat, tiré de la documentation Strands

Un « harness » est l'échafaudage autour de cette boucle : le prompt système, l'ensemble des outils, la façon dont le contexte est élagué quand il grossit, la façon dont la mémoire persiste d'une exécution à l'autre et la façon dont les erreurs sont rattrapées. Vous pouvez tout écrire vous-même, et beaucoup le font. La raison d'être d'un produit comme le Strands harness est que les parties ennuyeuses et porteuses de cet échafaudage sont les mêmes pour presque tout le monde, et qu'il est délicat de bien les réaliser.

Une échelle montrant trois façons d'exécuter un agent IA, de l'appel direct au modèle à la construction avec le SDK puis au Strands harness préassemblé
Une échelle montrant trois façons d'exécuter un agent IA, de l'appel direct au modèle à la construction avec le SDK puis au Strands harness préassemblé

Voilà le spectre. Un appel direct au modèle répond mais ne peut pas agir. Construire avec un SDK (celui de Strands, ou quelque chose comme l'OpenAI Agents SDK ou le Claude Agent SDK) vous donne un contrôle total mais vous laisse câbler chaque pièce. Le harness est le juste milieu : vous partez de valeurs par défaut réglées et ne remplacez que ce dont votre cas d'usage a réellement besoin.

Ce que vous obtenez d'emblée

Lancez create_harness() sans argument et vous obtenez un agent pleinement fonctionnel. Ce qui rend les valeurs par défaut intéressantes, c'est qu'AWS affirme que chacune est remplaçable, et que ce que vous récupérez est un Agent Strands standard sans enveloppe cachée. Voici ce qui est fourni par défaut :

Par défautCe que ça fait
Modèle de votre choixFonctionne sur Bedrock (par défaut), Anthropic, OpenAI, Google ou Ollama, avec raisonnement activé
Prompt système régléSuit une philosophie « explorer d'abord, agir ensuite, confirmer avant tout ce qui est irréversible, vérifier avant de terminer »
Outils shell et fichiersread, write et edit intégrés, plus exécution de commandes
Accès webUn outil pour récupérer du contenu sur le web
Gestion du contexteMet de côté les résultats d'outils volumineux à mesure qu'une tâche grossit et met en cache les parties réutilisées de la requête pour économiser
Mémoire à long termeConserve la mémoire d'une exécution à l'autre
SessionsReprend une conversation antérieure à partir d'un identifiant de session
Délégation à des sous-agentsConfie les sous-tâches ouvertes à un agent assistant intégré
Suivi des tâchesTient une liste de contrôle pour le travail en plusieurs étapes

La philosophie du prompt système est la partie que je ne survolerais pas. « Confirmer avant tout ce qui est irréversible, vérifier avant de terminer » est exactement la discipline qui sépare un agent auquel on peut faire confiance sur du vrai travail d'un agent qui fait faux avec aplomb. C'est la même leçon que j'ai apprise à la dure en faisant tourner de l'IA sur de vraies files de support : le mode d'échec n'est jamais « le bot n'a rien fait », c'est « le bot a fait quelque chose de faux, vite ». Intégrer cette prudence au prompt par défaut est un bon choix.

Apportez votre propre modèle

La fonctionnalité qui a retenu l'attention, c'est la portabilité du modèle. La documentation le dit sans détour : « the model is one object you hand to the agent; the rest of your code stays the same. » Remplacez global.anthropic.claude-sonnet-5 par un modèle d'OpenAI ou de Google et rien d'autre ne change.

C'est plus important qu'il n'y paraît, et la réaction de la communauté sur le fil de lancement de Hacker News a défendu l'argument mieux que le marketing :

Hacker News

"This is the very reason why I avoid to use native harness. They are optimized for the economic benefit of the provider, not for mine."

C'est le vrai argument en faveur d'un harness agnostique au modèle. Un agent de code lié à un laboratoire a intérêt à brûler plus de tokens de ce laboratoire. Un harness ouvert que vous possédez, non. C'est la même raison pour laquelle les équipes s'inquiètent de l'enfermement quand elles comparent Cursor et Windsurf ou évaluent des alternatives à Codex : le modèle que vous aimez ce trimestre n'est peut-être pas celui que vous aimerez le prochain, et vous voulez changer sans tout réécrire.

L'affirmation « 28 % moins cher », examinée

Venons-en au chiffre que tout le monde a répété. Le billet de lancement officiel s'ouvre sur « frontier performance with 28% lower token cost », mesuré comme une moyenne sur six benchmarks face à d'autres harness exécutant les mêmes modèles. AWS indique aussi que sur Terminal-Bench 2.1, avec Fable 5 d'Anthropic, le harness a coûté 77 % de moins que Claude Code et obtenu un meilleur score. Le mécanisme annoncé est sans éclat et crédible : tronquer les résultats d'outils au-delà d'un seuil, compacter le contexte quand il devient trop plein et mettre en cache les parties réutilisées de chaque requête.

C'est ici que je ralentirais. Le même fil HN qui saluait la conception agnostique au modèle a aussi pointé une faille dans la présentation du benchmark :

Hacker News

"Terminal Bench 2.1 is saturated. Many token saving techniques would save money and score basically the same running Fable 5 against Terminal Bench 2.1... This is at least the fourth time I've seen a project hit front page with a 'save money with same score on saturated benchmark' claim."

La critique est juste. Un unique benchmark saturé est un appui fragile pour une affirmation de coût. Mais le point de fond, à savoir que le harness, et pas seulement le modèle, détermine votre facture, est réel, et un autre commentateur l'a étayé avec une donnée concrète :

Hacker News

"Fable 5 on Claude Code scored 61.8% at a cost of $248.05 while Fable 5 on OpenCode beat it at 66.3% at $73.42. The same model, the same benchmark; only the harness is different with a ~5 point difference in accuracy while costing significantly less."

Deux barres de coût pour le même modèle sur le même benchmark : Claude Code à 248,05 $ et 61,8 %, contre OpenCode à 73,42 $ et 66,3 %
Deux barres de coût pour le même modèle sur le même benchmark : Claude Code à 248,05 $ et 61,8 %, contre OpenCode à 73,42 $ et 66,3 %

Même modèle, même benchmark, l'un coûte un tiers et est un peu plus précis. C'est toute la thèse de l'intérêt d'un harness. Ma conclusion : le titre « 28 % moins cher » va dans le bon sens et le mécanisme est solide, mais je le testerais sur mes propres tâches avant de mettre le chiffre dans un budget. Les économies en benchmark et les économies en production ne sont pas la même monnaie.

Le reste de la boîte à outils Strands

Le harness est l'une des nombreuses surfaces publiées par AWS, et quelques-unes valent la peine d'être connues si vous creusez :

  • Le Strands Harness SDK est le niveau inférieur : vous possédez la boucle, transformez n'importe quelle fonction en outil avec un décorateur @tool et connectez des serveurs MCP quand vous avez besoin d'outils externes.
  • Strands Shell est un shell compatible Bourne qui s'exécute dans votre propre processus, donnant à un agent grep, sed, jq et curl « without fork, exec, or a raw syscall », ce qui vous permet de déclarer précisément quels répertoires et identifiants il peut toucher.
  • Strands Evals est un SDK exclusivement Python avec plus de 25 évaluateurs intégrés pour noter un agent, diagnostiquer l'étape défaillante et simuler des conversations multi-tours avant la mise en production.
  • Strands Labs est la branche expérimentale, et son projet de robotique place plus de 70 robots derrière une seule interface pour un contrôle en langage naturel, un cas d'usage vraiment différent de celui des agents de code.

Il existe aussi une CLI strands (@strands-agents/cli) pour prototyper un agent depuis le terminal, le tout dans un monorepo harness-sdk après la restructuration de l'organisation autour du lancement.

Où le harness s'intègre, et où il ne s'intègre pas

Je veux être juste, car le harness est bon dans ce pour quoi il est fait. Si vous êtes développeur et construisez un agent sur mesure (un agent de recherche, une automatisation interne, un assistant de code) et voulez maîtriser la boucle, éviter l'enfermement chez un modèle et déployer sur votre propre infrastructure, le Strands harness est l'une des options les plus propres que j'aie vues. Il fonctionne partout où tourne un conteneur Linux, de votre portable à ECS.

L'agent Strands s'exécute entièrement dans votre propre environnement et appelle ses outils localement, tiré du blog AWS Strands
L'agent Strands s'exécute entièrement dans votre propre environnement et appelle ses outils localement, tiré du blog AWS Strands

Mais « vous déployez sur votre propre infrastructure » est aussi le revers de la médaille, et la remarque la plus tranchante de tout le fil de lancement l'a nommé :

Hacker News

"I'm more and more hesitant to use third party harnesses. It's so easy to take opencode or pi and build my own for exactly what I want that I'm seeing projects like this to be noisy and less valuable over time."

Le harness vous épargne le câblage, mais pas la responsabilité. C'est toujours à vous de choisir le modèle, de connecter les outils, d'héberger le conteneur, de surveiller la facture et d'entretenir le tout à mesure que les modèles et les API évoluent. Pour un développeur, c'est le métier et le plaisir. Pour un responsable du support ou des opérations qui veut simplement des tickets résolus ou des articles de blog rédigés, c'est un projet d'ingénierie complet entre lui et le résultat.

Un framework vous fait choisir un modèle, câbler les outils, déployer un conteneur et entretenir la boucle, tandis qu'un teammate eesel arrive en connaissant vos outils et vos documents et est opérationnel en quelques minutes
Un framework vous fait choisir un modèle, câbler les outils, déployer un conteneur et entretenir la boucle, tandis qu'un teammate eesel arrive en connaissant vos outils et vos documents et est opérationnel en quelques minutes

Cette séparation entre construire et embaucher est la façon honnête de décider. Si l'objectif est qu'un travail précis soit fait plutôt qu'un système construit, vous voulez le teammate, pas la boîte à outils.

Essayer eesel

La façon claire d'y penser : le Strands harness est l'infrastructure, et eesel est l'employé. AWS donne aux développeurs la boucle, les outils et le câblage de modèles pour assembler un agent. eesel AI est une plateforme de teammates IA où vous embauchez des teammates prêts à travailler pour des tâches précises, chacun arrivant avec les compétences, les intégrations et le contexte d'entreprise de son rôle. L'équipe actuelle comprend un teammate IA pour le helpdesk qui rejoint votre file de support existante et un rédacteur de blog IA qui fait des recherches et rédige des articles longs. Pas de boucle à câbler, pas de conteneur à exécuter : le teammate helpdesk s'entraîne sur vos anciens tickets et votre centre d'aide, et vous pouvez le simuler sur des tickets historiques avant qu'il ne réponde à un seul client.

Le tableau de bord eesel AI, où un teammate IA traite les tickets de support sur votre helpdesk connecté
Le tableau de bord eesel AI, où un teammate IA traite les tickets de support sur votre helpdesk connecté

Si le harness a attiré votre attention justement parce que vous aimez vivre dans un terminal, eesel a aussi une interface pour cela. La CLI eesel met le même teammate dans votre terminal : npx @eesel/cli init configure un agent, connecte un helpdesk, importe des connaissances et câble des automatisations sans ouvrir le tableau de bord. Ce n'est volontairement pas un produit séparé, donc tout ce que vous configurez dans la CLI apparaît dans le tableau de bord et inversement. Et comme chaque commande affiche du JSON, un agent de code comme Claude Code, Cursor ou Codex peut piloter toute la configuration d'un espace de travail pour vous, puis vous rendre le teammate en marche. C'est la même ergonomie agentique et scriptable qui rend le Strands harness séduisant, tournée vers un travail déjà fait pour vous.

Côté coût, eesel propose un prix mensuel fixe à partir de 299 $/mois pour 500 crédits (1 crédit par ticket ou chat) sans frais par utilisateur, de sorte que le prix suit le volume plutôt que le nombre de sièges occupés. Vous pouvez démarrer gratuitement avec 100 crédits, et la CLI peut même créer un espace de travail anonyme sans compte pour tester. Si votre véritable objectif est des tickets résolus ou des articles publiés plutôt qu'un framework à maintenir, c'est le chemin le plus court.

Questions fréquentes

Qu'est-ce que le Strands harness ?

Le Strands harness est un agent IA open source, entièrement assemblé, proposé par AWS, publié le 21 septembre 2026 sous licence Apache 2.0. Un seul import vous donne un agent avec des valeurs par défaut éprouvées pour les outils, la mémoire, les sessions et la gestion du contexte, et vous pouvez le brancher sur Bedrock, Anthropic, OpenAI, Google ou un modèle Ollama local. Il repose sur le SDK de plus bas niveau Strands Harness.

Le Strands harness est-il gratuit ?

Le harness lui-même est gratuit et open source (Apache 2.0). Vous payez toujours le fournisseur de modèle auquel vous le connectez, ainsi que le coût d'exécution du conteneur qui l'héberge. Si vous préférez un agent IA géré plutôt qu'un agent que vous hébergez vous-même, une option comme eesel AI propose un prix mensuel fixe à partir de 299 $/mois (500 crédits, 1 crédit par ticket) sans frais par utilisateur.

En quoi le Strands harness diffère-t-il de Claude Code ?

Claude Code est l'agent de code d'Anthropic, réglé pour les modèles d'Anthropic. Le Strands harness est agnostique au modèle : le même harness fonctionne avec n'importe quel grand fournisseur, vous n'êtes donc pas enfermé chez un seul laboratoire. Selon les benchmarks d'AWS, le harness a exécuté une tâche de code pour un coût inférieur de 77 % à Claude Code tout en obtenant un meilleur score, mais sur un seul benchmark.

Que signifie vraiment « 28 % de coût en tokens en moins » ?

C'est la moyenne sur six benchmarks, comparant le Strands harness à d'autres harness exécutant les mêmes modèles avec une précision comparable. Les économies viennent de la troncature des résultats d'outils volumineux, de la compaction du contexte lorsqu'il se remplit et de la mise en cache des parties réutilisées de chaque requête. C'est un chiffre officiel de Strands, mais c'est une affirmation issue de benchmarks, à considérer comme une indication.

Faut-il être développeur pour utiliser le Strands harness ?

Oui. Il est livré sous forme de paquets Python et TypeScript plus une CLI, et c'est à vous de l'installer, de le configurer et de le déployer. Si vous voulez un agent IA pour le service client ou pour le travail quotidien de l'entreprise sans écrire ni héberger de code, un teammate prêt à l'emploi convient mieux qu'un framework.

Share this article