Modèles mentaux

”Focuser” l’agent

Pour qu’un agent soit réellement performant et prévisible, il ne faut pas le laisser dériver dans une liberté totale, mais au contraire bien le “focuser”. Ce terme de ‘focuser” décrit ce cadrage strict de l’agent : lui donner le bon contexte pour qu’il sache exactement « quoi faire ? », « comment le faire ? » et « comment vérifier que le résultat est correct ? ». Cela lui évite d’inventer des solutions hasardeuses, on évite ainsi le fameux « vibe coding » (coder à l’intuition sans garde-fou).

Pour réussir ce “Focus”, il faut articuler trois choses :

La bonne granularité des ces trois éléments est très importante. Il faut que la tâche ne soit ni trop large ni trop réduite, si trop large il faut donc préalablement décomposer la tâche (et utiliser les capacités de Plan de l’agent afin de faire cette décomposition, c.f. la section suivante sur les Workflows).

Inferential vs Computational

Toute tâche confiée à une machine relève dorénavant de l’un des deux régimes suivants :

Le bon réflexe consiste à encadrer la part inferential par des étapes computational en amont et en aval : préparer le contexte, valider la sortie, transformer le résultat. Cette discipline réduit la consommation de tokens et stabilise les comportements, en particulier sur les chaînes exécutées fréquemment.

page1-inf-vs-comp.png

Inferential vs Computational

L’agent peut d’ailleurs servir à écrire lui-même la partie computational. Et lorsque le programme déterministe échoue, l’agent reprend la main pour l’analyser et le corriger : la boucle d’amélioration s’installe naturellement entre les deux régimes.

Workflows Humain et Workflows Agent

Il faut distinguer deux types de workflow :

Un LLM comme une fonction sans états

Considérer le LLM comme une fonction sans états. Considérez votre agent comme une fonction, malheureusement non pure car non déterministe : pour une entrée X (le contexte + l’instruction), il produit une sortie Y similaire mais non identique. Il n’y a pas de “mémoire interne” qui persiste entre deux appels. Les interactions avec un LLM se font par concaténation de texte car celui est complétement stateless, il ne se souvient pas des interactions précédentes (il y a bien un cache mais il est présent pour des raisons d’efficacité sur l’ensemble du texte déjà soumis au LLM). Tous les mécanismes de context engineering (permanent, à la demande, conversationnel, etc.) sont finalement un moyen de structurer cette conconténation de text soumis à l’agent. Pour ceux que cela intéresse le non-déterminisme des LLMs peut être corrigé.

Pourquoi ce modèle mental nous semble important :