Chapitre 1.1 — Un agent, pas un chatbot
⏱️ TL;DR — Claude Code n’est pas une zone de chat qui « connaît » ton projet et te rend du code. C’est un agent : il tourne dans une boucle perçois → raisonne → agis → observe, en utilisant des outils (lire un fichier, écrire, lancer une commande, chercher). Il ne sait rien de ton repo tant qu’il ne l’a pas lu, et il oublie tout à la fin de la session sauf ce que tu as rendu persistant. Intégrer ça change radicalement ta façon de demander : tu ne « décris » plus, tu cadres un environnement de travail.
🎯 Objectifs
- Distinguer un chatbot (une réponse par message) d’un agent (une boucle d’actions vers un objectif).
- Décrire la boucle agentique de Claude Code et le rôle des outils.
- Comprendre les trois conséquences pratiques : l’agent part ignorant, son contexte est limité, sa mémoire est volatile.
- Reformuler une demande « façon chatbot » en demande « façon agent ».
Le déclic
Prends deux façons de demander la même chose.
Façon chatbot (ce que beaucoup font) :
« Voici mon composant
<Button>(copier-coller de 60 lignes). Peux-tu me faire un<IconButton>dans le même style ? »
Façon agent :
« Crée un
<IconButton>cohérent avec nos composants existants. Regardesrc/components/Button.tsxpour le style etsrc/components/ui/pour nos conventions. »
La deuxième est plus courte et donne un meilleur résultat. Pourquoi ? Parce que dans le premier cas tu traites l’outil comme une boîte qui ne voit que ton message. Dans le second, tu lui dis où aller chercher — et il ira lire les fichiers, en déduire les conventions, et produire quelque chose qui s’intègre. C’est ça, un agent : il agit sur ton environnement, il ne se contente pas de répondre.
💡 Réflexe d’architecte — Ne colle pas ce que l’agent peut aller lire lui-même. Pointe-le vers la source. Un bon prompt ressemble souvent plus à un ticket (« fais X, les conventions sont là, le modèle est ce fichier ») qu’à une dissertation.
La boucle agentique
Un chatbot, c’est une fonction : message → réponse. Un agent, c’est une boucle qui continue jusqu’à ce que l’objectif soit atteint :
À chaque tour, l’agent choisit un outil et observe le résultat, puis recommence. Les outils typiques de Claude Code :
| Catégorie | Exemples | Ce que ça permet |
|---|---|---|
| Lecture | lire un fichier, lister, chercher (grep/glob) | comprendre le code existant |
| Écriture | créer/éditer un fichier | modifier le repo |
| Exécution | lancer une commande shell (tests, build, git) | agir sur le système, vérifier |
| Recherche | web, doc | chercher une info à jour |
| Délégation | lancer un sous-agent | paralléliser, isoler une sous-tâche |
Quand tu vois Claude Code « réfléchir », puis lire trois fichiers, lancer les tests, éditer, relancer les tests — tu regardes la boucle tourner. Il ne devine pas ; il observe. C’est pour ça qu’il est fiable sur un vrai codebase là où un simple LLM en chat hallucine des API.
⚠️ Piège — Croire que l’agent « a déjà lu tout ton projet ». Non. Au démarrage, il ne connaît que ce que tu lui dis et ce que le harness lui injecte automatiquement (dont ton
CLAUDE.md). Le reste, il doit aller le lire. Si tu lui demandes de modifier une fonction sans lui dire où elle est, son premier pas sera… de la chercher. Autant lui donner le chemin.
Trois conséquences qui changent tout
1. L’agent part ignorant (mais curieux)
Chaque session démarre quasiment à zéro sur ton projet. Il compensera en explorant, mais l’exploration coûte (du temps, du contexte) et peut partir dans la mauvaise direction. → D’où l’importance de lui donner des points d’entrée (Partie 2) et un CLAUDE.md (Partie 3).
2. Son contexte est limité et périssable
Tout ce qu’il « voit » tient dans une fenêtre de contexte de taille finie. Plus la session est longue, plus elle se remplit (fichiers lus, sorties de commandes, raisonnement). Quand c’est trop plein, il faut compacter ou repartir propre. → C’est le sujet du chapitre 1.3 et de la Partie 5.
3. Sa mémoire entre sessions est ce que TU rends persistant
Ferme la session, et le contexte disparaît. Ce qui survit, c’est ce qui est écrit sur le disque : ton code, ton CLAUDE.md, tes skills, ta config. → Bien piloter Claude Code, c’est en grande partie transformer des instructions volatiles en artefacts persistants. Tout le playbook tourne autour de ça.
💡 Réflexe d’architecte — Chaque fois que tu te surprends à répéter une consigne (« utilise nos alias d’import », « pas de
any»), demande-toi : est-ce que je devrais rendre ça persistant ? Une règle répétée = candidate pour leCLAUDE.md(si c’est une convention) ou pour un hook (si c’est mécanique et vérifiable).
Reformuler « chatbot → agent »
Un exercice mental à faire jusqu’à ce qu’il devienne automatique :
| Réflexe chatbot | Réflexe agent |
|---|---|
| Coller le code dans le prompt | Donner le chemin du fichier |
| « Refais-moi ça » | « Modifie X, vérifie avec npm test » |
| Tout décrire de mémoire | Le laisser explorer puis valider un plan |
| Espérer qu’il respecte le style | Ancrer le style (CLAUDE.md, fichier-modèle) |
| Une consigne à répéter chaque fois | La persister (mémoire ou hook) |
| Une grosse demande floue | Un objectif clair + critère de fin (les tests passent) |
Ce que ça implique pour la suite
Ce basculement est la clé de voûte. Les parties suivantes ne sont que des déclinaisons :
- Cadrer un projet (P2) = donner à l’agent le bon environnement de départ.
CLAUDE.md(P3) = rendre tes conventions persistantes.- Cohérence (P4) = ancrer le design pour qu’il n’improvise pas.
- Hooks (P7) = automatiser le vérifiable au lieu de le répéter.
- Subagents (P8) = déléguer une sous-boucle isolée.
✏️ Exercices
Exercice 1 — Chasse au chatbot. Reprends tes 3 derniers prompts à Claude Code. Pour chacun, repère : as-tu collé du code qu’il aurait pu lire ? As-tu donné un critère de fin (« les tests passent », « ça build ») ? Réécris-les « façon agent ».
✅ Solution
Un bon prompt « façon agent » a en général trois ingrédients : (1) l’objectif (« ajoute la pagination à la liste des tâches »), (2) les points d’ancrage (« regarde src/features/tasks/ et suis le pattern de useTasks »), (3) le critère de fin (« vérifie que npm test et npm run build passent »). Si un de tes prompts collait 40 lignes de code existant, tu peux presque toujours les remplacer par un chemin de fichier.
Exercice 2 — Trace la boucle. Lance une petite tâche réelle (« ajoute un champ dueDate optionnel à mon type Task ») et observe les outils que l’agent enchaîne. Note l’ordre : cherche-t-il d’abord ? lit-il un fichier ? édite-t-il puis vérifie-t-il ?
✅ Solution
Tu verras typiquement : un grep/glob pour trouver la définition de Task, une lecture du fichier, une édition, puis souvent une exécution (typecheck ou tests) pour vérifier que rien ne casse. C’est la boucle raisonne → agis → observe. Si l’agent saute la vérification, c’est souvent parce que rien dans ton projet ne la lui rend facile (pas de script de test) — indice pour plus tard.
🧠 Quiz de révision
1. Quelle est la différence fondamentale entre un chatbot et un agent ?
Un chatbot fait message → réponse (un coup). Un agent boucle raisonne → agit → observe en utilisant des outils, jusqu’à atteindre un objectif. Il agit sur l’environnement, il ne se contente pas de répondre.
2. Pourquoi est-il inutile (voire contre-productif) de coller un gros fichier dans le prompt ?
Parce que l’agent peut le lire lui-même si tu lui donnes le chemin. Le coller gaspille du contexte et le prive de voir le fichier dans son environnement (imports, voisins, conventions). Pointe la source plutôt que la copier.
3. Que devient le « contexte » d’une session quand tu la fermes ?
Il disparaît. Seul survit ce qui est écrit sur le disque : code, CLAUDE.md, skills, config. La mémoire inter-session, c’est ce que tu as rendu persistant.
4. Tu répètes « n’utilise jamais any » à chaque session. Bon ou mauvais signe ?
any » à chaque session. Bon ou mauvais signe ?Mauvais signe : c’est une instruction volatile qui devrait être persistée. Selon les cas, dans le CLAUDE.md (convention) et/ou imposée par un hook/lint (vérifiable mécaniquement). Répéter une règle, c’est du travail que le harness pourrait faire pour toi.
5. « Claude Code a déjà lu tout mon projet au démarrage. » Vrai ou faux ?
Faux. Il démarre en connaissant surtout ce que tu dis + ce que le harness injecte (dont le CLAUDE.md). Le reste, il doit aller le lire via ses outils. Lui donner des points d’entrée accélère et fiabilise son travail.
Chapitre suivant : Installation & surfaces — installer Claude Code et choisir le bon terrain de jeu.