Aller au contenu
index

De LLM à agent

1. Principe d'un agent IA

  • Un agent = LLM + outils + boucle d'exécution
  • Le LLM seul prédit du texte. Il n'exécute aucune action
  • Le programme fournit des outils : recherche, fichiers, calcul, BDD, API, etc
  • Le LLM demande l'utilisation d'un outil
  • Le programme exécute l'outil et renvoie le résultat au LLM

Raisonner → Agir → Observer → Raisonner → Agir → Observer → ... → Terminer

Ce fonctionnement est notamment formalisé par ReAct (2022).

2. La boucle agentique

À chaque tour :

  1. Le modèle analyse l'état actuel.
  2. Il choisit une action.
  3. Il demande l'appel d'un outil.
  4. Le programme exécute l'action.
  5. Le résultat est ajouté au contexte.
  6. Le modèle décide de la suite.

La tâche complexe est ainsi découpée en plusieurs actions simples.

graph TD
  START([Utilisateur<br/>Donne une tâche]) --> LLM
  LLM{{LLM<br/>Raisonne}} --> DECISION
  DECISION{Action nécessaire ?} -->|Non| FINAL
  DECISION -->|Oui| TOOL
  TOOL[Appel d'un outil] --> EXEC
  EXEC[Exécution<br/>par le programme] --> OBS
  OBS[Observation<br/>Résultat de l'outil] --> CONTEXT
  CONTEXT[Historique + résultats] --> LLM

3. Mémoire

  • Le LLM n'a pas de mémoire persistante entre deux appels.
  • Sa mémoire de travail est le contexte fourni à chaque tour.
  • L'historique doit donc contenir :
    • la tâche
    • les actions
    • les résultats
    • les observations
  • Le contexte est limité par une fenêtre de taille fixe.
  • Une tâche longue peut donc finir par saturer le contexte.

4. Arrêt

Deux mécanismes principaux :

  • Arrêt naturel : le modèle produit une réponse finale sans demander d'outil.
  • Limite d'itérations : le programme arrête la boucle après un nombre maximal de tours.

La limite protège notamment contre les boucles infinies.

5. Appels d'outils

Le modèle doit produire un format exploitable par le programme :

  • nom de l'outil
  • arguments
  • format structuré, généralement JSON

Les mécanismes de Function Calling / Tool Calling permettent de standardiser ces appels.

6. Échecs fréquents

Appel invalide

  • Outil inexistant.
  • Mauvais nom.
  • Arguments incorrects ou incomplets.

Réponse :

  • Valider l'appel avant exécution.
  • Retourner l'erreur au modèle.
  • Lui permettre de corriger au tour suivant.

Boucle

  • Répétition d'une même action.
  • Alternance entre plusieurs étapes sans progression.

Protection :

  • Limite d'itérations.

Fausse piste

  • Une mauvaise hypothèse est conservée.
  • Les actions suivantes s'appuient dessus.
  • L'erreur peut contaminer toute la boucle.

Protections :

  • Validation des actions.
  • Intervention humaine pour les actions sensibles.
  • Découpage en sous-agents pour isoler les contextes.

7. Actions à conséquences

Pour les actions sensibles :

Agent propose → Humain valide → Action exécutée

L'agent ne doit pas nécessairement exécuter automatiquement une action irréversible ou ayant des conséquences importantes.

8. Architecture minimale

Un agent fiable repose sur :

  • LLM
  • Outils
  • Boucle raisonner / agir / observer
  • Mémoire de contexte
  • Appels structurés
  • Conditions d'arrêt
  • Validation des actions
  • Limites d'itérations
  • Humain dans la boucle si nécessaire
  • Sous-agents pour les tâches complexes