ADHD pour Coding Agents : un moteur de raisonnement parallèle façon Tree-of-Thought

"Le README d'ADHD confirme le positionnement du projet, le package npm adhd-agent, la licence MIT, les commandes d'installation, le mécanisme en deux étapes et le cadre des évaluations."
"Le document how-it-works confirme les phases Diverge/Focus, les branches isolées, la parallélisation par semaphore et le modèle de coût en tokens linéaire."
"Le document vs-cot-and-tot confirme les différences structurelles entre ADHD, Chain-of-Thought et Tree-of-Thought, ainsi que l'idée qu'un frame n'est pas une persona."
"Le document frames confirme les 15 frames cognitifs, codeMode, le wild slot et les critères de création d'un frame personnalisé."
"Le document when-to-use confirme les cas adaptés et non adaptés, le nombre d'appels par défaut, la plage de 30 à 90 secondes et le positionnement coût/valeur."
"L'article de The New Stack fournit un contexte tiers sur l'écosystème autour d'ADHD."
Un appel CLI vers un LLM se fige parfois pendant 90 secondes. Comment concevoir la logique de retry et de timeout ? La réponse scolaire arrive vite : backoff exponentiel avec jitter, timeout absolu, puis un retry automatique. Ce n’est pas faux. Mais la vraie question est peut-être ailleurs : est-ce vraiment le réseau qui est lent, ou le mauvais modèle qui a été choisi ? Plus l’utilisateur attend, plus le bouton ne devrait-il pas devenir urgent, avec une option pour relancer en un clic sur un modèle plus rapide ?
ADHD est conçu pour ce type de problème. Ce n’est pas un prompt qui dit à l’Agent : “réfléchis encore”. C’est une structure de raisonnement parallèle pour les agents de code IA. Plusieurs branches isolées divergent avec des frames cognitifs différents. Ensuite, un critic séparé note les idées, les regroupe, coupe les pièges et approfondit les survivants. Ici, on se concentre sur le mécanisme, les limites et les moments où ce skill vaut le coût.
Ce qu’est ADHD (pas un truc de prompt)
Le positionnement d’ADHD est clair : il tente de réduire la convergence prématurée dans le raisonnement autorégressif, pas d’ajouter quelques mots d’encouragement au prompt.
Un modèle autorégressif génère un token après l’autre. Dès que les premiers pas choisissent une direction, le reste de la réponse se construit autour d’elle. C’est efficace, mais les tâches d’ingénierie ouvertes révèlent le défaut : la première réponse plausible devient l’ancre. Le modèle glisse vers le chemin le plus courant, le plus scolaire. Cette réponse est souvent suffisamment correcte, mais elle rate souvent l’option moins évidente qui aurait plus de valeur.
Des prompts classiques peuvent demander au modèle de “comparer plusieurs options”, de “penser sous différents angles” ou d‘“éviter de conclure trop vite”. Le problème, c’est que ces branches partagent toujours le même contexte. Le modèle génère et évalue dans le même espace. Dès qu’une direction apparaît tôt, les branches suivantes ont du mal à s’en détacher.
ADHD prend une voie plus dure. La phase de divergence devient N appels Agent SDK totalement isolés. Chaque branche voit seulement le problème d’origine, un frame cognitif et un system prompt qui interdit l’évaluation. Les branches ne partagent aucun contexte. Une phase Focus utilise ensuite un appel critic séparé pour noter, regrouper, élaguer et approfondir les résultats.
En une phrase : CoT fait réfléchir un cerveau plus lentement, Tree-of-Thought fait chercher un cerveau plus largement, et ADHD fait penser plusieurs cerveaux différemment en parallèle avant de laisser un critic choisir.
Mécanisme en deux phases : un mur dur entre Diverge et Focus
ADHD repose sur deux phases : Phase 1 Diverge et Phase 2 Focus. Un mur dur les sépare. La divergence interdit l’évaluation ; seule la phase Focus a le droit de converger.

Phase 1 Diverge : N branches isolées en parallèle
La première phase choisit N frames cognitifs, avec N=5 par défaut, puis lance N requêtes Agent SDK isolées en parallèle. Chaque branche ne reçoit que trois entrées :
- Le problème d’origine.
- Le prompt de point de vue d’un frame, par exemple relire le problème par la latence, le layout mémoire, la régulation, l’astreinte ou l’inversion.
- Un system prompt qui interdit l’évaluation, le classement et les formulations prudentes.
Les branches ne se voient pas. La branche regulatory audit ne peut pas lire ce que la branche speedrunner a écrit. La branche hardware engineer n’est pas ancrée par la branche 10-year-old child. Chaque branche est une session stateless indépendante : l’ancrage n’est pas supprimé par la discipline du modèle, il est retiré par la structure.
La concurrence est contrôlée par un semaphore, avec concurrency=4 par défaut. Le coût en tokens croît linéairement avec le nombre de branches : O(N×chaque branche), pas N², car les branches suivantes ne relisent pas le contenu complet des branches précédentes.
Phase 2 Focus : un appel critic séparé
La deuxième phase bascule vers un appel critic séparé. Il fait trois choses :
- score : noter chaque branche sur novelty, viability et fit de 0 à 10, avec des raisons mécanistes pour les pièges.
- cluster : grouper les idées selon leur angle sous-jacent, pas selon des mots-clés de surface.
- deepen top-K : approfondir par défaut K=3 idées survivantes avec des croquis, des risques porteurs, une première action et 3 à 5 sous-idées.
Le choix important est la séparation mécanique entre generator et critic. La phase generator ne doit pas évaluer. La phase critic doit évaluer. Ce ne sont pas deux promesses dans le même chat, mais deux appels API distincts avec des system prompts différents et une posture opposée.
La forme d’appel d’une branche isolée ressemble à ceci :
const branches = await Promise.all(
frames.map((frame) =>
withSemaphore(concurrency, () =>
callLLM({
systemPrompt: `${frame.vantage}\n\nFORBIDDEN: evaluation, ranking, hedging. JSON array out.`,
userPrompt: `${problem}\n\n${context ?? ""}`,
}),
),
),
);
Revenons à l’exemple retry/timeout. Une réponse baseline tend à proposer un hybride standard : 15 secondes pour le premier token, 30 secondes entre tokens, une limite dure à 90 secondes et un retry automatique. La valeur d’ADHD n’est pas de rendre cette réponse plus longue. Il peut faire émerger une option comme “rendre le bouton plus urgent à mesure que l’attente augmente, puis permettre d’annuler et de relancer sur un modèle plus rapide”, tout en signalant avant implémentation des idées amusantes mais dangereuses comme “streamer les tokens à l’envers” ou “facturer selon la patience”.
Comparaison structurelle avec CoT et ToT
| Dimension | Chain-of-Thought (CoT) | Tree-of-Thought (ToT) | ADHD |
|---|---|---|---|
| Nombre de threads | Ligne unique | Arbre unique | N branches parallèles isolées |
| Contexte partagé | yes, entièrement partagé | yes, souvent partiellement partagé | no, isolation stricte |
| generator/critic | Évaluation synchrone dans le même contexte | Le même modèle alterne génération et évaluation | Phases séparées, appels séparés, posture opposée |
| Moteur de branche | Pas de branche explicite | Variantes de la prochaine étape | Frames cognitifs qui reposent toute la question |
| Parallélisme | Aucun | Le plus souvent séquentiel | Vraie concurrence, contrôlée par semaphore |
| Meilleur cas | Logique multi-étapes, mathématiques | Recherche, planification, puzzles | Design et idéation d’ingénierie ouverts |
Trois différences porteuses
D’abord, ADHD est une isolation, pas une recherche. Les branches ToT se déploient toujours dans un arbre où les premiers nœuds influencent les suivants. Les branches ADHD ne se voient pas pendant la divergence : l’ancrage est donc retiré par construction.
Ensuite, ADHD utilise des frames, pas des variantes de prochaine étape. ToT élargit souvent la question “quel est le prochain mouvement ?”. ADHD repose toute la question depuis une autre position cognitive. Il ne change pas juste un paramètre ; il reconsidère la tâche par la latence, les contraintes physiques, la responsabilité réglementaire ou la pression d’une astreinte à 3 h du matin.
Enfin, la séparation generator-critic est mécanique, pas déclarative. Dire “n’évalue pas encore” dans un seul contexte n’empêche pas le modèle de comparer les idées pendant qu’il les génère. ADHD sépare ce travail par des appels, des system prompts et des postures distincts.
Une clarification compte : un frame n’est pas une persona. Une persona dit : “vous êtes telle personne”. Un frame dit : “reposez ce problème avec ces contraintes et ce vocabulaire”. Le premier change l’étiquette d’identité. Le second change le cadre du problème.
Les 15 frames cognitifs et la personnalisation
ADHD fournit 15 frames cognitifs qui tordent le même problème dans différentes directions. codeMode privilégie par défaut les perspectives code et design, et chaque lancement garde un wild slot pour éviter une divergence trop propre.
Exemples de frames intégrés
| frame | Point de vue |
|---|---|
| Hardware engineer | Penser par latence, layout mémoire et contraintes physiques |
| Regulatory audit | Penser par conformité, risque et responsabilité |
| 10-year-old child | Penser avec des mots simples et une logique simple |
| Competitor trying to break it | Penser en adversaire, par vulnérabilités et points faibles |
| Biology | Penser par évolution, écosystèmes et contraintes métaboliques |
| Logistics | Penser par supply chain, entrepôts et contraintes de transport |
| Game design | Penser par expérience joueur, équilibre et boucles de feedback |
| Market | Penser par prix, concurrence et positionnement |
| Inversion | Repartir du résultat souhaité |
| $0 or infinite budget | Penser avec des contraintes budgétaires extrêmes |
| Remove load-bearing assumptions | Retirer les hypothèses que vous tenez pour évidentes |
| Speedrunner | Atteindre l’objectif en un minimum d’étapes |
| Ant colony | Penser par coordination distribuée et sans centre |
| 3 a.m. on-call | Penser sous urgence, fatigue et ressources limitées |
| wild slot | Garder un point de vue aléatoire |
Règles de sélection
- Le même problème avec le même seed choisit le même ensemble de frames, ce qui rend les exécutions reproductibles.
- codeMode privilégie par défaut les frames code/design, donc une tâche d’ingénierie n’est pas confiée uniquement à des métaphores hors sujet.
- Chaque lancement garde un wild slot, ce qui donne au système une chance de sortir d’un ensemble de frames trop sage.
Frames personnalisés
Un frame personnalisé n’a pas besoin d’être long. Il doit vraiment changer la manière de voir le problème. Un bon frame respecte au moins deux de ces trois règles :
- Il a un vocabulaire distinctif, pas seulement “penser sous plusieurs angles”.
- Il a une posture distinctive : adversariale, constructive, naïve ou très contrainte.
- Il produit une distorsion reproductible, qui change régulièrement la direction du raisonnement.
Par exemple, pour un produit par abonnement :
name: subscription_retention
vocabulary: ["subscription", "retention", "churn", "renewal", "lifecycle"]
stance: "Think in terms of subscription churn and lifetime value, not one-time transactions"
distortion: "Assume users will churn; design mechanisms that reduce churn"
Cela ne se contente pas d’étiqueter le modèle comme “responsable growth”. Le problème est poussé dans les contraintes de retention, churn et lifetime value.
Quand l’utiliser, et quand l’éviter
ADHD est un outil de point de décision, pas un outil à chaque frappe. Un test simple fonctionne bien : si un développeur junior peut le trouver sur Google, la baseline gagne. Si un développeur senior s’arrêterait pour dire “je dois le regarder sous un autre angle”, ADHD entre dans le périmètre.
Bons cas d’usage
| Scénario | Pourquoi c’est adapté |
|---|---|
| Décisions d’architecture/design | Coût élevé, plusieurs angles, pièges faciles à manquer |
| Design d’interface API/SDK/CLI | Les utilisateurs arrivent avec des mental models différents |
| Naming | Les termes portent des ambiguïtés selon les rôles |
| Débogage flou | La cause racine est inconnue ; il faut générer des hypothèses avant de vérifier |
| Plans de migration et de refactoring | Performance, sécurité, compatibilité et rythme de rollout entrent en conflit |
| Code review élargie | Vous voulez simuler les préoccupations de plusieurs reviewers |
| Stratégie et pricing | Les contraintes business profitent des frames adversariaux et marché |
Mauvais cas d’usage
| Scénario | Pourquoi ce n’est pas adapté |
|---|---|
| Recherche de faits | Une seule bonne réponse ; pas besoin de divergence |
| Correction d’un bug dont la cause est connue | La chaîne causale est claire, la divergence ralentit la correction |
| Réponses faciles à chercher | Une baseline est plus rapide et moins chère |
| Travail en boucle interne / par frappe | Un délai de 30 à 90 secondes est inacceptable |
| Problèmes à réponse unique | Ajouter des branches n’ajoute pas d’information utile |
Installation et déclenchement
Examinez le skill tiers avant de l’installer. Lisez au minimum son SKILL.md : que demande-t-il à l’Agent, peut-il lancer des commandes externes, peut-il toucher des répertoires sensibles ? La checklist du guide de revue de sécurité des skills OpenClaw donne un bon point de départ.
Installation générale
La commande d’installation générale est :
npx skills add UditAkhourii/adhd
Elle détecte automatiquement environ 50 Agents, dont Claude Code, Cursor, Antigravity, Codex, Cline, Gemini CLI et Windsurf, puis installe le fichier skill correspondant.
Installation spécifique à Codex
Si la commande générale n’enregistre pas le skill dans Codex, forcez la cible :
npx skills add UditAkhourii/adhd -a codex -g
Vous pouvez aussi l’installer manuellement :
curl -o ~/.codex/skills/adhd/SKILL.md https://raw.githubusercontent.com/UditAkhourii/adhd/main/SKILL.md
Après une installation manuelle, redémarrez Codex pour recharger le répertoire des skills.
Déclenchement
Déclenchez-le avec :
/adhd "problème"
Par exemple :
/adhd "Un appel CLI vers un LLM se fige parfois pendant 90s. Comment concevoir retry/timeout/UX ?"
Ne le branchez pas sur chaque complétion. Le meilleur usage consiste à le déclencher explicitement sur l’architecture, le design d’interface, le naming ou le débogage flou.
Coût et valeur
Données de coût
| Dimension | Données |
|---|---|
| Appels LLM | Environ 10 : N=5 en divergence + 1 passage de scoring + 1 passage de clustering + K=3 passages de deepening |
| Temps | Généralement 30 à 90 secondes |
| Multiplicateur de coût | 5 à 10 fois un appel unique |
| Coût en tokens | O(N×chaque branche), croissance linéaire, pas N² |
Positionnement de valeur
Le projet le formule ainsi : dépenser de l’ordre de 0,30 USD pour soutenir une décision d’architecture valant 50 000 USD. Ce n’est pas un argument pour lancer ADHD sur chaque petite question. C’est un rappel : une mauvaise décision d’ingénierie ouverte peut coûter bien plus cher qu’un seul raisonnement multi-branches.
Dans les vrais projets, le coût de contexte compte aussi. Dans Claude Code ou une session Agent similaire, chaque branche peut recharger le contexte projet de base, les consignes d’outils et les règles du dépôt. Le coût algorithmique pur est O(N×chaque branche), mais la facture pratique ressemble davantage à N×(contexte de base + travail de branche). C’est donc un outil pour “devons-nous concevoir ainsi ?”, pas pour “quelle est la prochaine ligne de code ?”.
Lire les résultats d’eval
Le projet ADHD publie une auto-évaluation : six tâches d’ingénierie ouvertes, même modèle, jugement LLM indépendant, ordre A/B randomisé. Gardez ce périmètre visible. Ce n’est ni un benchmark académique tiers, ni une évaluation humaine.
Comparaison sur cinq dimensions
| Dimension | ADHD | baseline | Gain |
|---|---|---|---|
| breadth | 9.00 | 4.83 | 1.9x |
| novelty | 7.83 | 2.67 | 2.9x |
| trap detection | 9.50 | 1.83 | 5.2x |
| actionability | 9.50 | 6.50 | 1.5x |
| builder usefulness | 7.67 | 6.83 | 1.1x |
Prudence sur le cadre d’évaluation
Ces chiffres sont utiles pour comprendre une direction, pas pour faire une affirmation de benchmark autoritaire. Ils ne prouvent pas qu’ADHD bat toutes les autres stratégies de raisonnement. Ils soutiennent une lecture plus étroite : sur des prompts d’ingénierie ouverts, divergence isolée plus critic séparé peuvent modifier visiblement l’étendue, la nouveauté et la détection des pièges.
Évitez donc de l’écrire comme “performance de benchmark leader du secteur”. La formulation plus sûre est : dans l’auto-évaluation du projet sur six tâches d’ingénierie ouvertes, ADHD en a gagné cinq, avec le plus grand écart sur trap detection. Si la frontière factuelle reste claire, le lecteur peut juger lui-même le poids de ces chiffres.
Conclusion
ADHD est intéressant non pas parce qu’il rend les réponses plus longues, mais parce qu’il transforme “penser différemment” en structure : les branches sont isolées, les frames reposent le problème, et un critic séparé élague les résultats. Cette structure correspond bien à une faiblesse fréquente des Coding Agents sur les tâches d’ingénierie ouvertes : converger trop tôt vers la première réponse qui semble correcte.
Utilisez-le sur les points de décision, pas dans les boucles quotidiennes à chaque frappe. Architecture, interfaces, naming, migrations et débogage flou valent 30 à 90 secondes de plus. Recherche de faits, bugs dont la cause est connue et boilerplate d’une ligne conviennent mieux à un Agent baseline.
Si vous organisez votre toolchain d’AI coding, lisez le panorama 2026 des outils de programmation IA pour situer ce type de skill. Pour comprendre comment organiser des chaînes de raisonnement plus longues, le guide d’architecture DeepAgents est aussi utile.
Installer et déclencher ADHD dans Codex ou Claude Code
Installez le skill ADHD et déclenchez un raisonnement divergent parallèle sur les décisions d'architecture, de naming, de débogage flou ou d'autres choix à fort enjeu.
- 1
Step 1: Examiner d'abord le skill tiers
Ouvrez le SKILL.md du projet et vérifiez ce que le skill demande à l'Agent, quelles commandes il peut exécuter et s'il a besoin de droits supplémentaires. N'installez pas de skill tiers à l'aveugle. - 2
Step 2: Lancer la commande d'installation générale
Exécutez npx skills add UditAkhourii/adhd. L'installeur détecte automatiquement environ 50 Agents, dont Claude Code, Cursor, Antigravity, Codex, Cline, Gemini CLI et Windsurf. - 3
Step 3: Forcer la cible Codex si nécessaire
Si la commande générale n'enregistre pas le skill dans Codex, exécutez npx skills add UditAkhourii/adhd -a codex -g, ou téléchargez SKILL.md manuellement dans ~/.codex/skills/adhd/. - 4
Step 4: Le déclencher au bon point de décision
Utilisez /adhd "votre problème". Privilégiez l'architecture, le design d'interface, le naming et le débogage flou. Ne l'utilisez pas pour chercher un fait ou pour la complétion à chaque frappe.
FAQ
Quelle est la différence entre ADHD et Tree-of-Thought ?
ADHD nécessite-t-il Claude ou peut-il utiliser un modèle local ?
Combien coûte un lancement ADHD et combien de temps prend-il ?
Quels types de tâches devraient utiliser ADHD, et lesquelles devraient l'éviter ?
Comment l'installer et le déclencher dans Codex ou Claude Code ?
Un frame est-il juste un prompt de persona ?
12 min de lecture · Publié le: 8 juin 2026 · Mis à jour le: 14 juil. 2026
Boîte à outils AI Agent
Si vous arrivez depuis la recherche, le plus rapide est de passer à l’article précédent ou suivant de cette série.
Précédent
female-portrait-director : transformer les prompts de portrait IA en Skill réutilisable
female-portrait-director est un projet open source qui transforme les prompts de portrait IA en Skill structuré et réutilisable. Ce guide explique le verrouillage des paramètres, le routage à la demande, l'expansion modulaire façon directeur, les limites de sécurité et une méthode en 5 étapes pour créer votre propre Skill de prompts.
Partie 3 sur 4
Suivant
C’est le dernier article publié dans cette série pour le moment.



Commentaires
Connectez-vous avec GitHub pour laisser un commentaire