Changer le thème

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

Easton editorial illustration: sculptural forked code-path tree, critic pruning ring
Environ 10
Appels LLM par défaut
N=5 en divergence, plus un passage de scoring, un passage de clustering et K=3 passages de deepening.
30-90 secondes
Temps réel typique
Utile sur les points de décision, pas dans les boucles par frappe.
5-10x
Coût face à un appel unique
Le coût en tokens croît linéairement avec le nombre de branches, pas au carré.
9.00 / 4.83
Breadth (ADHD / baseline)
Environ 1,9x dans l'auto-évaluation du projet.
7.83 / 2.67
Novelty (ADHD / baseline)
Environ 2,9x dans l'auto-évaluation du projet.
9.50 / 1.83
Trap detection (ADHD / baseline)
L'écart le plus fort dans l'auto-évaluation du projet, environ 5,2x.
数据来源: Évaluations autodéclarées du projet ADHD : six tâches d'ingénierie ouvertes, même modèle, jugement LLM indépendant, ordre A/B randomisé. Ce n'est pas un benchmark tiers.

"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.

Flux ADHD en deux phases : plusieurs branches isolées divergent en parallèle, un mur dur les sépare d'un critic séparé qui note et élague

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 :

  1. Le problème d’origine.
  2. 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.
  3. 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 :

  1. score : noter chaque branche sur novelty, viability et fit de 0 à 10, avec des raisons mécanistes pour les pièges.
  2. cluster : grouper les idées selon leur angle sous-jacent, pas selon des mots-clés de surface.
  3. 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

DimensionChain-of-Thought (CoT)Tree-of-Thought (ToT)ADHD
Nombre de threadsLigne uniqueArbre uniqueN 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 contexteLe même modèle alterne génération et évaluationPhases séparées, appels séparés, posture opposée
Moteur de branchePas de branche expliciteVariantes de la prochaine étapeFrames cognitifs qui reposent toute la question
ParallélismeAucunLe plus souvent séquentielVraie concurrence, contrôlée par semaphore
Meilleur casLogique multi-étapes, mathématiquesRecherche, planification, puzzlesDesign 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

framePoint de vue
Hardware engineerPenser par latence, layout mémoire et contraintes physiques
Regulatory auditPenser par conformité, risque et responsabilité
10-year-old childPenser avec des mots simples et une logique simple
Competitor trying to break itPenser en adversaire, par vulnérabilités et points faibles
BiologyPenser par évolution, écosystèmes et contraintes métaboliques
LogisticsPenser par supply chain, entrepôts et contraintes de transport
Game designPenser par expérience joueur, équilibre et boucles de feedback
MarketPenser par prix, concurrence et positionnement
InversionRepartir du résultat souhaité
$0 or infinite budgetPenser avec des contraintes budgétaires extrêmes
Remove load-bearing assumptionsRetirer les hypothèses que vous tenez pour évidentes
SpeedrunnerAtteindre l’objectif en un minimum d’étapes
Ant colonyPenser par coordination distribuée et sans centre
3 a.m. on-callPenser sous urgence, fatigue et ressources limitées
wild slotGarder 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 :

  1. Il a un vocabulaire distinctif, pas seulement “penser sous plusieurs angles”.
  2. Il a une posture distinctive : adversariale, constructive, naïve ou très contrainte.
  3. 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énarioPourquoi c’est adapté
Décisions d’architecture/designCoût élevé, plusieurs angles, pièges faciles à manquer
Design d’interface API/SDK/CLILes utilisateurs arrivent avec des mental models différents
NamingLes termes portent des ambiguïtés selon les rôles
Débogage flouLa cause racine est inconnue ; il faut générer des hypothèses avant de vérifier
Plans de migration et de refactoringPerformance, sécurité, compatibilité et rythme de rollout entrent en conflit
Code review élargieVous voulez simuler les préoccupations de plusieurs reviewers
Stratégie et pricingLes contraintes business profitent des frames adversariaux et marché

Mauvais cas d’usage

ScénarioPourquoi ce n’est pas adapté
Recherche de faitsUne seule bonne réponse ; pas besoin de divergence
Correction d’un bug dont la cause est connueLa chaîne causale est claire, la divergence ralentit la correction
Réponses faciles à chercherUne baseline est plus rapide et moins chère
Travail en boucle interne / par frappeUn délai de 30 à 90 secondes est inacceptable
Problèmes à réponse uniqueAjouter 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

DimensionDonnées
Appels LLMEnviron 10 : N=5 en divergence + 1 passage de scoring + 1 passage de clustering + K=3 passages de deepening
TempsGénéralement 30 à 90 secondes
Multiplicateur de coût5 à 10 fois un appel unique
Coût en tokensO(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

DimensionADHDbaselineGain
breadth9.004.831.9x
novelty7.832.672.9x
trap detection9.501.835.2x
actionability9.506.501.5x
builder usefulness7.676.831.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. 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. 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. 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. 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 peut être vu comme une variante de Tree-of-Thought, mais il transforme l'isolation des branches, l'exploration par frame et la séparation generator/critic en contraintes structurelles. ToT développe souvent la prochaine étape dans un contexte ou un arbre de recherche partagé. ADHD rend chaque branche invisible aux autres et repose toute la question depuis un autre frame cognitif.
ADHD nécessite-t-il Claude ou peut-il utiliser un modèle local ?
ADHD est construit sur les Agent SDK de Claude et de Codex, et utilise par défaut des modèles de type Claude. Ce n'est pas un outil local prêt à l'emploi. Pour le connecter à Ollama ou à un autre modèle local, vous devez adapter vous-même la couche d'appel.
Combien coûte un lancement ADHD et combien de temps prend-il ?
Le projet décrit le lancement par défaut comme environ 10 appels LLM, 30 à 90 secondes de temps réel, et 5 à 10 fois le coût d'un appel unique. Il positionne l'outil comme une dépense de l'ordre de 0,30 USD pour soutenir une décision d'architecture à 50 000 USD. C'est un ordre de grandeur, pas un prix fixe.
Quels types de tâches devraient utiliser ADHD, et lesquelles devraient l'éviter ?
Architecture, design d'interface API/SDK/CLI, naming, débogage flou, planification de migration et code review élargie sont de bons cas. Chercher une API, corriger un bug dont la cause est connue, répondre à une question facilement trouvable ou travailler dans une boucle par frappe sont de mauvais cas.
Comment l'installer et le déclencher dans Codex ou Claude Code ?
Installez avec npx skills add UditAkhourii/adhd, puis déclenchez avec /adhd "problème". Si Codex n'est pas détecté automatiquement, utilisez npx skills add UditAkhourii/adhd -a codex -g ou placez SKILL.md manuellement dans ~/.codex/skills/adhd/.
Un frame est-il juste un prompt de persona ?
Non. Une persona demande généralement au modèle de jouer un rôle. Un frame est un opérateur de point de vue : il repose toute la question sous l'angle de la latence, du layout mémoire, de la régulation, de l'astreinte, de l'inversion ou d'une autre contrainte. Il change le cadre du problème, pas seulement l'étiquette du rôle.

12 min de lecture · Publié le: 8 juin 2026 · Mis à jour le: 14 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog