C’est la question de conception la plus importante du sujet, et celle qu’on rate en répondant « agent » par enthousiasme.
Le critère unique
Connaissez-vous les étapes à l’avance ?
Si oui, écrivez-les. Un enchaînement où votre code appelle le modèle à des points précis — extraire, puis classer, puis rédiger — est moins cher, plus rapide, testable, débogable, et son coût est prévisible. La plupart de ce qu’on appelle « agent » dans les présentations est en réalité un enchaînement, et c’est très bien.
Si non — si le chemin dépend de ce que l’on découvre en chemin — alors la décision doit être déléguée au modèle, et c’est un agent.
Ce que coûte l’autonomie
- Le coût est variable et non borné a priori. Un enchaînement à trois appels coûte trois appels. Un agent peut en faire cinq ou vingt-cinq selon la difficulté du cas.
- La latence est imprévisible, ce qui complique tout engagement de service.
- Les tests sont plus difficiles : il n’y a plus une sortie à vérifier mais une trajectoire, et deux trajectoires différentes peuvent être toutes deux correctes.
- Les erreurs se composent. Une décision à 95 % de justesse répétée dix fois donne environ 60 % de succès sur la chaîne complète. Ce calcul mérite d’être fait à voix haute en entretien : il explique pourquoi les agents à longue trajectoire déçoivent.
- La surface d’attaque grandit avec chaque outil, surtout ceux qui écrivent.
Le choix n’est pas binaire, et le dire vaut mieux que de trancher.
- Un routeur : le modèle choisit une branche parmi trois, chaque branche étant un enchaînement fixe. On gagne la souplesse à l’entrée, on garde le déterminisme ensuite.
- Un agent borné : autonomie complète mais dans un périmètre étroit, avec trois outils en lecture seule et cinq tours au maximum.
- Un enchaînement avec une étape agentique : tout est fixe sauf une phase de recherche, où l’exploration est légitimement imprévisible.
- Un agent qui propose, un humain qui valide avant toute action irréversible.
Je commence toujours par l’enchaînement le plus simple qui pourrait marcher, je mesure là où il échoue, et je n’introduis de l’autonomie qu’à l’endroit précis où l’échec vient d’un chemin imprévisible. L’inverse — partir d’un agent libre et resserrer ensuite — conduit à un système dont on ne sait plus quelle part de l’autonomie était nécessaire.