Construisons ton premier agent IA

Nous écrivons l'agent le plus simple qui fonctionne vraiment - sans magie, sans frameworks.
Sur cette page
  1. Imagine un agent comme un enfant
  2. Tâche pour l'agent
  3. Code : agent sans LLM
  4. Ce qui se passe ici
  5. Modèle vs Agent
  6. Pourquoi c'est déjà un agent, et pas juste une fonction ?
  7. Et si on branche une vraie LLM ?
  8. En bref
  9. FAQ
  10. Et ensuite
  11. Tu veux l'exécuter toi-même ?

Jusqu'ici, nous avons parlé des agents comme d'un système qui :

  • a un objectif
  • essaie d'agir
  • vérifie le résultat
  • et essaie encore si ça ne marche pas

Mais ça sonne encore comme de la théorie.

Alors écrivons maintenant l'agent le plus simple qui fonctionne vraiment.

Sans frameworks. Sans mémoire. Sans logique complexe.

Juste une boucle.


Imagine un agent comme un enfant

Construisons ton premier agent IA

Un enfant veut ouvrir une porte.

Il :

  • essaie la poignée -> ça ne s'ouvre pas
  • essaie plus fort -> ça ne marche pas
  • essaie encore -> ouverte !

Un agent fonctionne pareil. Il ne "pense" pas au sens humain.

Il fait simplement :

-> Essaye
-> Regarde ce qui s'est passé
-> Change l'action
-> Réessaie


Tâche pour l'agent

Donnons à l'agent une tâche simple :

Écrire un nombre supérieur à 10

Mais faisons-le de façon maligne. Au lieu du modèle, on commence avec random pour voir la mécanique sans bruit inutile.

Parfois l'agent obtient 3, parfois 7, parfois 15. Il doit faire la différence et soit s'arrêter, soit réessayer.


Code : agent sans LLM

PYTHON
import random

goal = 10
max_steps = 5

for step in range(max_steps):
    print(f"\n🤖 Step {step + 1}: Agent is trying...")

    # Le "modèle" génère une réponse
    number = random.randint(1, 20)
    print(f"💬 Generated: {number}")

    if number > goal:
        print(f"✅ Goal reached! {number} > {goal}")
        break
    else:
        print(f"❌ Not enough. {number} ≤ {goal}. Trying again...")
else:
    print("\n⚠️ Max steps reached without success")

Lance-le plusieurs fois. Regarde comment l'agent décide seul de continuer ou de s'arrêter.


Ce qui se passe ici

  1. L'agent reçoit un objectif - trouver un nombre > 10
  2. Essaie - "génère" une réponse
  3. Vérifie - est-ce que l'objectif est atteint ?
  4. Si non - il réessaie (maximum 5 fois)
  5. Si oui - il s'arrête

C'est toute la boucle :

Diagram

Modèle vs Agent

ModèleAgent
Génère une réponse
Vérifie le résultat
Décide quoi faire ensuite

Le modèle est responsable de Act.
L'agent est responsable de Check -> Retry -> Stop.


Pourquoi c'est déjà un agent, et pas juste une fonction ?

Une fonction ferait une seule tentative, puis c'est tout.

Un agent :

  • a un objectif
  • vérifie le résultat
  • peut agir à nouveau sans ta participation

Tu donnes la tâche, et il travaille tout seul. Même s'il se trompe.


Et si on branche une vraie LLM ?

Remplacer random.randint() par un appel AI API, c'est un seul changement.

La boucle d'agent reste exactement la même.

C'est tout le point : un agent, ce n'est pas un "modèle intelligent". C'est la structure : objectif -> action -> vérification -> répétition.


En bref

En bref

Tu viens de comprendre la boucle de base d'un agent :

  • Objectif - trouver un nombre > 10
  • Act - génère une réponse
  • Check - objectif atteint ?
  • Retry - si nécessaire
  • Stop - quand l'objectif est atteint ou les étapes épuisées

C'est le fondement. Tout le reste est une complexification de ce schéma.


FAQ

Q : Pourquoi max_steps = 5 ici, et pas une boucle infinie ?
A : Un agent qui ne s'arrête pas tout seul est dangereux. Il peut dépenser de l'argent en appels API, rester bloqué dans une boucle, ou tourner indéfiniment si l'objectif est inatteignable. max_steps est une protection.

Q : Pourquoi commencer avec random au lieu d'utiliser une LLM tout de suite ?
A : Pour voir la mécanique de l'agent sans bruit inutile. Le modèle n'est qu'un détail. La boucle est plus importante.

Q : Pourquoi l'agent ne sait pas que le nombre est "mauvais" avant la vérification ?
A : Le modèle ne fait que générer. Il ne connaît pas l'objectif. L'objectif est la responsabilité de l'agent, pas du modèle.


Et ensuite

Tu as remarqué max_steps = 5 ?

Ce n'est pas un hasard. Un agent qui ne s'arrête pas tout seul peut :

  • tourner à l'infini
  • dépenser de l'argent en appels API
  • rester bloqué dans une boucle si l'objectif est inatteignable

C'est pour cela que chaque agent doit avoir des limites.

-> Lire la suite : Quand un agent a besoin de limites


Tu veux l'exécuter toi-même ?

Si tu veux voir une implémentation complète avec une vraie LLM, découpée en modules et prête à lancer, elle est ici :

-> Premier agent IA - Python (implémentation complète)

⏱️ 5 min de lectureMis à jour Mars, 2026Difficulté: ★☆☆
Suite pratique

Exemples d’implémentation du patron

Passe à l’implémentation avec des projets d’exemple.

Intégré : contrôle en productionOnceOnly
Ajoutez des garde-fous aux agents tool-calling
Livrez ce pattern avec de la gouvernance :
  • Budgets (steps / plafonds de coût)
  • Permissions outils (allowlist / blocklist)
  • Kill switch & arrêt incident
  • Idempotence & déduplication
  • Audit logs & traçabilité
Mention intégrée : OnceOnly est une couche de contrôle pour des systèmes d’agents en prod.
Auteur

Cette documentation est organisée et maintenue par des ingénieurs qui déploient des agents IA en production.

Le contenu est assisté par l’IA, avec une responsabilité éditoriale humaine quant à l’exactitude, la clarté et la pertinence en production.

Les patterns et recommandations s’appuient sur des post-mortems, des modes de défaillance et des incidents opérationnels dans des systèmes déployés, notamment lors du développement et de l’exploitation d’une infrastructure de gouvernance pour les agents chez OnceOnly.