Pourquoi Claude Code est si bon
(minusx.ai)- Claude Code est un agent IA / workflow extrêmement performant en termes d’utilisabilité
- Grâce à sa simplicité architecturale et à sa boucle de contrôle claire, il offre une expérience qui facilite le débogage et la maintenance
- En minimisant l’adoption du RAG et en exploitant activement des prompts sophistiqués ainsi que des fichiers de contexte, il maximise les points forts des LLM
- Il maintient la clarté et la cohérence du travail grâce à divers outils et à des directives explicites
- Plutôt que de miser sur la complexité, il privilégie une structure facile à comprendre et la conception de prompts, avec l’avantage de permettre d’implémenter soi-même un agent LLM similaire
Vue d’ensemble
- Claude Code (ci-après CC) offre actuellement l’expérience la plus satisfaisante parmi les agents IA / workflows de code disponibles
- Les atouts de CC résident dans une édition de code adaptée à la cible, la réduction des distractions inutiles et une UX agréable qui préserve le contrôle de l’utilisateur
- Le modèle Claude 4 et son Interleaved Thinking caractéristique jouent un rôle clé, mais CC provoque encore moins de frictions que d’autres outils fondés sur le même modèle, comme Cursor ou Github Copilot
- Cet article dissèque les principes d’implémentation de CC et propose un guide pratique pour construire son propre agent LLM capable d’offrir une expérience similaire
La vertu centrale de Claude Code : la simplicité
- La leçon la plus importante est de « rester simple (Keep Things Simple, Dummy) »
- Dès qu’un agent LLM introduit une structure complexe (multi-agent, RAG complexe, système de vérification, etc.), il devient extrêmement difficile à déboguer et à améliorer
- CC adopte une boucle principale unique, un ensemble d’outils simple et une structure compréhensible d’un seul coup d’œil, en regroupant toute la logique essentielle dans un seul fichier afin d’éliminer le boilerplate inutile et la complexité superflue
Pourquoi la simplicité est importante
- Au lieu d’une architecture multi-agent, la majorité du travail est traitée dans un seul thread principal
- Le résumé de l’historique, l’agrégation de messages pour l’UX, etc. sont appliqués sous forme d’assistance
- Lorsqu’une tâche complexe est nécessaire, il peut se dupliquer lui-même pour bifurquer en sous-agent (pas de branchement récursif, limité à un seul niveau)
- Il exploite activement une liste de tâches (todo list)
- Les problèmes complexes sont découpés dans des sous-agents, puis les résultats sont fusionnés dans l’historique principal des messages
- Des structures multi-couches trop abstraites (agents multiples, navigation par graphe) risquent au contraire de réduire la stabilité et la scalabilité du système
Utilisation active de modèles légers
- Des modèles LLM légers comme claude-3-5-haiku sont utilisés pour la majorité des requêtes
- Ils permettent de traiter efficacement de nombreuses tâches comme la lecture de gros fichiers, l’analyse de pages web ou le résumé de l’historique git
- L’utilisation de modèles légers peut réduire les coûts jusqu’à 70 à 80 %
- Il est recommandé d’utiliser une combinaison de modèles optimisée pour chaque appel de fonctionnalité clé
Conception de prompts sophistiquée
- Le prompt système de CC est constitué d’un volume très important (environ 2800 tokens) et de nombreuses sections (ton & style, gestion des tâches, politique d’utilisation des outils, informations sur l’OS/répertoires, etc.)
- L’intégralité des fichiers de contexte tels que claude.md est toujours incluse afin de maximiser la richesse du contexte
- Le prompt système fournit des indications très détaillées sur les règles de politique, les exemples, les points d’attention et le moment d’utiliser les outils
Utilisation conjointe de XML et de Markdown
- Le prompt utilise à la fois des balises XML et une structure Markdown
- Des éléments comme
<system-reminder>,<good-example>,<bad-example>permettent de transmettre des informations détaillées et conditionnelles - Les titres markdown servent à délimiter clairement les sections
- Des éléments comme
L’importance des fichiers de contexte
- La présence ou l’absence de claude.md entraîne une différence de performance très marquée pour CC
- Il est indispensable pour transmettre des règles supplémentaires difficiles à déduire depuis la codebase (exclusion de dossiers/bibliothèques, politiques préférées, etc.)
- MinusX organise lui aussi de façon structurée les préférences de l’équipe et des utilisateurs via minusx.md
Minimiser le RAG, exploiter la recherche par LLM
- CC préfère une architecture fondée sur la recherche directe dans le code avec des commandes comme
ripgrep,jq,find, à la manière d’un vrai développeur, plutôt que sur le RAG (Retrieval Augmented Generation)- Cela constitue une alternative aux risques d’échec cachés liés aux configurations RAG complexes (par ex. fonction de similarité, reranker, chunking)
- Comme le LLM explore et comprend directement le contexte réel du code, le nombre de composants en mouvement diminue, avec en prime un gain potentiel d’efficacité pour l’apprentissage RL
Conception des outils et hiérarchie
- CC prend en charge des outils bas niveau (Bash, Read, Write), intermédiaires (Edit, Grep, Glob) et haut niveau (Task, WebFetch, etc.)
- Les outils nécessaires sont séparés individuellement en tenant compte de leur fréquence d’utilisation et de leur précision
- Le prompt système précise clairement la description, les exemples et le moment d’utilisation de chaque outil
- Les tâches complexes sont gérées de manière cohérente via
Taskou d’autres outils de haut niveau
Gestion explicite des Todo pour éviter la perte de contexte
- Pour résoudre un problème typique des agents LLM à longue exécution (perte de contexte, perte de direction), CC gère l’état via une liste de Todo maintenue explicitement
- Au lieu d’un système multi-agent, le modèle met lui-même à jour les Todo, ce qui permet de préserver à la fois la direction du travail et la flexibilité
Contrôle du ton, du style et du niveau de familiarité de l’agent
- Le ton, le style et le niveau de proactivité sont gérés dans des sections séparées
- Limiter les explications inutiles, n’autoriser les émojis que sur demande explicite, etc. : tout cela vise à concevoir une expérience utilisateur cohérente
- Des modificateurs forts comme « IMPORTANT », « NEVER » et « ALWAYS » servent à mettre en avant les points d’attention
Conception de l’algorithme de décision et du flux
- Les algorithmes principaux que le LLM doit suivre sont décrits clairement et illustrés par des exemples
- Plus qu’une simple liste de Do/Don’t, les flowcharts et check-lists étape par étape sont plus efficaces pour préserver la stabilité de l’algorithme
- La portée des rôles et les politiques sont structurées en tenant compte des conflits possibles entre plusieurs consignes et exemples
Design patterns et conseils pratiques d’application
- Ses opinions fortes et sa structure constituent un excellent benchmark immédiat pour concevoir son propre agent
- Plutôt que d’abuser de frameworks qui compliquent tout, il est important de concevoir une structure simple et efficace
- Dans MinusX aussi, de nombreux principes sont déjà appliqués en pratique, avec l’intention de les étendre progressivement
Conclusion
- La plus grande leçon de Claude Code : « la simplicité est la plus grande des forces »
- Clarté structurelle, conception de prompts pertinente et combinaison d’outils légers rendent possible un agent LLM puissant
- Lors du développement de son propre agent LLM, il est très utile de s’inspirer activement de la philosophie de conception et des guides de CC
2 commentaires
J’adore tellement, je suis trop heureux, c’est le top, c’est trop doux, je veux continuer.
Avis Hacker News
La conviction que la simplicité façon KISS finit toujours par l’emporter, et le sentiment que cet article était utile parce qu’il l’explique bien
C’est dommage que Claude Code ne soit pas open source, mais il existe des outils qui permettent de mieux comprendre son fonctionnement interne ; si cela vous intéresse vraiment, recommandation de Claude Trace
https://github.com/badlogic/lemmy/tree/main/apps/claude-trace
Cet outil génère un fichier JSON montrant tous les outils et prompts utilisés dans une session, ainsi qu’un fichier HTML formaté pour une lecture plus facile
https://github.com/All-Hands-AI/OpenHands?tab=readme-ov-file
On peut aussi y consulter le prompt système
Le modèle est apparemment entraîné à découper les tâches en plusieurs étapes et à les résoudre patiemment, avec une certaine robustesse face aux échecs
Avis selon lequel il était intéressant de voir comment une organisation centrée sur les LLM aborde le sujet à une époque où les systèmes multi-agents attirent beaucoup d’attention ; la personne dit aussi expérimenter au quotidien différents points de vue en matière de design, ce qui lui parle
Principaux enseignements :
(1) Des prompts longs peuvent très bien convenir, et il faut absolument inclure des explications de base sur l’objectif des outils et la manière dont ils aident
(2) L’appel d’outils est un aspect très fondamental, donc il faut mieux refléter le contexte — quand les utiliser, quand ne pas les utiliser, etc.
(3) Gérer l’état du système sous forme de messages fonctionne bien ; des méthodes plus sophistiquées ont été envisagées (stockage en dataframe, parsing de variables, etc.), mais avec une fenêtre de contexte plus longue, de simples messages semblent suffisants
Des essais ont aussi été faits avec des modèles d’OpenAI et de Google Gemini, mais ils semblent moins bons que les modèles d’Anthropic et plus lents ; plus le prompt s’allonge, plus ils oublient les outils ou renvoient des résultats dans un mauvais format
La clarté et la simplicité passent avant tout
Question sur la comparaison entre Google Gemini (surtout la version Pro) et Claude ; la personne apprécie beaucoup de produits Google, mais s’inquiète de la tendance de Google à abandonner souvent ses produits, de son côté un peu brutal en matière de contrôle d’entreprise (Chrome, etc.) et des questions de censure
La stratégie personnelle décrite consiste à utiliser Gemini pour produire un résumé du projet et un plan de conception de haut niveau, puis à demander à gpt5 d’améliorer cela et de détailler le workflow (par exemple sous forme de document XML), avant de renvoyer le tout à Claude ; rien qu’avec cela, on évite presque entièrement que Claude parte dans tous les sens
https://www.tbench.ai/leaderboard
Opinion selon laquelle c’est avant tout le modèle de base lui-même qui est fort sur le vrai travail de développement, ce qui explique les bons retours des utilisateurs, davantage que sur des problèmes de benchmark classiques ; en essayant GitHub Copilot, Claude serait largement supérieur aux modèles d’OpenAI et de Google, avec un écart si grand que les autres modèles en deviennent pratiquement inutiles
Quelqu’un essaie en ce moment de déboguer avec Claude Code un problème lié à Elastic sur Security Onion, mais au bout de quelques minutes une avalanche de code JS obscur apparaît, suivie de l’erreur « Error: kill EPERM »
En regardant les logs, la personne se demande si cela tue le processus Node.js et donc Claude lui-même, ou si Claude se ferme de lui-même parce qu’il n’arrive pas à résoudre le problème
Quoi qu’il en soit, elle aimerait qu’il aide davantage tant que le processus tient encore
Idée selon laquelle les langages, plateformes et architectures que les LLM maîtrisent le mieux vont peu à peu s’imposer ; par exemple, si les LLM gèrent nodejs 10 fois mieux, il devient rationnel d’utiliser nodejs dès le départ plutôt qu’Elixir ou Go ; même un développeur junior peut alors travailler à un niveau intermédiaire ou senior avec l’aide d’un LLM
sudopour lancer un processus avec des privilèges superutilisateur et qu’un timeout se produitUne personne explique avoir construit l’intégralité du premier MVP de sa startup avec Claude Code, et avoir désormais des clients payants ; elle conserve bien sûr une inquiétude de fond à l’idée qu’un incident SEV puisse tout faire s’écrouler d’un coup, mais continue d’utiliser activement Claude pour corriger des vulnérabilités de sécurité, pratiquer le test-driven development et concevoir l’architecture logicielle selon une feuille de route à long terme
Elle espère que ce genre d’histoire deviendra de plus en plus courant
Avis selon lequel, si l’affirmation « Keep things simple » est vraie, l’ensemble paraît malgré tout plutôt complexe
La personne dit qu’elle a toujours réussi à faire beaucoup de choses avec une méthode simple consistant à poser un prompt à la fois selon le besoin
Elle n’est pas convaincue de la valeur supplémentaire apportée par les structures complexes évoquées, par rapport à un prompt vraiment bien conçu
Elle prend l’exemple d’un prompt en une phrase du type « comment faire une boucle while dans un langage que j’apprends » qui pourrait être plus efficace
Le contrôle de flux paraît au contraire plus flou ; elle se demande aussi si les LLM exploitent vraiment correctement les appendices (outils ou prompt système), et si, quand la demande devient trop complexe, une partie n’est pas ignorée ou n’entraîne pas juste un gaspillage de tokens
Pour elle, programmer en envoyant des prompts séparés par morceaux semble bien plus naturel
Elle aimerait voir des exemples d’autres approches ou de prompts utilisés
Elle se demande concrètement comment les gens construisent un programme complet avec des LLM, et voudrait voir des cas où le travail est découpé prompt par prompt
À noter enfin que le lien minusx.com à la fin de l’article pointe vers un site dont le certificat de sécurité a expiré il y a 553 jours ; le site n’est donc pas valide, prudence