---
title: "Un agent IA ne fait que deux choses"
description: "À chaque étape, un agent vous envoie un message ou appelle un outil. C’est tout le mécanisme. Une fois qu’on l’a compris, Claude Code, ChatGPT et un agent n8n fonctionnent de la même manière, avec des outils différents. Et on sait où chercher quand l’un d’eux se trompe."
date: 2026-10-10
language: fr
canonical: https://gduv.club/fr/articles/ai-agent-two-things
source: gduv.club
---
On parle des agents IA comme d’une nouvelle forme d’intelligence qui agit de manière autonome. Quand je les explique, pendant un atelier ou à un collègue, je commence par une idée beaucoup plus simple.

À chaque étape, un agent fait **l’une de ces deux choses** : il vous écrit un message ou appelle un outil.

C’est tout. Le reste, c’est le logiciel qui l’entoure.

## La boucle

Vous envoyez une demande. Le modèle la lit, ainsi que tout le contexte qu’on lui a fourni, puis décide de la suite. Il peut vous répondre ou demander l’appel d’un outil : faire une recherche sur le Web, lire un fichier, consulter vos e-mails, créer un contact dans votre CRM.

**Le modèle n’exécute pas lui-même l’outil**. Il formule une petite requête (« appelle cet outil avec ces données »), puis le logiciel qui l’entoure l’exécute. Le résultat lui est renvoyé et ajouté au contexte qu’il consulte. Le modèle décide alors de la suite : appeler un autre outil ou vous répondre.

La boucle se termine lorsque le modèle écrit un message sans appel d’outil. C’est sa réponse finale.

**À chaque étape, le modèle fait l’une de ces deux choses**

1. **Écrire un message**: Pour vous : un point d’avancement, une question ou la réponse
2. **Appeler un outil**: Une requête exécutée par l’application : lire un fichier, faire une recherche, créer un contact

L’application exécute l’outil → le résultat revient → le modèle décide à nouveau

Un message sans appel d’outil = terminé

_Une seule demande peut donner lieu à dix étapes, mais chacune correspond à l’une de ces deux actions. Les outils varient d’un produit à l’autre. La boucle, elle, ne change pas._

On pourrait même dire qu’il n’y a qu’une seule action : vous écrire est un outil comme les autres, appelé « envoyer un message à l’utilisateur ». Je trouve plus facile d’en expliquer deux, car le message est ce que vous voyez.

## Ce que le modèle envoie réellement

En coulisses, chaque étape prend la forme d’une petite réponse structurée. Voici une version simplifiée, sans les éléments qui varient selon les fournisseurs :

```json
{
  "message": "D’accord, je vais chercher ses dernières publications.",
  "tool_call": {
    "name": "search_profile",
    "input": { "name": "Jane Example" }
  }
}
```

Une réponse peut contenir à la fois un bref message d’avancement et un appel d’outil. C’est le « D’accord, je vérifie » que vous voyez dans la conversation pendant que l’agent poursuit son travail. La réponse finale contient un message sans appel d’outil. C’est ainsi que le logiciel sait qu’il doit s’arrêter et vous redonner la main.

## Tout le déroulement, raconté

Voici un exemple réaliste de requête, du début à la fin : « Trouve les 5 dernières publications LinkedIn de Jane Example et enregistre-les dans un fichier. » Le modèle, c’est le robot. Il ne peut qu’écrire. Chaque appel d’outil est un ticket qu’il remet à l’application, représentée ici par un coursier, qui effectue la tâche et lui rapporte le résultat.

- You at your desk ask: find Jane Example's 5 latest LinkedIn posts and save them to a file. The model, a blue robot, and the harness, a runner in a red cap, are waiting.
- The model thinks: two moves, which one? 1, write a message: text for you, nothing runs. 2, call a tool: a request for the harness to run.
- Step 1. The model says "Sure, let me find her profile first" and hands a red tool-call ticket, search_profile with the name Jane Example, to the runner. It writes the request; it cannot run it.
- Step 2. The runner dashes to the LinkedIn shop and brings back a result slip: her profile URL and her headline, Head of Ops.
- Steps 3 and 4. The model reads the result and decides again: another ticket, get_posts with a limit of 5, newest first. The runner hauls back five posts.
- Steps 5 and 6. A third ticket, write_file posts.md. The runner files it in the cabinet and comes back with a tiny result: ok, true.
- Step 7. A message with no tool call: "Done. I saved her 5 latest posts in posts.md." You say thanks; the runner says: no ticket, break time. The loop ends.

_Trois appels d’outils et deux messages. Le robot ne quitte jamais son bureau : il rédige des requêtes, et le coursier fait le travail._

## Vous pouvez observer le processus dans n8n

Avant Claude Code, n8n était l’un des premiers outils à faciliter la création d’agents. C’est encore le meilleur endroit pour observer clairement la boucle, car chaque étape y est visible.

Voici à peu près l’agent le plus simple qu’on puisse créer dans n8n : un déclencheur de chat, un nœud AI Agent, un modèle, une mémoire et deux outils, une calculatrice et Wikipédia.

**Un agent minimal dans n8n**

**À la réception d’un message de chat** (Déclencheur) → **AI Agent** (Décide : répondre ou appeler un outil, Chat Model: Un modèle; Memory: Mémoire simple; Tool: Calculatrice; Tool: Wikipédia)

_Le modèle et la mémoire accompagnent l’agent. Les deux outils sont les seules choses qu’il peut réellement faire._

Je lui ai demandé quelle était la population totale de la France et de l’Allemagne. Il n’est pas sûr des chiffres, alors il ne les invente pas. Voici le déroulement, étape par étape, tel que n8n l’enregistre :

1. **Charger la mémoire**. Premier message de la conversation, la mémoire est donc encore vide
2. **Appeler Wikipédia : France**. Appel de l’outil, puis retour du résumé de la page
3. **Appeler Wikipédia : Allemagne**. Même outil, deuxième appel
4. **Appeler la calculatrice**. Avec les deux chiffres qu’il vient de lire
5. **Rédiger la réponse**. Un message sans appel d’outil : la boucle se termine

Quatre appels d’outils et un message. Dans n8n, vous pouvez cliquer sur chacun d’eux pour voir exactement les données envoyées et le résultat obtenu, ainsi que les tokens et le temps d’exécution. C’est cette visibilité qui me manque le plus quand je passe à des agents plus complexes. C’est aussi le sujet de [la curiosité à propos de ce qu’a fait votre agent](/articles/curiosity-with-ai-agents).

## Claude Code, même principe, meilleurs outils

Claude Code, Codex dans l’application ChatGPT et OpenCode suivent exactement cette boucle. Ce qui change, c’est la liste des outils. Ils incluent ceux qui comptent le plus pour travailler sur votre ordinateur : lire un fichier, rechercher dans des fichiers, modifier un fichier, en créer un et exécuter une commande dans le terminal. La plupart proposent aussi la recherche sur le Web, et vous pouvez ajouter vos propres outils avec des connecteurs.

**C’est le terminal qui change tout**. Depuis un terminal, un agent peut faire presque tout ce que votre ordinateur peut faire, sans qu’il faille un outil dédié pour chaque tâche. Et les modèles s’en sortent très bien, parce que les commandes et les scripts sont du code, et que le code est leur domaine de prédilection.

Je le constate aussi chez Softr. Quand nous demandons à un agent d’assembler quelque chose à l’aide de nombreux outils spécifiques, il lui faut beaucoup d’appels et il se trompe souvent. Quand nous lui demandons d’écrire un peu de JavaScript pour faire la même chose, il y arrive souvent du premier coup.

C’est une grande partie de la raison pour laquelle je conseille de travailler dans des fichiers. Vous placez ainsi votre travail **là où l’agent est le plus performant**.

## Pourquoi c’est utile à savoir

Ça peut sembler anecdotique. En pratique, cela change votre façon de réagir quand quelque chose ne va pas.

Quand un agent vous donne une mauvaise réponse, il n’y a que quelques causes possibles : il a appelé le mauvais outil, appelé le bon outil avec des données incorrectes, reçu un résultat incomplet de l’outil ou mal interprété un résultat correct. Vous pouvez vérifier chacune de ces étapes. Lui demander de « faire plus d’efforts » ne permet d’en vérifier aucune.

Cela vous indique aussi ce qu’un agent ne peut pas faire. Si aucun outil ne permet de supprimer une page dans votre Notion, **aucun prompt ne pourra lui faire supprimer une page**. Il ne peut choisir que parmi les options qui lui ont été fournies.

Les applications d’agent affichent ces éléments, à condition de savoir où regarder. Les appels d’outils sont les lignes qui se distinguent des messages, et vous pouvez ouvrir chacune d’elles.

- **You:** Find Jane Example’s 5 latest LinkedIn posts and save them to a file.
- **Agent:** D’accord, je vais d’abord trouver son profil. [1]
- **Tool call:** `search_profile` (name: "Jane Example") [2]
- **Tool call:** `get_posts` (limit: 5, sort: newest), input `{ "profile_url": "linkedin.com/in/jane-example", "limit": 5 }`, output `[ { "date": "2026-10-08", "text": "Three things I changed..." }, ...4 more ]` [3]
- **Tool call:** `write_file` (path: posts.md)
- **Agent:** C’est fait. J’ai enregistré ses 5 publications les plus récentes dans posts.md. [4]

. **Un message**: Le modèle vous écrit. Ici, il vous dit aussi ce qu’il s’apprête à faire.
. **Un appel d’outil**: Le modèle a demandé un outil. C’est l’application qui l’a exécuté, pas le modèle.
. **Ce qui est entré et ce qui est ressorti**: Ouvrez un appel pour voir son entrée et sa sortie. Si une donnée n’apparaît pas dans la sortie, le modèle ne peut pas la connaître.
. **Pas d’appel d’outil : la boucle s’arrête**: Un message seul constitue la réponse finale.

_La même exécution que dans la BD, telle qu’elle apparaît dans Claude Code ou Codex. La ligne ouverte permet de voir sur quoi le modèle a réellement pu s’appuyer._

La prochaine fois qu’un agent vous surprend, ouvrez les étapes. Repérez les appels d’outils et regardez ce qui est entré et ce qui en est ressorti. La plupart du temps, **la réponse est juste là**.