Réponse rapide (TL;DR)
- Un harness IA est le runtime et l’échafaudage qui entourent un modèle. Il couvre les prompts et le contexte, l’accès aux outils, la mémoire et l’état, le contrôle de la boucle, les garde-fous, ainsi que les logs et les évaluations. C’est ce qui transforme un modèle brut en système fonctionnel.
- Un agent IA est un système où le modèle décide lui-même de sa prochaine étape dans une boucle. Il observe sa situation, choisit une action (souvent un appel d’outil), voit le résultat, et recommence jusqu’à ce que l’objectif soit atteint ou qu’on l’arrête.
- L’orchestration IA est la couche de coordination qui décide ce qui s’exécute, dans quel ordre et par qui. Elle couvre le séquencement, le routage, le travail en parallèle, les passages de relais, les validations humaines et la gestion des erreurs, entre des agents ou de simples appels LLM.
En résumé : le harness est l’environnement dans lequel le modèle s’exécute, l’agent est un comportement (des décisions pilotées par le modèle dans une boucle), et l’orchestration est la façon de coordonner plusieurs éléments.
Introduction
En tant que product engineer travaillant surtout avec React, Next.js, Laravel et TypeScript, et de plus en plus avec les outils LLM, je vois sans cesse ces trois termes employés comme s’ils voulaient dire la même chose. Ce n’est pas le cas. Les confondre mène à de mauvaises décisions d’architecture, le plus souvent en construisant un « agent » là où un simple pipeline aurait suffi.
Cet article explique chaque terme, la façon dont ils s’articulent, et comment choisir le bon niveau de complexité.
Une réserve d’abord : l’industrie n’a pas standardisé ces termes. Les définitions ci-dessous reflètent l’usage le plus courant en pratique, et ce sont celles que je trouve les plus utiles pour construire.
Qu’est-ce qu’un harness IA ?
Un harness IA est la couche logicielle qui enveloppe un modèle de langage et contrôle son exécution : le contexte qu’il voit, les outils qu’il peut appeler, l’état qu’il conserve, le moment où il s’arrête, et ce qu’il n’a pas le droit de faire. Le modèle génère du texte. Le harness rend ce résultat utile et sûr.
Un harness typique gère :
- Prompts et contexte : instructions système, documents récupérés, historique de conversation, et réduction du contexte pour tenir dans la fenêtre.
- Outils : définir les fonctions que le modèle peut appeler (recherche, requêtes en base, modifications de fichiers, API), les exécuter, et réinjecter les résultats.
- Mémoire et état : ce qui persiste entre les étapes ou les sessions (brouillons, résumés, état de la tâche).
- Contrôle de la boucle : nombre maximal d’itérations, délais d’expiration, budgets de tokens et de coûts, conditions d’arrêt.
- Garde-fous : validation des entrées/sorties, contrôle des permissions, application de schémas, actions bloquées.
- Observabilité et évaluations : journaliser chaque prompt, appel d’outil et résultat, avec des tests qui vérifient que le système se comporte toujours correctement après chaque changement.
Un assistant de code qui lit votre dépôt, lance les tests et modifie des fichiers est un bon modèle mental. Le modèle n’en est qu’une partie. L’accès aux fichiers, le bac à sable des commandes, les demandes de permission et la gestion du contexte, tout cela est du harness.
Remarque : « harness » apparaît aussi dans « evaluation harness », un cadre pour exécuter des benchmarks sur un modèle. C’est lié mais plus restreint. Dans cet article, harness désigne l’ensemble du runtime autour du modèle.
Qu’est-ce qu’un agent IA ?
Un agent IA est un système où le modèle de langage décide lui-même de sa prochaine action dans une boucle, en vue d’atteindre un objectif : il examine l’état actuel, choisit une action, l’exécute via des outils, observe le résultat, et continue jusqu’à terminer ou jusqu’à ce qu’on l’arrête. Le mot clé est décide. Le flux de contrôle n’est pas entièrement écrit à l’avance par vous.
La boucle d’agent de base :
objectif → [observer l’état] → [le modèle décide de l’action suivante] → [exécuter l’outil] → [observer le résultat] → répéter ou terminer
Ce qui fait d’un système un agent, c’est qui contrôle le chemin. Si votre code dit « étape 1 : classer, étape 2 : résumer, étape 3 : enregistrer », c’est un workflow qui utilise un LLM. Si le modèle choisit entre chercher, lire un fichier, poser une question de clarification ou terminer, en fonction de ce qu’il vient de voir, c’est un agent.
Notez qu’un agent a toujours besoin d’un harness. La boucle, les outils, les conditions d’arrêt et les garde-fous sont tous des éléments du harness. « Agent » décrit donc un schéma de comportement, et le harness est l’infrastructure qui rend ce comportement possible.
Qu’est-ce que l’orchestration IA ?
L’orchestration IA est la couche de coordination qui gère la façon dont plusieurs étapes IA, modèles, agents, outils et humains travaillent ensemble : séquencement, routage, exécution en parallèle, transmission du contexte entre les étapes, validations humaines, et reprise après échec.
L’orchestration couvre :
- Séquencement : l’étape B s’exécute après l’étape A, en utilisant sa sortie.
- Routage : envoyer une requête vers le bon modèle, le bon prompt ou le bon agent selon son type.
- Parallélisme : exécuter des tâches indépendantes en même temps et fusionner les résultats.
- Passages de relais : transmettre une tâche et son contexte d’un composant à un autre.
- Humain dans la boucle : marquer une pause pour validation avant les actions risquées ou irréversibles.
- Gestion des erreurs : nouvelles tentatives, bascule vers un autre modèle, délais d’expiration, files de messages en échec.
Un point important souvent oublié : l’orchestration n’a pas besoin d’agents. Vous pouvez orchestrer cinq simples appels LLM ponctuels dans un pipeline fixe. C’est toujours de l’orchestration. Elle peut aussi reposer sur du code déterministe (une file d’attente, une machine à états, un moteur de workflow) ou sur un modèle jouant le rôle de « planificateur » qui distribue les tâches aux autres.
Comment le harness, l’agent et l’orchestration s’articulent
Le harness est la couche de base, les agents sont une façon de l’utiliser, et l’orchestration se place au-dessus pour coordonner plusieurs unités. Ce sont des couches, pas des options concurrentes.
Orchestration
Agent A
Agent B
Appel LLM simple
Harness
Modèle(s) de langage
Dans un petit projet, les trois peuvent vivre dans la même base de code et les frontières s’estompent. C’est très bien. Cette distinction sert à penser clairement, pas à vous obliger à créer trois services séparés.
Tableau comparatif : harness, agent et orchestration
| Critère | Harness IA | Agent IA | Orchestration IA |
|---|---|---|---|
| Ce que c’est | Runtime/échafaudage autour d’un modèle | Poursuite d’un objectif pilotée par le modèle dans une boucle | Couche de coordination entre composants |
| Question centrale | « Comment le modèle s’exécute-t-il de façon sûre et utile ? » | « Que dois-je faire ensuite pour atteindre l’objectif ? » | « Qui fait quoi, dans quel ordre, et que se passe-t-il en cas d’échec ? » |
| Qui contrôle le flux | Votre code (fixe limites et règles) | Le modèle (dans les limites du harness) | Votre code, un moteur de workflow, ou un modèle planificateur |
| Éléments clés | Prompts, contexte, outils, mémoire, garde-fous, logs, évaluations | Objectif, boucle, usage d’outils, condition d’arrêt | Routage, séquencement, parallélisme, relais, validations, reprises |
| A besoin des autres ? | Non, un simple appel LLM s’exécute déjà dans un harness minimal | Oui, a toujours besoin d’un harness | A besoin de composants à coordonner ; ce ne sont pas forcément des agents |
| Exemple | Un backend de chat avec RAG, appel d’outils et validation des sorties | Un assistant de code qui explore un dépôt et corrige un test en échec | Un pipeline qui classe, route et escalade des tickets de support |
Agent IA, système multi-agents et agent autonome
Un agent est une seule boucle pilotée par un modèle. Un système multi-agents réunit plusieurs agents qui travaillent ensemble, ce qui nécessite de l’orchestration. « Autonome » décrit la quantité de travail qu’un agent accomplit sans validation humaine : c’est donc une propriété qui traverse les deux, pas une architecture à part.
| Critère | Agent IA | Système multi-agents | Agent autonome |
|---|---|---|---|
| Ce que cela décrit | Une entité unique qui exécute sa propre boucle penser-agir-observer | Plusieurs agents aux rôles, prompts ou outils distincts, coordonnés ensemble | Le degré d’indépendance : combien peu de validation humaine il requiert |
| Type de concept | Unité d’architecture | Schéma d’architecture | Propriété sur un spectre |
| Lien avec l’orchestration | Peut ne pas en avoir besoin | En a besoin (superviseur, relais, état partagé) | Façonne l’orchestration (moins de points de validation) |
| Exemple | Un agent de recherche avec des outils de recherche et de lecture | Un agent planificateur confie des tâches à un chercheur et à un rédacteur, et un relecteur vérifie le résultat | L’un ou l’autre, exécuté de bout en bout sans pause pour validation |
Quelques nuances :
- Le multi-agents n’est pas automatiquement meilleur. Chaque agent supplémentaire ajoute des relais, plus de contexte à transmettre, plus de coûts et plus de points de défaillance. Divisez en plusieurs agents quand les rôles exigent vraiment des outils, des permissions ou un contexte différents. Ne divisez pas simplement parce que cela fait joli sur un schéma.
- L’autonomie est un curseur, pas une catégorie. Un agent unique peut être très autonome (tourne la nuit, ouvre des PR), et un système multi-agents peut être étroitement supervisé (un humain valide chaque relais). Une échelle utile : suggère seulement → agit avec validation → agit seul avec des actions réversibles → agit entièrement seul.
- Plus d’autonomie, c’est un harness qui doit porter plus de poids : garde-fous plus stricts, meilleure journalisation et évaluations solides.
Exemples pratiques
Ce sont des exemples génériques pour rendre les concepts concrets. Ils ne décrivent pas de travaux précis pour des clients.
Exemple 1 : tri de tickets de support (orchestration, aucun agent nécessaire)
- Un appel LLM classe le ticket (facturation, bug, demande de fonctionnalité, urgent).
- Le code l’oriente vers une file selon l’étiquette.
- Un second appel LLM rédige une réponse suggérée à partir d’articles du centre d’aide récupérés.
- Un agent humain la relit et l’envoie.
Ce sont des appels LLM orchestrés dans un harness (avec récupération de documents, validation de schéma de sortie et journalisation). Il n’y a pas d’agent, car le chemin est connu à l’avance. C’est plus prévisible, moins coûteux et plus facile à tester.
Exemple 2 : revue de code automatisée (agent unique + humain dans la boucle)
Le harness donne au modèle un accès en lecture au diff et au dépôt, ainsi que des outils pour lancer le linter et les tests. L’agent décide quels fichiers inspecter, exécute les tests si nécessaire et rédige les commentaires de revue. L’orchestration ajoute une règle : les commentaires sont publiés comme suggestions, et un développeur approuve toute modification suggérée avant qu’elle soit appliquée.
Un agent est adapté ici car les fichiers qui comptent dépendent de ce que le modèle découvre en chemin.
Exemple 3 : pipeline de contenu/recherche (multi-agents, orchestré)
Un planificateur découpe un sujet en questions. Des agents de recherche s’exécutent en parallèle, chacun cherchant et résumant des sources. Une étape de rédaction produit le texte, une étape de relecture vérifie les affirmations par rapport aux sources collectées, et un éditeur humain valide avant toute publication.
C’est ici que l’orchestration compte le plus : travail en parallèle, relais, nouvelles tentatives quand une source échoue, et un point de contrôle humain final.
Quand un agent IA est-il superflu ?
Un agent est superflu quand vous pouvez écrire les étapes à l’avance. Si la tâche suit un chemin prévisible, un workflow fixe d’appels LLM est généralement moins cher, plus rapide, plus simple à déboguer et plus facile à évaluer qu’un agent.
Utilisez un simple pipeline/workflow quand :
- Les étapes sont connues et stables (extraire → classer → formater).
- Vous avez besoin d’une sortie cohérente et auditable.
- La latence et le coût comptent plus que la flexibilité.
Utilisez un agent quand :
- Le nombre et l’ordre des étapes dépendent de ce qui est découvert en chemin.
- La tâche implique d’explorer (bases de code, documents, web ouvert).
- Une personne raisonnable ne pourrait pas écrire l’organigramme complet à l’avance.
Ma règle empirique : commencez par la version la plus simple qui fonctionne, et n’ajoutez des boucles d’agent que là où un chemin fixe ne cesse de casser. C’est le même principe que j’applique à toute décision d’architecture, comme dans ma comparaison Laravel + Inertia.js vs Next.js : choisir l’option la moins complexe qui répond aux besoins réels.
FAQ
Un harness IA est-il la même chose qu’un framework d’agents ?
Pas tout à fait. Un framework d’agents est une bibliothèque qui aide à construire un harness et des boucles d’agent. Le harness est le runtime réel utilisé par votre système, que vous le construisiez avec un framework ou avec votre propre code.
Peut-on faire de l’orchestration sans agents IA ?
Oui. L’orchestration peut coordonner de simples appels LLM ponctuels, du code déterministe et des étapes humaines. De nombreuses fonctionnalités IA en production sont des workflows orchestrés sans aucun agent.
Chaque agent IA a-t-il besoin d’un harness ?
Oui. Un agent a besoin de quelque chose pour exécuter sa boucle, effectuer les appels d’outils, gérer le contexte, appliquer des limites et journaliser ce qui s’est passé. Ce quelque chose, c’est le harness, même s’il ne fait que quelques centaines de lignes de code.
Un système multi-agents est-il la même chose que l’orchestration IA ?
Non. Un système multi-agents est un ensemble d’agents coordonnés. L’orchestration est la coordination elle-même. Les systèmes multi-agents ont besoin d’orchestration, mais l’orchestration n’a pas besoin de plusieurs agents.
Qu’est-ce qui rend un agent « autonome » ?
La quantité de travail qu’il peut accomplir sans validation humaine. L’autonomie est un spectre, de la simple suggestion à l’action entièrement indépendante, et elle peut s’appliquer à un agent unique comme à tout un système multi-agents.
Conclusion : choisir le bon niveau de complexité
Le harness est la fondation dont tout système LLM a besoin. Les agents sont un schéma où l’on laisse le modèle choisir son propre chemin. L’orchestration est la façon de coordonner plusieurs éléments, avec ou sans agents. Traiter ces trois points comme des décisions distinctes permet de construire des systèmes aussi simples que possible et aussi complexes que nécessaire.
Checklist avant de construire :
- Un seul appel LLM peut-il suffire ? Utilisez un appel unique dans un harness minimal (prompt, validation, journalisation).
- Les étapes sont-elles connues à l’avance ? Utilisez un workflow orchestré d’appels LLM. Pas d’agent.
- Le chemin dépend-il de ce qui est découvert ? Utilisez un agent unique avec un jeu d’outils bien défini et des limites de boucle.
- Les sous-tâches exigent-elles des outils, permissions ou contextes différents ? Envisagez le multi-agents, avec une orchestration et des relais explicites.
- Quel niveau d’autonomie est acceptable ? Décidez où les humains valident, surtout pour les actions irréversibles.
- Pouvez-vous l’observer et l’évaluer ? Si vous ne pouvez ni le journaliser ni le tester, vous n’êtes pas prêt à le rendre plus autonome.
Besoin d’aide pour ajouter des fonctionnalités IA à un produit web, ou pour décider si vous avez vraiment besoin d’un agent ? Chez Dywan Dev, je construis des applications web fullstack avec l’architecture la plus simple adaptée au problème. Parlons-en.
