Architecture d’agents : créer des harnais de développement alimentés par l’IA
# Le système complet pour créer des harnais d’agents IA de production. Skills, hooks, mémoire, sous-agents, orchestration multi-agent et modèles qui font des agents de codage IA une infrastructure fiable.
En bref : Claude Code n’est pas une boîte de dialogue avec accès aux fichiers. C’est un runtime programmable avec 29 événements de cycle de vie documentés, chacun pouvant être relié à des hooks via des scripts shell que le modèle ne peut pas ignorer. Empilez les hooks dans des dispatchers, les dispatchers dans des skills, les skills dans des agents, les agents dans des workflows, et vous obtenez un harness de développement autonome qui impose des contraintes, délègue le travail, conserve la mémoire entre les sessions et orchestre la délibération multi-agent. Claude Code v2.1.147 a ajouté l’outil
Workflow, désactivé par défaut (CLAUDE_CODE_WORKFLOWS=1), faisant passer l’orchestration multi-agent déterministe de scripts purement userland vers une primitive runtime de première partie ; la v2.1.149 renforce la même leçon côté sécurité, avec des correctifs de contournement des permissions PowerShell et un correctif d’allowlist pour le sandbox git-worktree. Les hooks et les evidence gates restent responsables de la correction.5253 Ce guide couvre chaque couche de cette pile : d’un hook unique à un système de consensus à 10 agents. Aucun framework requis. Tout en bash et JSON.
Andrej Karpathy a forgé un terme pour ce qui se développe autour d’un agent LLM : claws. Les hooks, scripts et mécanismes d’orchestration qui permettent à l’agent de saisir le monde au-delà de sa fenêtre de contexte.1 La plupart des développeurs considèrent les agents de codage IA comme des assistants interactifs. Ils saisissent un prompt, le regardent modifier un fichier, puis passent à autre chose. Ce cadrage limite la productivité à ce que vous pouvez superviser personnellement.
Le modèle mental d’infrastructure est différent : un agent de codage IA est un runtime programmable avec un noyau LLM. Chaque action effectuée par le modèle passe par des hooks que vous contrôlez. Vous définissez des politiques, pas des prompts. Le modèle opère au sein de votre infrastructure de la même manière qu’un serveur web opère avec des règles nginx. Vous ne restez pas devant nginx à taper des requêtes. Vous le configurez, le déployez et le surveillez.
Cette distinction compte, car l’infrastructure produit des effets composés. Un hook qui bloque les identifiants dans les commandes bash protège chaque session, chaque agent, chaque exécution autonome. Un skill qui encode votre grille d’évaluation s’applique de façon cohérente, que vous l’invoquiez vous-même ou qu’un agent le fasse. Un agent qui relit le code sous l’angle de la sécurité exécute les mêmes contrôles, que vous soyez en train de regarder ou non.2
Points clés
- Les hooks garantissent l’exécution ; les prompts ne le font pas. Utilisez les hooks pour le linting, le formatage, les contrôles de sécurité et tout ce qui doit s’exécuter à chaque fois, quel que soit le comportement du modèle. Le code de sortie 2 bloque les actions. Le code de sortie 1 se contente d’avertir.3
- Les skills encodent une expertise métier qui s’active automatiquement. Le champ
descriptiondétermine tout. Claude utilise le raisonnement LLM (et non une correspondance par mots-clés) pour décider quand appliquer un skill.4 - Les subagents évitent le gonflement du contexte. Des fenêtres de contexte isolées pour l’exploration et l’analyse gardent la session principale légère. Exécutez des subagents indépendants en parallèle, et utilisez des équipes d’agents lorsque les workers ont besoin d’une coordination durable.5
- La mémoire vit dans le système de fichiers. Les fichiers persistent au-delà des fenêtres de contexte. CLAUDE.md, MEMORY.md, les dossiers de règles et les documents de passation forment un système structuré de mémoire externe.6
- La délibération multi-agent repère les angles morts. Les agents seuls ne peuvent pas remettre en question leurs propres hypothèses. Deux agents indépendants avec des priorités d’évaluation différentes détectent des défaillances structurelles que les quality gates ne peuvent pas traiter.7
- Le harness pattern est le système. CLAUDE.md, hooks, skills, agents et mémoire ne sont pas des fonctionnalités indépendantes. Ils se composent en une couche déterministe entre vous et le modèle, qui passe à l’échelle avec l’automatisation.
Comment utiliser ce guide
| Expérience | Commencer ici | Puis explorer |
|---|---|---|
| Vous utilisez Claude Code au quotidien et voulez aller plus loin | Le Harness Pattern | Système de skills, Architecture des hooks |
| Vous construisez des workflows autonomes | Patterns de subagents | Orchestration multi-agent, Patterns de production |
| Vous évaluez une architecture d’agents | Pourquoi l’architecture d’agents compte | Cadre de décision, Considérations de sécurité |
| Vous mettez en place un team harness | Conception de CLAUDE.md | Architecture des hooks, Fiche de référence rapide |
Chaque section s’appuie sur la précédente. Le Cadre de décision, à la fin, fournit un tableau de correspondance pour choisir le bon mécanisme selon chaque type de problème.
Chemin d’or en cinq minutes
Avant la plongée en profondeur, voici le chemin le plus court entre zéro et un harness opérationnel. Un hook, un skill, un subagent, un résultat.
Étape 1 : Créer un hook de sécurité (2 minutes)
Créez .claude/hooks/block-secrets.sh :
#!/bin/bash
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
if echo "$CMD" | grep -qEi '(AKIA|sk-|ghp_|password=)'; then
echo "BLOCKED: Potential secret in command" >&2
exit 2
fi
Branchez-le dans .claude/settings.json :
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": ".claude/hooks/block-secrets.sh" }]
}
]
}
}
Résultat : chaque commande bash que Claude exécute est désormais passée au crible pour détecter les identifiants divulgués. Le modèle ne peut pas contourner cette vérification.
Étape 2 : Créer un skill de revue de code (1 minute)
Créez .claude/skills/reviewer/SKILL.md avec un frontmatter (name: reviewer, description: Review code for security issues, bugs, and quality problems. Use when examining changes, reviewing PRs, or auditing code., allowed-tools: Read, Grep, Glob) et une checklist : injection SQL, XSS, secrets codés en dur, gestion d’erreurs manquante, fonctions de plus de 50 lignes.
Résultat : Claude active automatiquement cette expertise dès que vous mentionnez revue, vérification ou audit.
Étape 3 : Lancer un subagent (30 secondes)
Dans n’importe quelle session Claude Code, demandez à Claude de passer en revue les 3 derniers commits à la recherche de problèmes de sécurité en utilisant un agent séparé. Claude lance un Explore agent qui lit le diff, applique votre skill de revue et renvoie un résumé. Votre contexte principal reste propre.
Ce que vous avez maintenant
Un harness à trois couches : une porte de sécurité déterministe (hook), une expertise métier qui s’active automatiquement (skill) et une analyse isolée qui protège votre contexte (subagent). Chaque section ci-dessous développe l’une de ces trois couches.
Pourquoi l’architecture d’agents est importante
Simon Willison cadre le moment présent autour d’une seule observation : écrire du code ne coûte plus rien aujourd’hui.8 Exact. Mais le corollaire, c’est que la vérification est désormais la partie coûteuse. Du code bon marché dépourvu d’infrastructure de vérification produit des bugs à grande échelle. L’investissement qui paie n’est pas un meilleur prompt. C’est le système autour du modèle qui rattrape ce que le modèle laisse passer.
Trois forces rendent l’architecture d’agents nécessaire :
Les fenêtres de contexte sont finies et lacunaires. Chaque lecture de fichier, sortie d’outil et tour de conversation consomme des tokens. Microsoft Research et Salesforce ont testé 15 LLMs sur plus de 200 000 conversations simulées et ont constaté une baisse de performance moyenne de 39 % entre les interactions à un seul tour et les interactions multi-tours.9 La dégradation commence dès deux tours et suit une courbe prévisible : des modifications précises multi-fichiers lors des 30 premières minutes dégénèrent en vision tunnel sur un seul fichier dès la 90ᵉ minute. Des fenêtres de contexte plus longues ne résolvent pas ce problème. La condition « Concat » de la même étude (conversation complète en tant que prompt unique) atteint 95,1 % des performances à un seul tour avec un contenu identique. La dégradation vient des frontières entre tours, pas des limites de tokens.
Le comportement du modèle est probabiliste, pas déterministe. Dire à Claude « exécute toujours Prettier après avoir édité des fichiers » fonctionne environ 80 % du temps.3 Le modèle peut oublier, privilégier la rapidité ou décider que le changement est « trop petit ». Pour la conformité, la sécurité et les standards d’équipe, 80 % n’est pas acceptable. Les hooks garantissent l’exécution : chaque Edit ou Write déclenche votre formateur, à chaque fois, sans exception. Le déterministe l’emporte sur le probabiliste.
Les perspectives uniques passent à côté des problèmes multidimensionnels. Un agent seul chargé de passer en revue un endpoint API vérifiait l’authentification, validait l’assainissement des entrées et vérifiait les en-têtes CORS. Diagnostic clean. Un second agent, sollicité séparément en tant que testeur d’intrusion, a découvert que l’endpoint acceptait des paramètres de requête non bornés pouvant déclencher un déni de service via amplification de requêtes en base de données.7 Le premier agent n’a jamais vérifié ce point parce que rien dans son cadre d’évaluation ne traitait la complexité des requêtes comme une surface de sécurité. Cette lacune est structurelle. Aucune quantité de prompt engineering ne la corrige.
L’architecture d’agents répond à ces trois enjeux : les hooks imposent des contraintes déterministes, les subagents gèrent l’isolation du contexte et l’orchestration multi-agents fournit des perspectives indépendantes. Ensemble, ils forment le harness.
Le pattern du harness
Le harness n’est pas un framework. C’est un pattern : un ensemble composable de fichiers, scripts et conventions qui enveloppe un agent de codage IA dans une infrastructure déterministe. Les composants :
┌──────────────────────────────────────────────────────────────┐
│ THE HARNESS PATTERN │
├──────────────────────────────────────────────────────────────┤
│ ORCHESTRATION │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐ │
│ │ Agent │ │ Agent │ │ Consensus │ │
│ │ Teams │ │ Spawning │ │ Validation│ │
│ └────────────┘ └────────────┘ └────────────┘ │
│ Multi-agent deliberation, parallel research, voting │
├──────────────────────────────────────────────────────────────┤
│ EXTENSION LAYER │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Skills │ │ Hooks │ │ Memory │ │ Agents │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ Domain expertise, deterministic gates, persistent state, │
│ specialized subagents │
├──────────────────────────────────────────────────────────────┤
│ INSTRUCTION LAYER │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ CLAUDE.md + .claude/rules/ + MEMORY.md │ │
│ └──────────────────────────────────────────────────────┘ │
│ Project context, operational policy, cross-session memory │
├──────────────────────────────────────────────────────────────┤
│ CORE LAYER │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Main Conversation Context (LLM) │ │
│ └──────────────────────────────────────────────────────┘ │
│ Your primary interaction; finite context; costs money │
└──────────────────────────────────────────────────────────────┘
Couche d’instruction : les fichiers CLAUDE.md et les répertoires de règles définissent ce que l’agent sait de votre projet. Ils se chargent automatiquement au démarrage de la session et après chaque compaction. C’est la mémoire architecturale à long terme de l’agent.
Couche d’extension : les skills fournissent une expertise métier qui s’active automatiquement selon le contexte. Les hooks fournissent des portes déterministes qui se déclenchent à chaque appel d’outil correspondant. Les fichiers de mémoire conservent l’état entre les sessions. Les agents personnalisés fournissent des configurations de subagents spécialisés.
Couche d’orchestration : les patterns multi-agents coordonnent des agents indépendants pour la recherche, la revue et la délibération. Les budgets de spawn empêchent la récursion incontrôlée. La validation par consensus garantit la qualité.
L’idée clé : la plupart des utilisateurs travaillent entièrement dans la couche centrale, voyant le contexte gonfler et les coûts grimper. Les utilisateurs avancés configurent les couches d’instruction et d’extension, puis n’utilisent la couche centrale que pour l’orchestration et les décisions finales.2
Harness gérés vs auto-hébergés (avril 2026)
Tout au long du début 2026, la voie « construisez votre propre harness » était la seule option réelle. En avril 2026, cela a changé. Anthropic a livré Claude Managed Agents en bêta publique (8 avril) : boucle du harness + exécution des outils + conteneur sandbox + persistance d’état sous forme de API REST, facturé au tarif standard des tokens plus 0,08 $/heure-session. La mise à jour Agents SDK d’OpenAI (16 avril) a formalisé la même séparation — harness et calcul comme couches distinctes, avec des fournisseurs de sandbox natifs (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel) et snapshot/rehydrate pour survivre à la perte de conteneur.2324
La surface SDK plus profonde côté OpenAI a atterri dans openai-agents Python v0.14.0 (publié le 15 avril 2026 ; annoncé le 16 avril) : une sous-classe SandboxAgent de Agent avec default_manifest, instructions de sandbox et capacités ; un Manifest décrivant le contrat de workspace vierge (fichiers, dossiers, fichiers locaux, dépôts Git, env, utilisateurs, mounts) ; un SandboxRunConfig pour le câblage par exécution du client sandbox, l’injection de session live, les surcharges de manifest, les snapshots et les limites de concurrence de matérialisation. Les capacités intégrées couvrent l’accès au shell, l’édition du système de fichiers, l’inspection d’images, les skills, la mémoire de sandbox et la compaction. La mémoire de sandbox conserve les leçons extraites entre les exécutions et les divulgue progressivement ; les workspaces prennent en charge les fichiers locaux, les entrées de dépôt Git et les mounts distants (S3, R2, GCS, Azure Blob, S3 Files) ; les snapshots sont portables entre fournisseurs. Backends : UnixLocalSandboxClient, DockerSandboxClient, et des clients hébergés pour Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop et Vercel via des extras optionnels.24
Pour les projets Python qui veulent embarquer le runtime Claude Code comme bibliothèque — entre « shell out vers claude » et « API REST vers Managed Agents » — claude-agent-sdk-python est la troisième option. La série du 28-29 avril (v0.1.69 → v0.1.71) a fait passer le CLI embarqué à v2.1.123, relevé le plancher de la dépendance mcp à >=1.19.0 (les versions plus anciennes supprimaient silencieusement les retours CallToolResult des outils MCP in-process, laissant le modèle avec un blob d’erreur de validation), et amené SandboxNetworkConfig à la parité de schéma avec le SDK TypeScript (allowedDomains, deniedDomains, allowManagedDomainsOnly, allowMachLookup).30
Si votre harness inclut une couche vocale ou temps réel, openai-agents-python v0.17.0 (8 mai 2026) a mis à jour RealtimeAgent pour utiliser par défaut gpt-realtime-2.41 Les sessions temps réel existantes adoptent automatiquement le nouveau défaut ; épinglez explicitement le modèle précédent si vous devez maintenir l’ancien comportement pour évaluation.
La bifurcation architecturale est désormais réelle :
| Dimension | Harness auto-hébergé (défaut de ce guide) | Harness géré (Claude Managed Agents / OpenAI Agents SDK) |
|---|---|---|
| Charge opérationnelle | Vous gérez tout | Le fournisseur gère la boucle, la sandbox, l’état |
| Personnalisation | Totale — vos hooks, vos skills, votre mémoire | Limitée — points d’extension définis par le fournisseur |
| Modèle de coût | Tokens + calcul auto-hébergé | Tokens + supplément à l’heure d’exécution |
| Durabilité de l’état | Vous la concevez | Le fournisseur effectue des checkpoints à travers les déconnexions |
| Orchestration d’équipes d’agents | Construisez la vôtre | Coordination multi-agents fournie par le fournisseur |
Quand choisir lequel : l’auto-hébergé reste pertinent pour les équipes qui disposent déjà d’une force d’infrastructure, qui veulent des skills/hooks qu’elles contrôlent, ou qui optimisent un workflow spécifique en profondeur. Le géré convient aux équipes sans ingénieurs plateforme dédiés, lorsque le délai de mise en valeur compte plus que la personnalisation, ou lorsque les exécutions d’agents doivent survivre de manière fiable aux fermetures d’ordinateurs portables sans que vous ayez à construire cette couche de persistance. Les deux sont compatibles — vous pouvez exécuter un harness auto-hébergé qui délègue certaines tâches longues à Managed Agents via son API REST.
À quoi ressemble le harness sur disque
~/.claude/
├── CLAUDE.md # Personal global instructions
├── settings.json # User-level hooks and permissions
├── skills/ # Personal skills (44+)
│ ├── code-reviewer/SKILL.md
│ ├── security-auditor/SKILL.md
│ └── api-designer/SKILL.md
├── agents/ # Custom subagent definitions
│ ├── security-reviewer.md
│ └── code-explorer.md
├── rules/ # Categorized rule files
│ ├── security.md
│ ├── testing.md
│ └── git-workflow.md
├── hooks/ # Hook scripts
│ ├── validate-bash.sh
│ ├── auto-format.sh
│ └── recursion-guard.sh
├── configs/ # JSON configuration
│ ├── recursion-limits.json
│ └── deliberation-config.json
├── state/ # Runtime state
│ ├── recursion-depth.json
│ └── agent-lineage.json
├── handoffs/ # Session handoff documents
│ └── deliberation-prd-7.md
└── projects/ # Per-project memory
└── {project}/memory/MEMORY.md
.claude/ # Project-level (in repo)
├── CLAUDE.md # Project instructions
├── settings.json # Project hooks
├── skills/ # Team-shared skills
├── agents/ # Team-shared agents
└── rules/ # Project rules
Chaque fichier de cette structure a un rôle. L’arborescence ~/.claude/ est l’infrastructure personnelle qui s’applique à tous les projets. L’arborescence .claude/ dans chaque dépôt est spécifique au projet et partagée via git. Ensemble, elles forment le harness complet.
Système de skills
Les skills sont des extensions invoquées par le modèle. Claude les découvre et les applique automatiquement selon le contexte, sans que vous ayez à les appeler explicitement.4 Dès que vous vous surprenez à réexpliquer le même contexte d’une session à l’autre, c’est le moment de créer un skill.
Quand créer un skill
| Situation | Créer un… | Pourquoi |
|---|---|---|
| Vous collez la même checklist à chaque session | Skill | Expertise de domaine qui s’active automatiquement |
| Vous exécutez explicitement la même séquence de commandes | Slash command | Action invoquée par l’utilisateur avec un déclencheur prévisible |
| Vous avez besoin d’une analyse isolée qui ne doit pas polluer le contexte | Subagent | Fenêtre de contexte séparée pour un travail ciblé |
| Vous avez besoin d’un prompt ponctuel avec des instructions spécifiques | Rien | Tapez-le simplement. Tout n’a pas besoin d’une abstraction. |
Les skills servent à représenter des connaissances que Claude a toujours à disposition. Les slash commands servent aux actions que vous déclenchez explicitement. Si vous hésitez entre les deux, posez-vous la question : « Claude doit-il appliquer cela automatiquement, ou dois-je décider quand l’exécuter ? »
Créer un skill
Les skills peuvent se trouver à quatre emplacements, du périmètre le plus large au plus restreint :4
| Périmètre | Emplacement | S’applique à |
|---|---|---|
| Entreprise | Paramètres gérés | Tous les utilisateurs de l’organisation |
| Personnel | ~/.claude/skills/<name>/SKILL.md |
Tous vos projets |
| Projet | .claude/skills/<name>/SKILL.md |
Ce projet uniquement |
| Plugin | <plugin>/skills/<name>/SKILL.md |
Là où le plugin est activé |
Chaque skill nécessite un fichier SKILL.md avec un frontmatter YAML :
---
name: code-reviewer
description: Review code for security vulnerabilities, performance issues,
and best practice violations. Use when examining code changes, reviewing
PRs, analyzing code quality, or when asked to review, audit, or check code.
allowed-tools: Read, Grep, Glob
---
# Code Review Expertise
## Security Checks
When reviewing code, verify:
### Input Validation
- All user input sanitized before database operations
- Parameterized queries (no string interpolation in SQL)
- Output encoding for rendered HTML content
### Authentication
- Session tokens validated on every protected endpoint
- Permission checks before data mutations
- No hardcoded credentials or API keys in source
Référence du frontmatter
| Champ | Obligatoire | Objectif |
|---|---|---|
name |
Oui | Identifiant unique (minuscules, traits d’union, 64 caractères max.) |
description |
Oui | Déclencheur de découverte (1024 caractères max.). Claude l’utilise pour décider quand appliquer le skill |
allowed-tools |
Non | Restreindre les capacités de Claude (par ex. Read, Grep, Glob en lecture seule) |
disable-model-invocation |
Non | Empêche l’activation automatique ; le skill ne s’active que via /skill-name |
user-invocable |
Non | Définissez false pour le masquer entièrement du menu / |
model |
Non | Remplacer le modèle à utiliser lorsque le skill est actif |
context |
Non | Définir sur fork pour l’exécuter dans une fenêtre de contexte isolée |
agent |
Non | Exécuter comme subagent avec son propre contexte isolé |
hooks |
Non | Définir des hooks de cycle de vie limités à ce skill |
$ARGUMENTS |
Non | Substitution de chaîne : remplacée par la saisie de l’utilisateur après /skill-name |
Le champ Description est déterminant
Au démarrage de la session, Claude Code extrait le name et la description de chaque skill et les injecte dans le contexte de Claude. Lorsque vous envoyez un message, Claude utilise le raisonnement du modèle de langage pour décider si un skill est pertinent. Une analyse indépendante de la source de Claude Code confirme le mécanisme : les descriptions des skills sont injectées dans une section available_skills du prompt système, et le modèle utilise la compréhension du langage standard pour sélectionner les skills pertinents.10
Mauvaise description :
description: Helps with code
Description efficace :
description: Review code for security vulnerabilities, performance issues,
and best practice violations. Use when examining code changes, reviewing
PRs, analyzing code quality, or when asked to review, audit, or check code.
La description efficace inclut : ce qu’elle fait (examiner le code pour des types de problèmes spécifiques), quand l’utiliser (examen de changements, PRs, analyse qualité), et les expressions déclencheuses (review, audit, check) que les utilisateurs tapent naturellement.
Budget de contexte
Toutes les descriptions de skills partagent un budget de contexte qui s’adapte dynamiquement à 1 % de la fenêtre de contexte, avec un fallback de 8 000 caractères.4 Si vous avez beaucoup de skills, gardez chaque description concise et placez le cas d’usage clé en premier. Vous pouvez remplacer le budget via la variable d’environnement SLASH_COMMAND_TOOL_CHAR_BUDGET,11 mais la meilleure correction consiste à rédiger des descriptions plus courtes et plus précises. Exécutez /context pendant une session pour vérifier si certains skills sont exclus.
Fichiers de support et organisation
Les skills peuvent référencer des fichiers supplémentaires dans le même répertoire :
~/.claude/skills/code-reviewer/
├── SKILL.md # Required: frontmatter + core expertise
├── SECURITY_PATTERNS.md # Referenced: detailed vulnerability patterns
└── PERFORMANCE_CHECKLIST.md # Referenced: optimization guidelines
Référencez-les depuis SKILL.md avec des liens relatifs. Claude lit ces fichiers à la demande lorsque le skill s’active. Gardez SKILL.md sous 500 lignes et déplacez les éléments de référence détaillés vers des fichiers de support.12
Partager des skills via Git
Les skills de projet (.claude/skills/ à la racine du repo) sont partagés via le contrôle de version :4
mkdir -p .claude/skills/domain-expert
# ... write SKILL.md ...
git add .claude/skills/
git commit -m "feat: add domain-expert skill for payment processing rules"
git push
Lorsque les coéquipiers pull, ils obtiennent automatiquement le skill. Aucune installation, aucune configuration. C’est la façon la plus efficace de standardiser l’expertise dans une équipe.
Les skills comme bibliothèque de prompts
Au-delà des skills à objectif unique, la structure de dossiers fonctionne comme une bibliothèque de prompts organisée :
~/.claude/skills/
├── code-reviewer/ # Activates on: review, audit, check
├── api-designer/ # Activates on: design API, endpoint, schema
├── sql-analyst/ # Activates on: query, database, migration
├── deploy-checker/ # Activates on: deploy, release, production
└── incident-responder/ # Activates on: error, failure, outage, debug
Chaque skill encode une facette différente de votre expertise. Ensemble, ils forment une base de connaissances dans laquelle Claude puise automatiquement selon le contexte. Un développeur junior reçoit des conseils de niveau senior sans avoir à les demander.
Les skills se composent avec les hooks
Les skills peuvent définir leurs propres hooks dans le frontmatter, activés uniquement pendant l’exécution du skill. Cela crée un comportement propre au domaine qui ne pollue pas les autres sessions :2
---
name: deploy-checker
description: Verify deployment readiness. Use when preparing to deploy,
release, or push to production.
hooks:
PreToolUse:
- matcher: Bash
hooks:
- type: command
command: "bash -c 'INPUT=$(cat); CMD=$(echo \"$INPUT\" | jq -r \".tool_input.command\"); if echo \"$CMD\" | grep -qE \"deploy|release|publish\"; then echo \"DEPLOYMENT COMMAND DETECTED. Running pre-flight checks.\" >&2; fi'"
---
Les skills de philosophie s’activent automatiquement via des hooks SessionStart, injectant des contraintes qualité dans chaque session sans invocation explicite. Le skill lui-même est la connaissance. Le hook est l’application. Ensemble, ils forment une couche de politique.
Erreurs courantes avec les skills
Descriptions trop larges. Un skill git-rebase-helper qui s’active sur n’importe quel prompt lié à git (rebases, merges, cherry-picks, même git status) pollue le contexte dans 80 % des sessions. La correction consiste soit à resserrer la description, soit à ajouter disable-model-invocation: true et à exiger une invocation explicite via /skill-name.4
Trop de skills en concurrence pour le budget. Davantage de skills signifie davantage de descriptions en concurrence pour le budget de contexte de 1 %. Si vous remarquez que des skills ne s’activent pas, vérifiez /context pour voir ceux qui sont exclus. Privilégiez moins de skills, mais bien décrits, plutôt que de nombreux skills vagues.
Informations critiques enfouies dans des fichiers de support. Claude lit SKILL.md immédiatement, mais n’accède aux fichiers de support qu’en cas de besoin. Si des informations critiques se trouvent dans un fichier de support, Claude pourrait ne pas les trouver. Placez les informations essentielles directement dans SKILL.md.4
Surface de skill SDK (8 mai 2026)
Les harnesses auto-hébergés sur claude-agent-sdk-python v0.1.77+ doivent utiliser l’option skills sur ClaudeAgentOptions pour déclarer les skills disponibles, et non l’ancienne valeur "Skill" dans allowed_tools.37 Le raccourci "Skill" est déprécié, et l’option dédiée donne à Claude Code des informations plus structurées sur les skills disponibles. Le CLI intégré dans la v0.1.77 est v2.1.133.
Convergence des plugins et skills dans .claude/skills/ (29 mai 2026)
Les skills ont toujours été chargés depuis le dossier .claude/skills/ d’un projet. Claude Code v2.1.157 étend ce dossier aux plugins : un plugin placé dans .claude/skills/ se charge désormais automatiquement sans enregistrement marketplace, et claude plugin init <name> y échafaude un nouveau plugin avec le manifest et SKILL.md déjà câblés.58 Cela comble l’écart entre les deux formes de project-tooling qui vivaient auparavant à des endroits différents : un skill nu commité directement dans le repo, contre un plugin qui regroupe un skill, des hooks et un serveur MCP, mais nécessitait auparavant une marketplace pour être installé. Effet pratique pour la conception de harness : les outils limités au projet n’ont plus besoin d’un détour par un registre pour être livrés : écrivez-les, commitez-les, et les coéquipiers obtiennent la même surface avec git pull. Les plugins conservent le cas d’usage de l’installation groupée (hooks + skills + serveurs MCP + agents dans un seul ZIP) ; ce qui change, c’est qu’un projet n’a plus besoin de monter une marketplace simplement pour en charger un depuis son propre arbre.
Masquer la surface intégrée comme gouvernance (8 juin 2026)
Les skills sont une capacité, et toute capacité est une surface d’attaque. Claude Code v2.1.169 ajoute un paramètre disableBundledSkills (et la variable d’environnement correspondante CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) qui masque entièrement au modèle les skills intégrés, les workflows et les slash commands intégrées.60 Pour un harness durci ou réglementé, c’est une réduction volontaire de la surface d’attaque : un opérateur qui a audité et approuvé un ensemble précis de skills de projet et personnels peut supprimer tout ce que Anthropic fournit par défaut, de sorte que le modèle ne raisonne jamais que sur la surface validée par l’opérateur. Traitez cela comme une allowlist d’outils : par défaut, la capacité est large, et désactiver ce défaut relève d’une décision de gouvernance, pas d’un simple réglage de confort.
.claude/skills imbriqués et résolution par proximité (16 juin 2026)
Claude Code v2.1.178 a rendu le project tooling sensible à l’emplacement. Les skills dans des dossiers .claude/skills imbriqués se chargent désormais lorsque vous travaillez sur des fichiers sous ce dossier, et plus seulement depuis la racine du repo ; en cas de conflit de nom, le skill imbriqué apparaît sous la forme <dir>:<name>, ce qui permet aux deux de rester accessibles.63 La même version a fait en sorte que le reste de la surface projet se résolve au plus proche du dossier de travail : lorsqu’un nom d’agent, de workflow ou de style de sortie entre en collision entre plusieurs dossiers .claude/ imbriqués, celui qui est le plus proche du dossier de travail l’emporte, et l’enregistrement d’un workflow à périmètre projet cible le dossier .claude/workflows/ existant le plus proche au lieu de toujours viser la racine.63 Pour un monorepo ou un repo-de-repos, c’est la différence entre une surface globale plate et un outillage par package qui s’active en contexte : un services/api/.claude/skills/ peut porter des skills spécifiques à API qui n’apparaissent que lorsque vous travaillez dans cet arbre, sans entrer en collision avec un skill services/web/ du même nom.
Architecture des hooks
Les hooks sont des commandes shell déclenchées par les événements de cycle de vie Claude Code.3 Ils s’exécutent en dehors de LLM sous forme de scripts ordinaires, pas de prompts interprétés par le modèle. Le modèle veut exécuter rm -rf / ? Un script bash de 10 lignes vérifie la commande par rapport à une liste de blocage et la rejette avant même que le shell ne la voie. Le hook se déclenche, que le modèle le veuille ou non.
Événements disponibles
Claude Code expose 29 événements de cycle de vie documentés dans huit catégories à la date de cette mise à jour du guide. La liste des événements s’enrichit au fil des versions ; considérez donc la documentation de référence comme la source de vérité et consultez la fiche mémo pour le tableau complet actuel avant de câbler des hooks de production :13
| Catégorie | Événements | Peut bloquer ? |
|---|---|---|
| Session | SessionStart, Setup, SessionEnd |
Non |
| Utilisateur / complétion | UserPromptSubmit, UserPromptExpansion, Stop, StopFailure, TeammateIdle |
Prompt/expansion/stop/idle peuvent bloquer ; StopFailure ne peut pas |
| Tool | PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch |
Pre/permission/batch peuvent bloquer ; les événements post ne peuvent pas |
| Subagent / tâche | SubagentStart, SubagentStop, TaskCreated, TaskCompleted |
Les événements stop/tâche peuvent bloquer ; start ne peut pas |
| Contexte | PreCompact, PostCompact, InstructionsLoaded |
PreCompact peut bloquer ; post/load ne peuvent pas |
| Système de fichiers / workspace | CwdChanged, FileChanged, WorktreeCreate, WorktreeRemove |
La création de worktree peut bloquer ; les autres ne peuvent pas |
| Configuration / notification | ConfigChange, Notification |
Les changements de configuration peuvent bloquer, sauf les paramètres de politique ; les notifications ne peuvent pas |
| MCP | Elicitation, ElicitationResult |
Oui |
Sémantique des codes de sortie
Les codes de sortie déterminent si les hooks bloquent les actions :3
| Code de sortie | Signification | Action |
|---|---|---|
| 0 | Réussite | L’opération continue. Stdout affiché en mode verbeux. |
| 2 | Erreur bloquante | L’opération s’arrête. Stderr devient le message d’erreur transmis à Claude. |
| 1, 3, etc. | Erreur non bloquante | L’opération continue. Stderr affiché uniquement en mode verbeux (Ctrl+O). |
Critique : chaque hook de sécurité doit utiliser exit 2, pas exit 1. Exit 1 est un avertissement non bloquant. La commande dangereuse s’exécute quand même. C’est l’erreur de hook la plus fréquente dans les équipes.14
Configuration des hooks
Les hooks vivent dans des fichiers de paramètres. Niveau projet (.claude/settings.json) pour les hooks partagés. Niveau utilisateur (~/.claude/settings.json) pour les hooks personnels :
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/validate-bash.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; fi'"
}
]
}
]
}
}
Le champ matcher filtre une valeur propre à l’événement. Pour les événements de tool, il correspond à des valeurs tool_name comme Bash, Edit, Write, Read, Glob, Grep, des noms de tools MCP comme mcp__server__tool, ou * pour tous les tools. Les noms simples et les listes séparées par | sont des correspondances exactes ; les valeurs contenant d’autres caractères sont des expressions régulières JavaScript. Certains événements ne prennent pas en charge les matchers et se déclenchent toujours lorsqu’ils sont configurés.13
Protocole d’entrée/sortie des hooks
Les hooks reçoivent du JSON sur stdin avec le contexte complet :
{
"tool_name": "Bash",
"tool_input": {
"command": "npm test",
"description": "Run test suite"
},
"session_id": "abc-123",
"agent_id": "main",
"agent_type": "main"
}
Pour un contrôle avancé, les hooks PreToolUse peuvent produire du JSON afin de modifier l’entrée du tool, injecter du contexte ou prendre des décisions de permission. Utilisez l’enveloppe hookSpecificOutput — l’ancien format de premier niveau decision/reason est déprécié pour PreToolUse :
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow",
"permissionDecisionReason": "Command validated and modified",
"updatedInput": {
"command": "npm test -- --coverage --ci"
},
"additionalContext": "Note: This database has a 5-second query timeout."
}
}
Trois types de garanties
Avant d’écrire un hook, demandez-vous : de quel type de garantie ai-je besoin ?14
Les garanties de formatage assurent la cohérence a posteriori. Les hooks PostToolUse sur Write/Edit exécutent votre formateur après chaque changement de fichier. La sortie du modèle importe peu, puisque le formateur normalise tout.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "bash -c 'if [[ \"$FILE_PATH\" == *.py ]]; then black --quiet \"$FILE_PATH\" 2>/dev/null; elif [[ \"$FILE_PATH\" == *.js ]] || [[ \"$FILE_PATH\" == *.ts ]]; then npx prettier --write \"$FILE_PATH\" 2>/dev/null; fi'"
}
]
}
]
}
}
Les garanties de sécurité empêchent les actions dangereuses avant leur exécution. Les hooks PreToolUse sur Bash inspectent les commandes et bloquent les motifs destructeurs avec le code de sortie 2 :
#!/bin/bash
# validate-bash.sh — block dangerous commands
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')
if echo "$CMD" | grep -qE "rm\s+-rf\s+/|git\s+push\s+(-f|--force)\s+(origin\s+)?main|git\s+reset\s+--hard|DROP\s+TABLE"; then
echo "BLOCKED: Dangerous command detected: $CMD" >&2
exit 2
fi
Les garanties de qualité valident l’état aux points de décision. Les hooks PreToolUse sur les commandes git commit exécutent votre linter ou votre suite de tests et bloquent le commit si les contrôles qualité échouent :
#!/bin/bash
# quality-gate.sh — lint before commit
INPUT=$(cat)
CMD=$(echo "$INPUT" | jq -r '.tool_input.command')
if echo "$CMD" | grep -qE "^git\s+commit"; then
if ! LINT_OUTPUT=$(ruff check . --select E,F,W 2>&1); then
echo "LINT FAILED -- fix before committing:" >&2
echo "$LINT_OUTPUT" >&2
exit 2
fi
fi
Types de hooks au-delà des commandes shell
Claude Code prend en charge cinq types de hooks :13
Les command hooks (type: "command") exécutent des scripts shell. Rapides, déterministes, sans coût en tokens.
Les hooks de tool MCP (type: "mcp_tool") appellent un tool sur un serveur MCP déjà connecté. Utilisez-les lorsque la logique de validation existe déjà derrière une frontière MCP et ne nécessite pas de script shell séparé.
Les prompt hooks (type: "prompt") envoient un prompt à tour unique à un modèle Claude rapide. Le modèle renvoie { "ok": true } pour autoriser ou { "ok": false, "reason": "..." } pour bloquer. À utiliser pour les évaluations nuancées qu’une regex ne peut pas exprimer.
Les agent hooks (type: "agent") lancent un subagent avec accès aux tools (Read, Grep, Glob) pour une vérification multi-tour. Ils sont expérimentaux ; privilégiez les command hooks pour les gates de production et réservez les agent hooks aux contrôles qui nécessitent réellement d’inspecter des fichiers ou une sortie de test :
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "agent",
"prompt": "Verify all unit tests pass. Run the test suite and check results. $ARGUMENTS",
"timeout": 120
}
]
}
]
}
}
Depuis Claude Code v2.1.140, l’entrée des agent hooks inclut subagent_type, ce qui permet à un hook partagé de distinguer une exécution security-reviewer d’un explorer ou d’un worker générique sans deviner à partir du texte du prompt.49
Les HTTP hooks (type: "http") envoient l’entrée JSON de l’événement sous forme de requête POST vers une URL et reçoivent du JSON en retour. À utiliser pour les webhooks, les services de notification externes ou la validation basée sur API (v2.1.63+). Non pris en charge pour les événements SessionStart :
{
"hooks": {
"PostToolUse": [
{
"hooks": [
{
"type": "http",
"url": "https://your-webhook.example.com/hook",
"headers": { "Authorization": "Bearer $WEBHOOK_TOKEN" },
"allowedEnvVars": ["WEBHOOK_TOKEN"],
"timeout": 10
}
]
}
]
}
}
Hooks asynchrones
Les hooks peuvent s’exécuter en arrière-plan sans bloquer l’exécution. Ajoutez async: true pour les opérations non critiques comme les notifications et la journalisation :13
{
"type": "command",
"command": ".claude/hooks/notify-slack.sh",
"async": true
}
Utilisez l’asynchrone pour les notifications, la télémétrie et les sauvegardes. N’utilisez jamais l’asynchrone pour le formatage, la validation ou quoi que ce soit qui doit se terminer avant l’action suivante.
Dispatchers plutôt que hooks indépendants
Lancer sept hooks qui se déclenchent tous sur le même événement, chacun lisant stdin indépendamment, crée des conditions de concurrence. Deux hooks écrivant simultanément dans le même fichier d’état JSON tronqueront le JSON. Chaque hook aval qui analyse ce fichier casse.2
La solution : un dispatcher par événement qui exécute les hooks séquentiellement depuis stdin mis en cache :
#!/bin/bash
# dispatcher.sh — run hooks sequentially with cached stdin
INPUT=$(cat)
HOOK_DIR="$HOME/.claude/hooks/pre-tool-use.d"
for hook in "$HOOK_DIR"/*.sh; do
[ -x "$hook" ] || continue
echo "$INPUT" | "$hook"
EXIT_CODE=$?
if [ "$EXIT_CODE" -eq 2 ]; then
exit 2 # Propagate block
fi
done
Déboguer les hooks
Cinq techniques pour déboguer les hooks qui échouent silencieusement :14
- Testez les scripts indépendamment. Pipez un exemple de JSON :
echo '{"tool_input":{"command":"git commit -m test"}}' | bash your-hook.sh - Utilisez stderr pour la sortie de débogage. Le stderr du code de sortie 2 est renvoyé à Claude comme message d’erreur. Le stderr non bloquant (exit 1, 3, etc.) apparaît uniquement en mode verbeux (Ctrl+O).
- Surveillez les échecs de jq. Les mauvais chemins JSON renvoient
nullsilencieusement. Testez les expressionsjqavec une vraie entrée de tool. - Vérifiez les codes de sortie. Un hook PreToolUse qui utilise
exit 1n’applique aucune contrainte tout en semblant fonctionner. - Gardez les hooks rapides. Les hooks s’exécutent de manière synchrone. Gardez tous les hooks sous 2 secondes, idéalement sous 500 ms.
Streaming d’événements de hook côté SDK
Les harnesses auto-hébergés construits sur claude-agent-sdk-python (v0.1.74+, 6 mai 2026) peuvent s’abonner aux événements de hook directement depuis le flux de messages plutôt que de passer par des callbacks de scripts shell.36 Définissez include_hook_events=True sur ClaudeAgentOptions et les objets HookEventMessage (PreToolUse, PostToolUse, Stop, et autres) sortent du même itérateur que les messages assistant et les résultats de tools. Cela reflète l’option includeHookEvents du SDK TypeScript ; le CLI inclus a été porté à la v2.1.129 dans la même version.
Le modèle de flux d’événements convient lorsque votre harness vit déjà dans Python et que vous voulez les signaux de hook dans le même flux de contrôle que la sortie du modèle. Le contrat de hook par script shell (codes de sortie, stdin JSON, dispatchers) reste la bonne réponse pour les harnesses qui composent plusieurs tools, partagent des hooks entre Claude Code et Codex, ou ont besoin de la sémantique des codes de sortie pour bloquer.
Effort et provenance de session (7-8 mai 2026)
Deux ajouts dans Claude Code v2.1.132 et v2.1.133 donnent aux hooks et aux sous-processus un meilleur signal sur leur contexte d’exécution :3839
effort.leveldans l’entrée de hook. Les hooks reçoivent maintenant un champ JSONeffort.levelsur la même entrée qui transportetool_inputetsession_id. La même valeur est exportée comme variable d’environnement$CLAUDE_EFFORT, ce qui permet aux commandes Bash de la lire sans analyser le JSON. Utilisez cela pour adapter le coût des hooks au niveau d’effort : ignorer la validation coûteuse surlow, exécuter le gate de sécurité complet surxhighoumax.- Variable d’environnement
CLAUDE_CODE_SESSION_IDsur les sous-processus Bash. Les sous-processus du tool Bash voient maintenant la même valeursession_idque les hooks, exposée sousCLAUDE_CODE_SESSION_ID. Cela comble l’écart de provenance pour les tools qui journalisent l’état par session et ne pouvaient auparavant pas corréler les événements de sous-processus avec les événements de hook.
Les deux signaux sont disponibles sans changement de code ; les hooks existants qui ignorent les nouveaux champs continuent de fonctionner.
autoMode.hard_deny et correctifs hook/plugin v2.1.136 (8 mai 2026)
Claude Code v2.1.136 a ajouté un nouveau niveau de refus strict à l’auto mode et corrigé un groupe de problèmes de plugins et de MCP qui affectaient les harnesses longue durée :40
settings.autoMode.hard_deny. Règles de classificateur d’auto mode qui bloquent inconditionnellement, indépendamment de l’intention utilisateur ou des exceptions d’autorisation. Cela se place au-dessus des matchers allow/deny existants comme levier de gouvernance non négociable. Utilisez-le pour les règles qui ne doivent jamais être contournées (force-push vers main, fichiers contenant des secrets, accès à la base de données de production), même lorsqu’un opérateur a approuvé la catégorie plus large dans ses paramètres personnels.- Les serveurs MCP ne disparaissent plus après
/clear. Les serveurs configurés dans.mcp.json, les plugins et les connecteurs claude.ai disparaissaient silencieusement de l’ensemble actif après un/cleardans l’extension VS Code, le plugin JetBrains et le SDK Agent. Le correctif arrive dans v2.1.136. Si vous avez vu « serveur MCP X disparu en pleine session », c’était la cause. - Perte de refresh-token OAuth MCP lors d’un rafraîchissement concurrent. Les utilisateurs ayant plusieurs serveurs MCP distants ne devraient plus avoir besoin de se réauthentifier tous les jours. Les écritures de rafraîchissement concurrentes s’écrasaient mutuellement.
- Le mode plan bloque maintenant correctement les écritures de fichiers. Une règle d’autorisation
Edit(...)correspondante contournait la protection d’écriture du mode plan. Le mode plan est maintenant appliqué indépendamment des règles d’autorisation. - Les hooks
StopetUserPromptSubmitde plugin n’échouent plus en pleine session. Le nettoyage du cache supprimait des fichiers de version de plugin encore utilisés par la session en cours, ce qui cassait spécifiquement ces deux événements de hook. Le correctif garde les versions en cours d’utilisation épinglées. - Entrée
skillsdansplugin.json. Définirskillsmasquait le dossierskills/par défaut du plugin. Désormais, l’entrée se compose correctement, et la faire pointer vers un chemin de fichier génère une erreur explicite au lieu d’échouer silencieusement. - Variables d’environnement de hook SessionStart
CLAUDE_ENV_FILEqui devenaient obsolètes. Les variables exportées par les hooks SessionStart viaCLAUDE_ENV_FILEdevenaient obsolètes après/resumeou/clear. Corrigé dans v2.1.136. Les sessions re-sourcent maintenant le fichier d’environnement lors de ces événements.
Pour les harnesses de gouvernance, les points opérationnellement intéressants sont autoMode.hard_deny (nouveau levier) et le correctif de disparition de MCP (échec silencieux qui cassait les longues sessions). Le reste relève du nettoyage de confort.
Arguments de hook structurés et poursuite après blocage (11 mai 2026)
Claude Code v2.1.139 a ajouté deux détails de hook qui comptent pour les harnesses de production : une forme d’exécution args: string[] pour les command hooks, et continueOnBlock pour les hooks PostToolUse.4244 Préférez args lorsqu’un hook a besoin de valeurs dynamiques ou de placeholders de chemins. La commande est lancée directement sans shell, ce qui supprime toute une classe d’erreurs de quoting et d’injection.
Utilisez continueOnBlock lorsqu’un hook PostToolUse doit renvoyer sa raison de rejet à Claude et continuer le tour au lieu d’arrêter le flux. Considérez-le comme une fonctionnalité d’expérience opérateur, pas comme un contournement de sécurité. Un gate bloquant doit toujours bloquer le résultat dangereux.
La même version transmet CLAUDE_PROJECT_DIR aux serveurs stdio MCP et permet aux configurations de plugin de référencer ${CLAUDE_PROJECT_DIR} dans les commandes.42 Les tools MCP devraient résoudre les chemins relatifs au projet depuis cette valeur plutôt que depuis le répertoire de travail du processus qui a lancé le serveur.
Claude Code v2.1.140 est surtout une version de fiabilité pour les opérateurs de harness : elle corrige les hooks ConfigChange qui ne se déclenchaient pas lors des changements de paramètres, ferme des cas limites où disableAllHooks et allowManagedHooksOnly ne se composaient pas correctement entre niveaux de paramètres, et empêche les dialogues de permission d’exposer des variables d’environnement involontaires renvoyées par les résultats de hook.49 Cela rend les modèles de gouvernance existants dans cette section plus fiables ; cela ne nécessite pas de nouvelle architecture de hook.
Claude Code v2.1.141 ajoute un champ de sortie de hook terminalSequence pour les notifications de bureau, titres de fenêtre et sons de cloche sans terminal de contrôle.50 Considérez cela comme un signalement opérateur, pas comme une application de règle. Les gates de sécurité et de qualité doivent toujours communiquer les échecs via le contrat de blocage normal : sortie de hook structurée plus comportement de sortie qui empêche l’action dangereuse. La même version ajoute claude agents --cwd <path> pour limiter Agent View à un seul dossier, CLAUDE_CODE_PLUGIN_PREFER_HTTPS pour les installations de plugins dans les environnements sans clés SSH GitHub, et ANTHROPIC_WORKSPACE_ID pour les règles de fédération d’identité de workload couvrant plus d’un workspace.50 Ce sont des détails d’architecture pour les harnesses d’équipe : vues opérationnelles plus étroites, moins d’hypothèses sur l’installation de plugins, et périmètre explicite des tokens d’entreprise.
Claude Code v2.1.142 est plus importante pour l’orchestration de sessions en arrière-plan que pour la sémantique des hooks.51 claude agents peut maintenant lancer des sessions en arrière-plan avec des flags explicites de dossier, paramètres, MCP, plugin, permission, modèle et effort au lieu de dépendre de l’état d’un wrapper. Le mode rapide utilise désormais Opus 4.7 par défaut ; épinglez CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 uniquement si un harness a mesuré une dépendance au comportement d’Opus 4.6. La découverte de SKILL.md au niveau racine des plugins et la visibilité LSP fournie par les plugins réduisent l’ambiguïté de packaging. Les correctifs de MCP_TOOL_TIMEOUT, des worktrees de session en arrière-plan préexistants, du sommeil/réveil du daemon et du nettoyage post-mise à niveau, ainsi que du nettoyage du cache de plugins, ferment des lacunes de fiabilité qui ressemblent autrement à des bugs d’orchestration.
Pilotage par Stop-hook, autorité inter-session et multi-agent v2 (juin 2026)
Quatre changements de début juin comptent pour la conception de harness et de multi-agent.59
Les hooks Stop/SubagentStop ont gagné un canal de pilotage. Depuis Claude Code v2.1.163, un hook Stop ou SubagentStop peut renvoyer hookSpecificOutput.additionalContext pour donner du feedback à Claude et poursuivre le tour, sans que la réponse soit étiquetée comme une erreur de hook. Avant cela, le seul vrai levier d’un Stop hook était le blocage exit-2, qui apparaît comme une erreur et compte dans le plafond de blocages consécutifs. Pour un harness de quality gate, c’est une primitive plus propre : un Stop hook qui détecte « vous dites terminé, mais les tests sont rouges » peut maintenant injecter « voici ce qui échoue encore, continuez » au lieu de bloquer durement. Utilisez le blocage pour les véritables conditions d’arrêt et additionalContext pour « pas encore terminé, voici pourquoi ».
La messagerie inter-session ne transporte plus d’autorité empruntée. v2.1.166 a renforcé le cas multi-session : les messages relayés via SendMessage depuis une autre session Claude ne transportent plus l’autorité de l’utilisateur d’origine, de sorte qu’une session réceptrice refuse les demandes de permission relayées et que l’auto mode les bloque. Si votre orchestration fait s’envoyer des messages entre agents, traitez un message entrant comme des données non fiables, pas comme une instruction authentifiée. C’est le même principe que la section sécurité applique aux sorties de tools, étendu à la messagerie inter-agent.
La résilience du modèle est devenue un paramètre de premier ordre. Le paramètre fallbackModel enchaîne maintenant jusqu’à trois modèles de secours, essayés dans l’ordre lorsque le primaire est surchargé ou indisponible, et un tour réessaie automatiquement une fois sur le fallback en cas d’erreurs API inattendues non réessayables. Pour un harness autonome longue durée, cela transforme une panne transitoire du modèle primaire en dégradation progressive plutôt qu’en exécution abandonnée. claude agents --json a aussi ajouté un champ waitingFor (v2.1.162) qui expose ce qu’une session en arrière-plan bloquée attend, par exemple un prompt de permission — un gain d’observabilité pour tout coordinateur qui sonde une flotte d’agents.
Safe mode pour une gouvernance en salle blanche et le dépannage. Claude Code v2.1.169 ajoute un flag --safe-mode (et la variable d’environnement correspondante CLAUDE_CODE_SAFE_MODE) qui démarre une session avec toutes les personnalisations désactivées d’un coup : CLAUDE.md, plugins, skills, hooks et serveurs MCP.60 C’est l’inverse du harness — une salle blanche délibérée. Utilisez-le pour répondre à la question que tout opérateur finit par poser : « ce comportement vient-il du modèle, ou de quelque chose que j’ai configuré ? » Lorsqu’un hook se déclenche à tort, qu’une skill s’active alors qu’elle ne devrait pas, ou qu’un serveur MCP empoisonne le contexte, --safe-mode vous donne une base connue vide à comparer. C’est aussi une primitive de gouvernance : une manière d’exécuter le modèle nu sans aucune autorité persistante normalement accordée par votre harness, ce qui compte lorsque vous devez reproduire un résultat sans qu’un échafaudage défini par l’opérateur l’influence.
Note sur les niveaux de modèles. Ce guide traite Opus 4.8 comme le défaut agentique de Claude Code — le modèle qui exécute les harnesses autonomes sauf choix contraire. Au 9 juin 2026, Anthropic a lancé Claude Fable 5 (claude-fable-5), un nouveau niveau au-dessus d’Opus décrit comme son modèle le plus puissant — un système « Mythos-class » rendu sûr pour un usage général — sélectionnable dans Claude Code v2.1.170 via /model claude-fable-5.60 Opus 4.8 reste le défaut agentique ; utilisez le niveau supérieur délibérément, pour les décisions où la profondeur brute de raisonnement justifie le coût, pas comme paramètre global pour une flotte.
Codex a livré multi-agent v2. Codex CLI v0.137.0 conserve le choix du runtime avec chaque thread, expose des valeurs par défaut plus propres pour les suivis et les métadonnées des agents lancés (hide_spawn_agent_metadata vaut désormais true par défaut), et propage les événements parents bruts aux listeners enfants. Son modèle de subagent reste explicite : types d’agents intégrés default/worker/explorer, agents personnalisés définis en TOML, et contrôles de concurrence (agents.max_threads par défaut 6, agents.max_depth par défaut 1). La même version ajoute une extension skills v1 avec résolution du catalogue de skills à chaque tour et de nouveaux événements contributeurs de cycle de vie thread-start/turn-error, ce qui réduit l’écart avec la surface hook/skill de Claude Code tout en gardant la posture de sandbox noyau comme frontière par défaut. Codex v0.138.0–v0.139.0 a ensuite durci multi-agent v2 pour la production : les payloads de messages inter-agents sont maintenant chiffrés, un catalogue de configuration d’agents v2 plus un LRU de résidence d’agents gèrent quels agents restent résidents, et la concurrence est comptée par exécution active plutôt que par threads lancés, de sorte que les agents inactifs ne consomment plus de slot.61 Le cycle de vie API a mûri lui aussi — close_agent a été renommé interrupt_agent (v0.139.0) pour refléter qu’il interrompt un agent en cours d’exécution plutôt que de simplement fermer un handle — et les avertissements de démarrage MCP émis par un subagent restent maintenant limités au thread propriétaire au lieu de se dupliquer dans le transcript du parent.61 Pour toute personne qui construit une orchestration côté Codex, c’est la différence entre une démo et une flotte : transport de messages chiffré, résidence bornée, concurrence comptée par exécution, et avertissements qui ne fuient pas au-delà de la frontière du thread. Codex v0.140.0 a ensuite ouvert un passage inter-tool : /import importe sélectivement la configuration initiale, la configuration de projet et les chats récents depuis Claude Code vers Codex, et les sessions sont devenues supprimables définitivement (codex delete / /delete, avec protections de confirmation).64 /import est la première reconnaissance officielle que les opérateurs passent d’un harness à l’autre — la configuration que vous construisez pour l’un n’y est plus enfermée.
Mémoire et contexte
Chaque conversation d’IA fonctionne dans une fenêtre de contexte finie. À mesure que la conversation s’allonge, le système compresse les tours précédents pour faire de la place au nouveau contenu. Cette compression entraîne des pertes. Des décisions d’architecture documentées au tour 3 peuvent ne pas survivre jusqu’au tour 15.9
Les trois mécanismes de l’effondrement multi-tours
L’étude MSR/Salesforce a identifié trois mécanismes indépendants, chacun nécessitant une intervention différente :9
| Mécanisme | Ce qui se passe | Intervention |
|---|---|---|
| Compression du contexte | Les informations précédentes sont supprimées pour faire tenir le nouveau contenu | Checkpointing de l’état dans le système de fichiers |
| Perte de cohérence du raisonnement | Le modèle contredit ses propres décisions antérieures au fil des tours | Itération en contexte frais (Ralph loop) |
| Échec de coordination | Plusieurs agents détiennent différents instantanés d’état | Protocoles d’état partagé entre agents |
Stratégie 1 : le système de fichiers comme mémoire
La mémoire la plus fiable au-delà des limites de contexte se trouve dans le système de fichiers. Claude Code lit CLAUDE.md et les fichiers de mémoire au début de chaque session et après chaque compaction.6
~/.claude/
├── configs/ # 14 JSON configs (thresholds, rules, budgets)
│ ├── deliberation-config.json
│ ├── recursion-limits.json
│ └── consensus-profiles.json
├── hooks/ # 95 lifecycle event handlers
├── skills/ # 44 reusable knowledge modules
├── state/ # Runtime state (recursion depth, agent lineage)
├── handoffs/ # 49 multi-session context documents
├── docs/ # 40+ system documentation files
└── projects/ # Per-project memory directories
└── {project}/memory/
└── MEMORY.md # Always loaded into context
Le fichier MEMORY.md capture les erreurs, décisions et patterns d’une session à l’autre. Lorsque vous découvrez que ((VAR++)) échoue avec set -e dans bash quand VAR vaut 0, vous le consignez. Trois sessions plus tard, lorsque vous rencontrez un cas limite similaire sur un entier dans Python, l’entrée MEMORY.md fait remonter le pattern.15
Auto Memory (v2.1.32+) : Claude Code enregistre et rappelle automatiquement le contexte du projet. Pendant que vous travaillez, Claude écrit des observations dans ~/.claude/projects/{project-path}/memory/MEMORY.md. Auto memory charge les 200 premières lignes dans votre prompt système au démarrage de la session. Gardez-le concis et liez des fichiers thématiques séparés pour les notes détaillées.6
Curation de la mémoire plutôt que volume de mémoire (mai 2026) : une prépublication arXiv récente sur la coopération entre agents LLM présente le rappel élargi comme un mode de défaillance possible : dans les expériences des auteurs, un historique visible plus long a dégradé la coopération dans 18 des 28 configurations modèle-jeu.48 Considérez cela comme un avertissement de conception, pas comme une loi définitive. La règle de production est déjà assez claire : gardez MEMORY.md court, créez des liens vers les détails et mettez des synthèses prêtes pour la décision dans les handoffs. Les dumps de transcriptions brutes, les journaux d’outils et les longs flux de rappel doivent rester dans un stockage consultable, pas être automatiquement injectés dans le prompt actif.
Stratégie 2 : compaction proactive
La commande /compact de Claude Code résume la conversation et libère de l’espace de contexte tout en préservant les décisions clés, le contenu des fichiers et l’état de la tâche.15
Quand compacter : - Après avoir terminé une sous-tâche distincte (fonctionnalité implémentée, bug corrigé) - Avant de commencer une nouvelle zone du codebase - Lorsque Claude commence à se répéter ou à oublier le contexte précédent - Environ toutes les 25 à 30 minutes pendant les sessions intensives
Instructions de compaction personnalisées dans CLAUDE.md :
# Summary Instructions
When using compact, focus on:
- Recent code changes
- Test results
- Architecture decisions made this session
La compaction protège la conversation ; la commande /cd (Claude Code v2.1.169) protège le prompt cache. Elle déplace une session vers un nouveau répertoire de travail en cours de route sans casser le cache accumulé pendant le tour.60 Avant cela, changer de répertoire impliquait une nouvelle session et un cache froid. Pour une session longue qui pivote d’un dépôt vers un dépôt voisin — cas fréquent dans les monorepos et le travail multi-services — /cd conserve intact le préfixe coûteux mis en cache tout en repointant le contexte du système de fichiers.
Stratégie 3 : handoffs de session
Pour les tâches qui s’étendent sur plusieurs sessions, créez des documents de handoff qui capturent l’état complet :
## Handoff: Deliberation Infrastructure PRD-7
**Status:** Hook wiring complete, 81 Python unit tests passing
**Files changed:** hooks/post-deliberation.sh, hooks/deliberation-pride-check.sh
**Decision:** Placed post-deliberation in PostToolUse:Task, pride-check in Stop
**Blocked:** Spawn budget model needs inheritance instead of depth increment
**Next:** PRD-8 integration tests in tests/test_deliberation_lib.py
La structure Status/Files/Decision/Blocked/Next fournit à la session suivante un contexte complet avec un coût minimal en tokens. Démarrer une nouvelle session avec claude -c (continue) ou lire le document de handoff mène directement à l’implémentation.15
Stratégie 4 : itération en contexte frais (la Ralph Loop)
Pour les sessions dépassant 60 à 90 minutes, lancez une nouvelle instance Claude à chaque itération. L’état persiste via le système de fichiers, pas via la mémoire conversationnelle. Chaque itération obtient le budget de contexte complet :16
Iteration 1: [200K tokens] -> writes code, creates files, updates state
Iteration 2: [200K tokens] -> reads state from disk, continues
Iteration 3: [200K tokens] -> reads updated state, continues
...
Iteration N: [200K tokens] -> reads final state, verifies criteria
Comparez avec une seule longue session :
Minute 0: [200K tokens available] -> productive
Minute 30: [150K tokens available] -> somewhat productive
Minute 60: [100K tokens available] -> degraded
Minute 90: [50K tokens available] -> significantly degraded
Minute 120: [compressed, lossy] -> errors accumulate
L’approche d’un contexte frais par itération échange 15 à 20 % de surcharge pour l’étape d’orientation (lecture des fichiers d’état, analyse de l’historique git) contre des ressources cognitives complètes à chaque itération.16 Le calcul coût-bénéfice : pour les sessions de moins de 60 minutes, une seule conversation est plus efficace. Au-delà de 90 minutes, le contexte frais produit une sortie de meilleure qualité malgré la surcharge.
Stratégie 5 : curation de mémoire gérée (Dreaming)
Les Managed Agents Claude de Anthropic ont ajouté Dreaming en Research Preview le 6 mai 2026.35 Selon Anthropic : « Dreaming est un processus planifié qui examine vos sessions d’agent et vos stores de mémoire, extrait des patterns et organise les mémoires afin que vos agents s’améliorent au fil du temps. »35
Dreaming s’exécute en arrière-plan entre les sessions, pas sur le chemin critique. Il complète le pattern du système de fichiers comme mémoire plutôt que de le remplacer : votre fichier MEMORY.md reste la surface porteuse ; Dreaming écrit des entrées de mémoire organisées dans le store de mémoire des Managed Agents, que l’agent lit au démarrage de la session. Les deux patterns coexistent pour les harnesses qui combinent un état de système de fichiers auto-hébergé avec une curation côté managed.
| Mémoire du système de fichiers | Dreaming (managed) | |
|---|---|---|
| Où vit la mémoire | Votre dépôt, versionné | Store de mémoire géré par Anthropic |
| Quand elle se met à jour | Vous écrivez les entrées à la main ou via des hooks | Processus en arrière-plan entre les sessions |
| Ce qu’elle capture | Décisions, erreurs, patterns que vous signalez | Patterns extraits de l’historique des sessions |
| Idéal pour | Connaissance institutionnelle propre au projet | Découverte de patterns entre sessions que vous ne repéreriez pas à la main |
Dreaming est en Research Preview, donc son comportement peut changer. Les patterns de handoffs de session et de CLAUDE.md documentés ci-dessus restent le mécanisme de mémoire faisant autorité pour les harnesses auto-hébergés.
Les anti-patterns
Lire des fichiers entiers quand vous n’avez besoin que de 10 lignes. La lecture d’un seul fichier de 2 000 lignes consomme 15 000 à 20 000 tokens. Utilisez des décalages de lignes : Read file.py offset=100 limit=20 économise l’immense majorité de ce coût.15
Garder une sortie d’erreur verbeuse dans le contexte. Après avoir débogué un bug, votre contexte contient plus de 40 stack traces issues d’itérations échouées. Un seul /compact après correction du bug libère ce poids mort.
Démarrer chaque session en lisant tous les fichiers. Laissez les outils glob et grep de Claude Code trouver les fichiers pertinents à la demande, ce qui économise plus de 100 000 tokens de préchargement inutile.15
Patterns de subagents
Les subagents sont des instances Claude spécialisées qui gèrent des tâches complexes de manière autonome. Ils démarrent avec un contexte propre (sans pollution issue de la conversation principale), fonctionnent avec des outils spécifiés et renvoient leurs résultats sous forme de résumés. Les résultats d’exploration ne gonflent pas votre conversation principale ; seules les conclusions reviennent.5
Types de subagents intégrés
| Type | Modèle | Mode | Outils | À utiliser pour |
|---|---|---|---|---|
| Explore | Haiku (rapide) | Lecture seule | Glob, Grep, Read, safe bash | Exploration de codebase, recherche de fichiers |
| General-purpose | Hérite | Lecture/écriture complète | Tous les outils disponibles | Recherche complexe + modification |
| Plan | Hérite (ou Opus) | Lecture seule | Read, Glob, Grep, Bash | Planification avant exécution |
Créer des subagents personnalisés
Définissez les subagents dans .claude/agents/ (projet) ou ~/.claude/agents/ (personnel) :
---
name: security-reviewer
description: Expert security code reviewer. Use PROACTIVELY after any code
changes to authentication, authorization, or data handling.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---
You are a senior security engineer reviewing code for vulnerabilities.
When invoked:
1. Identify the files that were recently changed
2. Analyze for OWASP Top 10 vulnerabilities
3. Check for secrets, hardcoded credentials, SQL injection
4. Report findings with severity levels and remediation steps
Focus on actionable security findings, not style issues.
Champs de configuration des subagents
| Champ | Obligatoire | Objectif |
|---|---|---|
name |
Oui | Identifiant unique (minuscules + traits d’union) |
description |
Oui | Quand l’invoquer (incluez « PROACTIVELY » pour encourager la délégation automatique) |
tools |
Non | Séparés par des virgules. Hérite de tous les outils si omis. Prend en charge Agent(agent_type) pour limiter les agents qui peuvent être lancés |
disallowedTools |
Non | Outils à refuser, retirés de la liste héritée ou spécifiée. Depuis la v2.1.178, les spécifications au niveau serveur MCP (mcp__server, mcp__server__*, mcp__*) sont correctement reconnues ici — les versions précédentes les ignoraient silencieusement, de sorte qu’une règle de refus censée bloquer un serveur MCP ne faisait discrètement rien.63 |
model |
Non | sonnet, opus, haiku, inherit (par défaut : inherit) |
permissionMode |
Non | default, acceptEdits, delegate, dontAsk, bypassPermissions, plan |
maxTurns |
Non | Nombre maximal de tours agentiques avant l’arrêt du subagent |
memory |
Non | Portée de mémoire persistante : user, project, local |
skills |
Non | Charge automatiquement le contenu des skills dans le contexte du subagent au démarrage. Depuis la v2.1.133, les subagents découvrent aussi les skills de projet, d’utilisateur et de plugin via l’outil Skill, de la même manière que la session parente. Les versions précédentes les supprimaient silencieusement du contexte du subagent.39 |
hooks |
Non | Hooks de cycle de vie limités à l’exécution de ce subagent |
background |
Non | Toujours exécuter comme tâche en arrière-plan |
isolation |
Non | Définir sur worktree pour une copie isolée du git worktree |
Isolation par worktree
Les subagents peuvent fonctionner dans des git worktrees temporaires, ce qui fournit une copie complète et isolée du dépôt :5
---
name: experimental-refactor
description: Attempt risky refactoring in isolation
isolation: worktree
tools: Read, Write, Edit, Bash, Grep, Glob
---
You have an isolated copy of the repository. Make changes freely.
If the refactoring succeeds, the changes can be merged back.
If it fails, the worktree is discarded with no impact on the main branch.
L’isolation par worktree est essentielle pour les travaux expérimentaux susceptibles de casser la codebase.
Subagents parallèles
Utilisez des subagents parallèles pour les tâches de recherche indépendantes qui n’ont pas besoin de se coordonner entre elles :5
> Have three explore agents search in parallel:
> 1. Authentication code
> 2. Database models
> 3. API routes
Chaque agent s’exécute dans sa propre fenêtre de contexte, trouve le code pertinent et renvoie un résumé. Le contexte principal reste propre.
Le garde-fou de récursion
Sans limites de lancement, les agents délèguent à des agents qui délèguent à d’autres agents, chacun perdant du contexte et consommant des tokens. Le pattern de garde-fou de récursion impose des budgets :16
#!/bin/bash
# recursion-guard.sh — enforce spawn budget
CONFIG_FILE="${HOME}/.claude/configs/recursion-limits.json"
STATE_FILE="${HOME}/.claude/state/recursion-depth.json"
MAX_DEPTH=2
MAX_CHILDREN=5
DELIB_SPAWN_BUDGET=2
DELIB_MAX_AGENTS=12
# Read current depth
current_depth=$(jq -r '.depth // 0' "$STATE_FILE" 2>/dev/null)
if [[ "$current_depth" -ge "$MAX_DEPTH" ]]; then
echo "BLOCKED: Maximum recursion depth ($MAX_DEPTH) reached" >&2
exit 2
fi
# Increment depth using safe arithmetic (not ((VAR++)) with set -e)
new_depth=$((current_depth + 1))
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"
Leçon critique : utilisez des budgets de lancement, pas seulement des limites de profondeur. Les limites fondées sur la profondeur suivent les chaînes parent-enfant (bloquées à la profondeur 3), mais ignorent la largeur : 23 agents à la profondeur 1 restent à la « profondeur 1 ». Un budget de lancement suit le nombre total d’enfants actifs par parent, plafonné à un maximum configurable. Le modèle de budget correspond au mode d’échec réel (trop d’agents au total) plutôt qu’à une métrique indirecte (trop de niveaux d’imbrication).7
La délégation récursive est désormais une profondeur first-party. Depuis Claude Code v2.1.172 (10 juin 2026), les sub-agents peuvent lancer leurs propres sub-agents, avec une imbrication jusqu’à 5 niveaux — alors que la délégation était auparavant, en pratique, limitée à un seul niveau.62 Cela rend le garde-fou de récursion ci-dessus plus important, pas moins : la plateforme permet désormais exactement les chaînes d’agents qui délèguent à des agents et consomment contexte et tokens, de sorte que le budget de lancement et le plafond de profondeur sont ce qui empêche un arbre à 5 niveaux de s’étendre à des centaines d’agents actifs. Traitez les 5 niveaux comme un plafond autorisé par la plateforme, pas comme une valeur par défaut à viser.
Le mode auto évalue désormais les lancements avant leur démarrage. Claude Code v2.1.178 a comblé la faille de gouvernance correspondante : en mode auto, les lancements de subagents sont évalués par le classificateur d’autorisations avant le lancement du subagent, et non seulement une fois qu’il commence à agir.63 Auparavant, un subagent pouvait être lancé pour demander une action que la session parente aurait été empêchée d’effectuer — le lancement lui-même servait de contournement. L’évaluation au moment du lancement signifie que le garde-fou de récursion et le modèle d’autorisations se rejoignent enfin : un enfant ne peut pas être utilisé comme étape de blanchiment pour une action interdite par la politique.
Agent Teams (aperçu de recherche)
Les Agent Teams coordonnent plusieurs instances Claude Code qui travaillent indépendamment, communiquent via une boîte aux lettres et une liste de tâches partagées, et peuvent contester les conclusions des autres :5
| Composant | Rôle |
|---|---|
| Team lead | Session principale qui crée l’équipe, lance les coéquipiers, coordonne le travail |
| Teammates | Instances Claude Code séparées travaillant sur les tâches assignées |
| Task list | Éléments de travail partagés que les coéquipiers réclament et terminent (verrouillés par fichier) |
| Mailbox | Système de messagerie pour la communication inter-agents |
Activez avec : export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Quand utiliser les agent teams plutôt que les subagents :
| Subagents | Agent Teams | |
|---|---|---|
| Communication | Renvoient uniquement les résultats | Les coéquipiers s’envoient directement des messages |
| Coordination | L’agent principal gère tout le travail | Liste de tâches partagée avec auto-coordination |
| Idéal pour | Tâches ciblées où seul le résultat compte | Travail complexe nécessitant discussion et collaboration |
| Coût en tokens | Plus faible | Plus élevé (chaque coéquipier = fenêtre de contexte séparée) |
Agent View et boucles de goal (mai 2026)
Claude Code v2.1.139 a ajouté Agent View, une interface en aperçu de recherche lancée avec claude agents, qui affiche depuis un seul écran les sessions Claude Code en cours, bloquées et terminées.4243 La documentation officielle la présente comme un moyen de répartir et gérer de nombreuses sessions, de voir ce que fait chaque session et d’identifier celles qui nécessitent l’intervention d’un opérateur.43 Cela donne au travail multi-agent une vue opérationnelle que les résumés finaux ne peuvent pas fournir.
Utilisez Agent View lorsque vous promouvez un pattern de subagent ou d’équipe : inspectez quelles sessions sont bloquées, lesquelles sont encore en cours et si la distribution du travail correspond à l’architecture prévue. Ne le traitez pas comme une preuve de qualité. C’est de l’observabilité ; les tests, review gates et rapports de preuves décident toujours si le travail est solide.
La même version a ajouté /goal, qui définit une condition d’achèvement et permet à Claude de continuer sur plusieurs tours jusqu’à ce que la condition soit remplie, y compris en utilisation interactive, -p et Remote Control.42 Traitez /goal comme une boucle d’achèvement limitée à la session, pas comme un substitut aux gates déterministes. C’est utile pour garder un agent concentré sur une cible, mais les tests, vérifications de citations, contrôles de déploiement et security hooks doivent rester adossés à des commandes ou scripts lorsque l’échec doit bloquer.
Outil Workflow (v2.1.147+)
Claude Code v2.1.147 ajoute un outil Workflow, désactivé par défaut, pour l’orchestration multi-agent déterministe. Activez-le avec CLAUDE_CODE_WORKFLOWS=1.52 Sur le plan architectural, c’est important parce que cela donne à Claude Code une primitive d’orchestration first-party pour des flux qui nécessitaient auparavant des scripts de dispatch personnalisés, un état de boîte aux lettres et des conventions de coordination entre subagents.
Ne supprimez pas le harness autour. Un Workflow peut structurer l’exécution, mais il ne remplace pas votre modèle de sécurité. Conservez les hooks PreToolUse et PostToolUse comme couche bloquante, gardez des budgets de lancement ou des budgets d’étapes de workflow pour éviter une largeur incontrôlée, maintenez l’état du système de fichiers auditable et gardez les rapports de preuves finaux en dehors de l’auto-évaluation du modèle. En pratique : utilisez Workflow pour la forme de l’orchestration ; utilisez les hooks, les tests et les review gates pour la vérité.
Orchestration multi-agents
Les systèmes d’IA mono-agent ont un angle mort structurel : ils ne peuvent pas remettre en question leurs propres hypothèses.7 La délibération multi-agents impose une évaluation indépendante depuis plusieurs perspectives avant qu’une décision ne soit verrouillée.
Orchestration inter-outils (avril 2026) : Google a publié Scion en open source le 7 avril — un hyperviseur multi-agents qui exécute Claude Code, Gemini CLI et d’autres « deep agents » comme processus concurrents, chacun avec un conteneur, un git worktree et des identifiants isolés. S’exécute en local, sur hub ou Kubernetes. Philosophie explicite : « isolation over constraints » — les agents fonctionnent avec une grande autonomie à l’intérieur de limites imposées au niveau de l’infrastructure, pas dans le prompt.25 Cela étend directement l’argument de l’isolation des subagents à différents fournisseurs d’outils. Si votre flux de travail couvre Claude et les modèles OpenAI, Scion est la première véritable implémentation de référence pour des subagents inter-outils avec isolation worktree + identifiants par agent.
Le débat n’est pas une solution miracle : Le cluster de recherche M3MAD-Bench (début 2026) a constaté que le débat multi-agents plafonne et peut être subverti par un consensus trompeur — des arguments valides perdent lorsque d’autres agents affirment avec assurance la mauvaise réponse.26 Tool-MAD améliore cela en donnant à chaque agent un accès hétérogène aux outils et en utilisant des scores de Faithfulness/Relevance dans la phase de jugement. Si vous construisez une orchestration de type débat, investissez dans (a) l’hétérogénéité des outils par agent et (b) un score quantitatif du juge plutôt que de supposer que plus d’agents = meilleures réponses.
Orchestration multi-agents managée et Outcomes (Public Beta)
Si vous ne voulez pas construire l’infrastructure de délibération décrite ci-dessous, Multiagent Orchestration est entré en Public Beta dans Claude Managed Agents le 6 mai 2026.35 Selon Anthropic : « Lorsqu’il y a trop de travail pour qu’un seul agent le fasse bien, l’orchestration multi-agents permet à un agent principal de découper le travail en morceaux et de déléguer chacun à un spécialiste avec son propre modèle, prompt et outils. »35 Les spécialistes « travaillent en parallèle sur un système de fichiers partagé et contribuent au contexte global de l’agent principal. »35
Le tracing est inclus d’origine. Selon Anthropic : « vous pouvez également tracer chaque étape dans la Claude Console : quel agent a fait quoi, dans quel ordre et pourquoi, vous donnant une visibilité complète sur la manière dont votre tâche a été déléguée et exécutée. »35
La fonctionnalité Public Beta complémentaire est Outcomes. Selon Anthropic : « vous écrivez une rubrique décrivant à quoi ressemble le succès et l’agent travaille à l’atteindre. Un évaluateur séparé évalue la sortie par rapport à vos critères dans sa propre fenêtre de contexte, de sorte qu’il n’est pas influencé par le raisonnement de l’agent. »35 Il s’agit de la version managée du modèle de validation à deux portes documenté plus loin dans cette section : la rubrique remplace la porte écrite à la main, l’évaluateur séparé remplace le validateur de consensus.
| Délibération auto-hébergée (cette section) | Multiagent managé + Outcomes | |
|---|---|---|
| Routage des spécialistes | Vous écrivez la logique de spawn | L’agent principal découpe le travail en morceaux |
| Validation | Hooks à deux portes + scoring de consensus | Rubrique + évaluateur dans un contexte séparé |
| Tracing | Vous l’instrumentez | Claude Console |
| Idéal pour | Modèles nécessitant un contrôle complet ou une composition d’outils spécifique | Modèles de délégation standard où la rubrique de validation est le contrat |
| Tarification | Tokens + coût du harness uniquement | Tokens standard plus le tarif horaire de session Managed Agents (base de lancement du 8 avril ; voir 23) |
La délibération auto-hébergée reste la bonne réponse lorsque la validation doit s’intégrer à votre propre surface de hooks (blocage PreToolUse, sémantique des codes de sortie, dispatchers personnalisés) ou lorsque le harness doit fonctionner sans dépendances externes. Multiagent managé est la bonne réponse lorsque la délégation standard plus l’évaluation par rubrique est le contrat dont vous avez réellement besoin.
Délibération minimum viable
Commencez avec 2 agents et 1 règle : les agents doivent évaluer indépendamment avant de voir le travail de l’autre.7
Decision arrives
|
v
Confidence check: is this risky, ambiguous, or irreversible?
|
+-- NO -> Single agent decides (normal flow)
|
+-- YES -> Spawn 2 agents with different system prompts
Agent A: "Argue FOR this approach"
Agent B: "Argue AGAINST this approach"
|
v
Compare findings
|
+-- Agreement with different reasoning -> Proceed
+-- Genuine disagreement -> Investigate the conflict
+-- Agreement with same reasoning -> Suspect herding
Ce modèle couvre 80 % de la valeur. Tout le reste apporte une amélioration incrémentale.
Le déclencheur de confiance
Toutes les tâches n’ont pas besoin de délibération. Un module de notation de confiance évalue quatre dimensions :17
- Ambiguïté - La requête a-t-elle plusieurs interprétations valides ?
- Complexité du domaine - Nécessite-t-elle des connaissances spécialisées ?
- Enjeux - La décision est-elle réversible ?
- Dépendance au contexte - Nécessite-t-elle de comprendre le système au sens large ?
Le score correspond à trois niveaux :
| Niveau | Seuil | Action |
|---|---|---|
| HIGH | 0,85+ | Procéder sans délibération |
| MEDIUM | 0,70-0,84 | Procéder avec note de confiance enregistrée |
| LOW | En dessous de 0,70 | Déclencher la délibération multi-agents complète |
Le seuil s’adapte selon le type de tâche. Les décisions de sécurité requièrent un consensus de 0,85. Les modifications de documentation n’en requièrent que 0,50. Cela évite la sur-ingénierie des tâches simples tout en garantissant que les décisions à risque sont scrutées.7
La machine à états
Sept phases, chacune contrôlée par la précédente :7
IDLE -> RESEARCH -> DELIBERATION -> RANKING -> PRD_GENERATION -> COMPLETE
|
(or FAILED)
RESEARCH : Des agents indépendants examinent le sujet. Chaque agent reçoit un persona différent (Technical Architect, Security Analyst, Performance Engineer, et d’autres). L’isolation du contexte garantit que les agents ne peuvent pas voir les conclusions des autres pendant la recherche.
DELIBERATION : Les agents voient toutes les conclusions de recherche et génèrent des alternatives. L’agent Debate identifie les conflits. L’agent Synthesis combine les conclusions non contradictoires.
RANKING : Chaque agent évalue toutes les approches proposées selon 5 dimensions pondérées :
| Dimension | Pondération |
|---|---|
| Impact | 0,25 |
| Quality | 0,25 |
| Feasibility | 0,20 |
| Reusability | 0,15 |
| Risk | 0,15 |
L’architecture de validation à deux portes
Deux portes de validation détectent les problèmes à différentes étapes :7
Porte 1 : Validation du consensus (hook PostToolUse). S’exécute immédiatement après que chaque agent de délibération a terminé : 1. La phase doit avoir atteint au moins RANKING 2. Au minimum 2 agents ont terminé (configurable) 3. Le score de consensus atteint le seuil adaptatif à la tâche 4. Si un agent a exprimé son désaccord, les préoccupations doivent être documentées
Porte 2 : Pride Check (hook Stop). S’exécute avant que la session puisse se fermer : 1. Méthodes diversifiées : plusieurs personas uniques représentés 2. Transparence des contradictions : les désaccords ont des raisons documentées 3. Gestion de la complexité : au moins 2 alternatives générées 4. Confiance du consensus : classée comme forte (au-dessus de 0,85) ou modérée (0,70-0,84) 5. Preuve d’amélioration : la confiance finale dépasse la confiance initiale
Deux hooks à différents points du cycle de vie correspondent à la manière dont les défaillances surviennent réellement : certaines sont instantanées (mauvais score) et d’autres sont graduelles (faible diversité, documentation des désaccords manquante).7
Pourquoi l’accord est dangereux
Charlan Nemeth a étudié la dissidence minoritaire de 1986 jusqu’à son livre de 2018 In Defense of Troublemakers. Les groupes avec des dissidents prennent de meilleures décisions que les groupes qui parviennent rapidement à un accord. Le dissident n’a pas besoin d’avoir raison. L’acte de désaccord force la majorité à examiner les hypothèses qu’elle aurait autrement passées sous silence.18
Wu et al. ont testé si les agents LLM peuvent réellement débattre et ont constaté que sans incitations structurelles au désaccord, les agents convergent vers la réponse initiale qui semble la plus assurée, indépendamment de son exactitude.19 Liang et al. ont identifié la cause profonde comme la « Degeneration-of-Thought » : une fois qu’un LLM établit sa confiance dans une position, l’auto-réflexion ne peut pas générer de nouveaux contre-arguments, rendant l’évaluation multi-agents structurellement nécessaire.20
L’indépendance est la contrainte de conception critique. Deux agents évaluant la même stratégie de déploiement avec visibilité sur les conclusions de l’autre ont produit des scores de 0,45 et 0,48. Les mêmes agents sans visibilité : 0,45 et 0,72. L’écart entre 0,48 et 0,72 est le coût du suivisme.7
Détecter le faux accord
Un module de détection de la conformité suit les schémas suggérant que les agents sont d’accord sans véritable évaluation :7
Regroupement des scores : Tous les agents notant à 0,3 points près sur une échelle de 10 points signalent une contamination du contexte partagé plutôt qu’une évaluation indépendante. Lorsque cinq agents évaluant un refactoring d’authentification ont tous noté le risque de sécurité entre 7,1 et 7,4, une nouvelle exécution avec une isolation de contexte fraîche a étalé les scores entre 5,8 et 8,9.
Désaccords standardisés : Des agents copient le langage de préoccupation des autres plutôt que de générer des objections indépendantes.
Perspectives minoritaires absentes : Approbation unanime de personas aux priorités contradictoires (un Security Analyst et un Performance Engineer sont rarement d’accord sur tout).
Le détecteur de conformité attrape les cas évidents (environ 10-15 % des délibérations où les agents convergent trop rapidement). Pour les 85-90 % restants, les portes de consensus et de pride check fournissent une validation suffisante.
Ce qui n’a pas fonctionné dans la délibération
Tours de débat libre. Trois tours d’allers-retours textuels pour une discussion sur l’indexation de base de données ont produit 7 500 tokens de débat. Tour 1 : véritable désaccord. Tour 2 : positions reformulées. Tour 3 : arguments identiques formulés différemment. Le scoring structuré par dimension a remplacé le débat libre, réduisant le coût de 60 % tout en améliorant la qualité du classement.7
Porte de validation unique. La première implémentation exécutait un seul hook de validation à la fin de la session. Un agent a terminé une délibération avec un score de consensus de 0,52 (en dessous du seuil), puis a continué sur des tâches sans rapport pendant 20 minutes avant que le hook de fin de session ne signale l’échec. Le découpage en deux portes (une à la fin de la tâche, une à la fin de la session) a détecté les mêmes problèmes à différents points du cycle de vie.7
Coût de la délibération
Chaque agent de recherche traite environ 5 000 tokens de contexte et génère 2 000 à 3 000 tokens de conclusions. Avec 3 agents, cela représente 15 000 à 24 000 tokens supplémentaires par décision. Avec 10 agents, environ 50 000 à 80 000 tokens.7
Aux tarifs Opus actuels, une délibération à 3 agents coûte environ 0,68 à 0,90 $. Une délibération à 10 agents coûte 2,25 à 3,00 $. Le système déclenche la délibération sur environ 10 % des décisions, donc le coût amorti sur l’ensemble des décisions est de 0,23 à 0,30 $ par session. Que cela en vaille la peine dépend de ce que coûte une mauvaise décision.
Quand délibérer
| Délibérer | Passer |
|---|---|
| Architecture de sécurité | Coquilles dans la documentation |
| Conception de schéma de base de données | Renommage de variables |
| Modifications du contrat API | Mises à jour de messages de log |
| Stratégies de déploiement | Reformulation de commentaires |
| Mises à niveau de dépendances | Mises à jour de fixtures de tests |
Conception de CLAUDE.md
CLAUDE.md est une politique opérationnelle pour un agent IA, pas un README destiné aux humains.21 L’agent n’a pas besoin de comprendre pourquoi vous utilisez les commits conventionnels. Il doit connaître la commande exacte à exécuter et savoir à quoi ressemble un état « terminé ».
La hiérarchie de précédence
| Emplacement | Portée | Partagé | Cas d’utilisation |
|---|---|---|---|
| Paramètres gérés par l’entreprise | Organisation | Tous les utilisateurs | Standards de l’entreprise |
./CLAUDE.md or ./.claude/CLAUDE.md |
Projet | Via git | Contexte d’équipe |
~/.claude/CLAUDE.md |
Utilisateur | Tous les projets | Préférences personnelles |
./CLAUDE.local.md |
Local au projet | Jamais | Notes personnelles sur le projet |
.claude/rules/*.md |
Règles du projet | Via git | Politiques catégorisées |
~/.claude/rules/*.md |
Règles utilisateur | Tous les projets | Politiques personnelles |
Les fichiers de règles se chargent automatiquement et fournissent un contexte structuré sans encombrer CLAUDE.md.6
Ce qui est ignoré
Ces schémas ne produisent de façon fiable aucun changement observable dans le comportement de l’agent :21
Paragraphes en prose sans commandes. « Nous valorisons un code propre et bien testé » relève de la documentation, pas de l’opérationnel. L’agent le lit puis écrit du code sans tests, car il n’y a aucune instruction actionnable.
Directives ambiguës. « Soyez prudent avec les migrations de base de données » n’est pas une contrainte. « Exécutez alembic check avant d’appliquer les migrations. Abandonnez si le chemin de downgrade est manquant. » en est une.
Priorités contradictoires. « Avancez vite et livrez rapidement » plus « Assurez une couverture de tests complète » plus « Gardez l’exécution sous 5 minutes » plus « Exécutez tous les tests d’intégration avant chaque commit ». L’agent ne peut pas satisfaire les quatre simultanément et finit par ignorer la vérification.21
Guides de style sans application. « Suivez le Google Python Style Guide » sans ruff check --select D ne donne à l’agent aucun mécanisme pour vérifier la conformité.
Ce qui fonctionne
Instructions centrées sur les commandes :
## Build and Test Commands
- Install: `pip install -r requirements.txt`
- Lint: `ruff check . --fix`
- Format: `ruff format .`
- Test: `pytest -v --tb=short`
- Type check: `mypy app/ --strict`
- Full verify: `ruff check . && ruff format --check . && pytest -v`
Définitions de clôture :
## Definition of Done
A task is complete when ALL of the following pass:
1. `ruff check .` exits 0
2. `pytest -v` exits 0 with no failures
3. `mypy app/ --strict` exits 0
4. Changed files have been staged and committed
5. Commit message follows conventional format: `type(scope): description`
Sections organisées par tâche :
## When Writing Code
- Run `ruff check .` after every file change
- Add type hints to all new functions
## When Reviewing Code
- Check for security issues: `bandit -r app/`
- Verify test coverage: `pytest --cov=app --cov-fail-under=80`
## When Releasing
- Update version in `pyproject.toml`
- Run full suite: `pytest -v && ruff check . && mypy app/`
Règles d’escalade :
## When Blocked
- If tests fail after 3 attempts: stop and report the failing test with full output
- If a dependency is missing: check `requirements.txt` first, then ask
- Never: delete files to resolve errors, force push, or skip tests
Ordre de rédaction
Si vous partez de zéro, ajoutez les sections dans cet ordre de priorité :21
- Commandes de build et de test (l’agent en a besoin avant de pouvoir faire quoi que ce soit d’utile)
- Définition de terminé (évite les fausses déclarations d’achèvement)
- Règles d’escalade (évite les contournements destructeurs)
- Sections organisées par tâche (réduit l’analyse d’instructions non pertinentes)
- Portée par répertoire (monorepos : garde les instructions de service isolées)
Ignorez les préférences de style jusqu’à ce que les quatre premières fonctionnent.
Imports de fichiers
Référencez d’autres fichiers dans CLAUDE.md :
See @README.md for project overview
Coding standards: @docs/STYLE_GUIDE.md
API documentation: @docs/API.md
Personal preferences: @~/.claude/preferences.md
Syntaxe d’import : relative (@docs/file.md), absolue (@/absolute/path.md) ou répertoire personnel (@~/.claude/file.md). Profondeur maximale : 5 niveaux d’imports.6
Compatibilité des instructions entre outils
AGENTS.md est un standard ouvert reconnu par tous les grands outils de codage IA.21 Si votre équipe utilise plusieurs outils, rédigez AGENTS.md comme source canonique et répliquez les sections pertinentes dans les fichiers propres à chaque outil :
| Outil | Fichier natif | Lit AGENTS.md ? |
|---|---|---|
| Codex CLI | AGENTS.md | Oui (natif) |
| Cursor | .cursor/rules |
Oui (natif) |
| GitHub Copilot | .github/copilot-instructions.md |
Oui (natif) |
| Amp | AGENTS.md | Oui (natif) |
| Windsurf | .windsurfrules |
Oui (natif) |
| Claude Code | CLAUDE.md | Non (format séparé) |
Les schémas dans AGENTS.md (centrés sur les commandes, définis par clôture, organisés par tâche) fonctionnent dans n’importe quel fichier d’instructions, quel que soit l’outil. Ne maintenez pas des jeux d’instructions parallèles qui divergent. Rédigez une source faisant autorité et répliquez-la.
Notes de parité Codex
Codex dispose désormais d’équivalents de premier ordre pour les principales couches de harness, mais la migration est une traduction de schémas, pas une copie de fichiers. Codex lit AGENTS.md avant le début du travail, en superposant les consignes globales de ~/.codex avec les instructions du projet et des dépôts imbriqués.31 Les skills Codex utilisent le même modèle mental SKILL.md avec divulgation progressive : Codex commence par le nom, la description et le chemin du fichier de la skill, puis ne charge la skill complète que lorsqu’il décide de l’utiliser.32 Codex dispose aussi de hooks natifs, de hooks inclus dans des plugins, de hooks gérés, de la prise en charge de MCP et de workflows explicites de subagents.3334
Codex v0.138.0–v0.139.0 a renforcé cette découverte d’AGENTS.md pour les espaces de travail non triviaux : le chargement passe désormais par l’abstraction du système de fichiers de l’environnement et préserve les chemins logiques pendant le parcours de découverte, afin que le bon fichier soit sélectionné même lorsque l’espace de travail est un système de fichiers distant ou une arborescence liée par symlink.61 C’est important chaque fois que votre AGENTS.md canonique est la source faisant autorité et que l’agent opère sur un checkout monté, matérialisé dans un conteneur ou lié par symlink — les cas où un parcours naïf des chemins choisit silencieusement le mauvais fichier d’instructions, ou aucun. Si vous répliquez un AGENTS.md faisant autorité entre plusieurs services, considérez cela comme le minimum requis pour avoir confiance dans le fait que le fichier réellement chargé par l’agent est celui que vous avez écrit.
Codex v0.141.0 a ensuite renforcé le chemin d’exécution distante lui-même : les exécuteurs distants se connectent désormais via des canaux Noise-relay authentifiés et chiffrés de bout en bout (le plan de contrôle et l’exécuteur ne font plus confiance au relais entre eux), l’exécution distante multiplateforme préserve le répertoire de travail et le shell natifs de l’exécuteur, et TLS accepte les signatures de certificat P-521 pour les proxys d’entreprise.65 Si votre orchestration pilote des exécuteurs Codex à travers une frontière réseau, c’est la différence entre une hypothèse de relais de confiance et une hypothèse chiffrée de bout en bout : traitez-le comme la base de toute topologie d’exécuteur distant.
La correspondance pratique :
| Couche de harness Claude Code | Équivalent Codex | Règle de migration |
|---|---|---|
CLAUDE.md / .claude/rules/ |
AGENTS.md / nested AGENTS.override.md |
Gardez les commandes et les règles d’achèvement canoniques ; ne scindez que lorsque la portée par répertoire diffère réellement |
.claude/skills/<name>/SKILL.md |
.agents/skills/<name>/SKILL.md or plugin skill |
Portez les workflows réutilisables, mais réécrivez les descriptions pour le vocabulaire d’activation et le budget de Codex |
.claude/settings.json hooks |
Codex config.toml, plugin hooks, or managed requirements hooks |
Portez d’abord les gates déterministes ; testez chaque hook avec de vrais événements d’outils avant de l’activer largement |
.claude/agents/*.md |
~/.codex/agents/*.toml, .codex/agents/*.toml, or built-in worker / explorer |
Ne portez que les agents ayant une valeur répétée ; préférez la délégation explicite, car les subagents Codex sont explicites |
| Plugins | Codex plugins | Utilisez les plugins comme unité de distribution une fois les hooks et skills locaux éprouvés |
La différence importante : les subagents Claude peuvent être sélectionnés automatiquement à partir des descriptions, tandis que Codex documente actuellement les workflows de subagents comme explicites. Cela fait des skills et des hooks le choix par défaut adapté au comportement de harness toujours actif dans Codex ; les subagents conviennent au travail parallèle, à la review et à l’exploration délibérés.
Tester vos instructions
Vérifiez que l’agent lit et suit réellement vos instructions :
# Check active instructions
claude --print "What instructions are you following for this project?"
# Verify specific rules are active
claude --print "What is your definition of done?"
Le test décisif : demandez à l’agent d’expliquer vos commandes de build. S’il ne peut pas les reproduire mot pour mot, les instructions sont soit trop verbeuses (contenu repoussé hors du contexte), soit trop vagues (l’agent ne peut pas extraire d’instructions actionnables), soit non découvertes. L’analyse de GitHub portant sur 2 500 dépôts a montré que le flou cause la plupart des échecs.21
Patterns de production
Patterns à long horizon d’Opus 4.7 (avril 2026)
Claude Opus 4.7 (16 avril 2026) a été livré avec des capacités spécifiques qui changent ce contre quoi un harness doit se défendre :29
- Résilience aux échecs d’outils : Opus 4.7 continue malgré des échecs d’outils qui interrompaient les sessions Opus 4.6. Vous pouvez réduire — sans les supprimer — les wrappers de relance défensive dans le code des subagents. Conservez les protections au niveau des hooks ; allégez l’échafaudage dans le prompt du type « si l’outil échoue, réessayez trois fois ».
- Niveau d’effort
xhigh(Opus-4.7 uniquement) : Se situe entrehighetmax. Recommandé comme valeur par défaut pour les charges de travail de codage et agentiques. Sur les subagents de longue durée,xhighsurpasse nettementhighavec un coût en tokens moins que proportionnel.maxreste le bon choix pour un raisonnement difficile en une seule passe ;xhighconvient mieux aux tâches soutenues. - Plafond de budget en tokens : Configurable par exécution d’agent via
output_config.task_budget(en-tête bêtatask-budgets-2026-03-13). Le modèle voit un compte à rebours en cours et cadre élégamment le travail en fonction du budget au lieu de tomber à court de manière inattendue. À utiliser pour les boucles agentiques où vous voulez des dépenses en tokens prévisibles sans sacrifier la qualité sur les prompts courts. - Conscience des besoins implicites : Premier modèle Claude à réussir les tests « implicit-need » — reconnaître quand la demande littérale de l’utilisateur ne précise pas assez ce dont il a réellement besoin. Cela rend la section « règles de clarification » de CLAUDE.md moins nécessaire. Si votre CLAUDE.md contient 200 lignes de garde-fous du type « envisager aussi X quand l’utilisateur demande Y », élaguez ceux qui sont désormais couverts nativement.
Base de worktree, chemins de sandbox et paramètres admin (7 mai 2026)
Claude Code v2.1.133 ajoute quatre paramètres de niveau administrateur utiles à connaître pour les harnesses de production :39
| Paramètre | Valeurs | Ce que cela fait |
|---|---|---|
worktree.baseRef |
fresh (default) | head |
Les nouveaux worktrees repartent de origin/<default>. Retour en arrière avec changement de valeur par défaut par rapport à v2.1.128, qui utilisait le HEAD local. Définissez worktree.baseRef: "head" si votre équipe dépend de commits non poussés disponibles dans les nouveaux worktrees. |
sandbox.bwrapPath |
chemin absolu | Épingle l’emplacement du binaire Bubblewrap sur les hôtes Linux/WSL où il n’est pas dans $PATH ou lorsque vous fournissez une version vendored. |
sandbox.socatPath |
chemin absolu | Même principe pour le binaire socat utilisé par le réseau du sandbox. |
parentSettingsBehavior |
'first-wins' (default) | 'merge' |
Contrôle de niveau administrateur sur la manière dont les managedSettings SDK se composent avec les paramètres parents enterprise/team. 'merge' permet à une session enfant d’hériter et d’étendre ; 'first-wins' maintient l’autorité du parent. |
Le retour en arrière de worktree.baseRef est celui à signaler aux utilisateurs : les agents qui dépendaient du comportement v2.1.128-v2.1.132 (worktrees branchés depuis le HEAD local) perdent l’accès au travail non poussé dans les nouveaux worktrees, sauf s’ils réactivent explicitement ce comportement.
Enquête de feedback OTel pour l’observabilité enterprise (8 mai 2026)
Claude Code v2.1.136 a ajouté CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL pour réactiver l’enquête qualité en session pour les entreprises qui capturent les réponses via OpenTelemetry.40 Si votre organisation envoie les événements OTel vers une pile d’observabilité centrale, cette variable d’environnement remet l’enquête dans le chemin de données afin que le signal qualité passe par le même pipeline que les métriques de latence et d’erreur. Traitez-la comme opt-in : par défaut, l’enquête reste supprimée, ce qui est correct pour les déploiements non OTel.
Le quality loop
Un processus de revue obligatoire pour tous les changements non triviaux :
- Implémenter - Écrire le code
- Relire - Relire chaque ligne. Repérer les fautes, les erreurs de logique, les sections peu claires
- Évaluer - Exécuter l’evidence gate. Vérifier les patterns, les cas limites, la couverture de tests
- Affiner - Corriger chaque problème. Ne jamais remettre à « plus tard »
- Prendre du recul - Vérifier les points d’intégration, les imports et le code adjacent pour détecter les régressions
- Répéter - Si un critère de l’evidence gate échoue, revenir à l’étape 4
- Rapporter - Lister ce qui a changé, comment cela a été vérifié, citer des preuves précises
L’evidence gate
« Je crois » et « cela devrait » ne sont pas des preuves. Citez des chemins de fichiers, des sorties de tests ou du code précis.
| Critère | Preuve requise |
|---|---|
| Suit les patterns de la base de code | Nommer le pattern et le fichier où il existe |
| Solution fonctionnelle la plus simple | Expliquer quelles alternatives plus simples ont été rejetées et pourquoi |
| Cas limites gérés | Lister les cas limites précis et la façon dont chacun est géré |
| Tests réussis | Coller une sortie de tests indiquant 0 échec |
| Aucune régression | Nommer les fichiers/fonctionnalités vérifiés |
| Résout le vrai problème | Énoncer le besoin de l’utilisateur et comment cela y répond |
Si vous ne pouvez pas produire de preuve pour une ligne, revenez à Affiner.22
Autorité humaine de merge
Une étude arXiv de mai 2026 portant sur 29 585 cycles de vie de pull requests d’agents IA distingue l’agence opérationnelle de la gouvernance de merge.47 La leçon d’architecture utile est simple : les agents peuvent démarrer le travail, faire avancer des branches, ouvrir des PR, relire le travail et résumer les risques, tandis que l’autorité de merge reste une frontière de gouvernance distincte.
Rendez cette frontière explicite dans le harness. Laissez les agents préparer les PR et collecter les preuves ; exigez une approbation humaine pour les merges, releases et opérations destructrices sur le dépôt, sauf si l’organisation dispose d’une politique d’automatisation auditée séparément. Lorsqu’une automatisation exécute un merge, conservez des journaux qui distinguent l’exécuteur de l’humain ou de la politique qui l’a autorisé.
Patterns de gestion des erreurs
Écritures de fichiers atomiques. Plusieurs agents écrivant simultanément dans le même fichier d’état corrompent JSON. Écrivez dans des fichiers .tmp, puis faites un mv atomique. L’OS garantit que mv est atomique sur le même système de fichiers.17
# Atomic state update
jq --argjson d "$new_depth" '.depth = $d' "$STATE_FILE" > "${STATE_FILE}.tmp"
mv "${STATE_FILE}.tmp" "$STATE_FILE"
Récupération après corruption d’état. Si l’état est corrompu, le pattern de récupération recrée depuis des valeurs par défaut sûres au lieu de planter :16
if ! jq -e '.depth' "$RECURSION_STATE_FILE" &>/dev/null; then
# Corrupted state file, recreate with safe defaults
echo '{"depth": 0, "agent_id": "root", "parent_id": null}' > "$RECURSION_STATE_FILE"
echo "- Recursion state recovered (was corrupted)"
fi
Le piège bash ((VAR++)). ((VAR++)) renvoie le code de sortie 1 lorsque VAR vaut 0, car 0++ s’évalue à 0, que bash traite comme faux. Avec set -e activé, cela tue le script. Utilisez plutôt VAR=$((VAR + 1)).16
Classification du rayon d’impact
Classez chaque action d’agent selon son rayon d’impact et appliquez le gate correspondant :2
| Classification | Exemples | Gate |
|---|---|---|
| Local | Écritures de fichiers, exécutions de tests, linting | Approuver automatiquement |
| Partagé | Commits Git, création de branches | Avertir + continuer |
| Externe | Git push, appels API, déploiements | Exiger une approbation humaine |
Remote Control (connexion à Claude Code local depuis n’importe quel navigateur ou application mobile) transforme le gate « Externe » d’une attente bloquante en notification asynchrone. L’agent continue à travailler sur la tâche suivante pendant que vous relisez la précédente depuis votre téléphone.2
Spécification des tâches pour les exécutions autonomes
Les tâches autonomes efficaces comportent trois éléments : objectif, critères d’achèvement et pointeurs de contexte :16
OBJECTIVE: Implement multi-agent deliberation with consensus validation.
COMPLETION CRITERIA:
- All tests in tests/test_deliberation_lib.py pass (81 tests)
- post-deliberation.sh validates consensus above 70% threshold
- recursion-guard.sh enforces spawn budget (max 12 agents)
- No Python type errors (mypy clean)
CONTEXT:
- Follow patterns in lib/deliberation/state_machine.py
- Consensus thresholds in configs/deliberation-config.json
- Spawn budget model: agents inherit budget, not increment depth
Les critères doivent être vérifiables par machine : réussite/échec des tests, sortie de linter, codes d’état HTTP, vérifications d’existence de fichiers. Une première tâche demandant à l’agent « d’écrire des tests qui passent » a produit assert True et assert 1 == 1. Techniquement correct. Pratiquement sans valeur.16
| Qualité des critères | Exemple | Résultat |
|---|---|---|
| Vague | « Les tests passent » | L’agent écrit des tests triviaux |
| Mesurable mais incomplet | « Les tests passent ET couverture >80% » | Les tests couvrent des lignes mais ne testent rien de significatif |
| Complet | « Tous les tests passent ET couverture >80% ET aucune erreur de type ET linter propre ET chaque classe de tests teste un module distinct » | Sortie de qualité production |
Modes d’échec à surveiller
| Mode d’échec | Description | Prévention |
|---|---|---|
| Spirale de raccourcis | Sauter des étapes du quality loop pour finir plus vite | L’evidence gate exige une preuve pour chaque critère |
| Mirage de confiance | « Je suis confiant » sans exécuter de vérification | Bannir le langage de couverture dans les rapports d’achèvement |
| Vérification fantôme | Affirmer que les tests passent sans les avoir exécutés dans cette session | Le hook Stop exécute les tests indépendamment |
| Dette différée | TODO/FIXME/HACK dans du code commité | Le hook PreToolUse sur git commit scanne le diff |
| Pollution du système de fichiers | Artefacts sans issue issus d’itérations abandonnées | Étape de nettoyage dans les critères d’achèvement |
Trace de session concrète
Trace de session issue d’une exécution autonome traitant un PRD avec 5 stories :2
-
SessionStart se déclenche. Le dispatcher injecte : date actuelle, détection du projet, contraintes de philosophie, initialisation du suivi des coûts. Cinq hooks, 180ms au total.
-
L’agent lit le PRD, planifie la première story.
UserPromptSubmitse déclenche. Le dispatcher injecte : contexte de projet actif, ligne de base de dérive de session. -
L’agent appelle Bash pour exécuter les tests.
PreToolUse:Bashse déclenche. Vérification des identifiants, validation du sandbox, détection du projet. 90ms. Les tests s’exécutent.PostToolUse:Bashse déclenche : heartbeat d’activité journalisé, vérification de dérive. -
L’agent appelle Write pour créer un fichier.
PreToolUse:Writese déclenche : vérification du périmètre de fichier.PostToolUse:Writese déclenche : vérification lint, suivi des commits. -
L’agent termine la story.
Stopse déclenche. Les quality gates vérifient : l’agent a-t-il cité des preuves ? Langage de couverture ? Commentaires TODO dans le diff ? Si une vérification échoue, sortie 2 et l’agent continue. -
Vérification indépendante : Un nouvel agent exécute la suite de tests sans faire confiance à l’auto-rapport de l’agent précédent.
-
Trois agents de revue de code apparaissent en parallèle. Chacun relit le diff indépendamment. Si un reviewer signale CRITICAL, la story revient dans la file.
-
La story passe. La story suivante se charge. Le cycle se répète pour les 5 stories.
Total des hooks déclenchés sur 5 stories : ~340. Temps total dans les hooks : ~12 secondes. Cette surcharge a empêché trois fuites d’identifiants, une commande destructrice et deux implémentations incomplètes dans une seule exécution nocturne.
Étude de cas : traitement nocturne de PRD
Un harness de production a traité 12 PRDs (47 stories) sur 8 sessions nocturnes. Les métriques comparent les 4 premiers PRDs (harness minimal : CLAUDE.md uniquement) aux 8 derniers (harness complet : hooks, skills, quality gates, revue multi-agent).
| Métrique | Minimal (4 PRDs) | Harness complet (8 PRDs) | Changement |
|---|---|---|---|
| Fuites d’identifiants | 2 fuités dans git | 7 bloqués avant commit | Réactif vers préventif |
| Commandes destructrices | 1 force-push vers main | 4 bloquées | Application par sortie 2 |
| Taux de fausse complétion | 35% avec tests échoués | 4% | Evidence gate + hook Stop |
| Cycles de révision/story | 2.1 | 0.8 | Skills + quality loop |
| Dégradation du contexte | 6 incidents | 1 incident | Mémoire du système de fichiers |
| Surcharge en tokens | 0% | ~3.2% | Négligeable |
| Temps de hook/story | 0s | ~2.4s | Négligeable |
Les deux fuites d’identifiants ont nécessité de faire tourner les clés API et d’auditer les services en aval : environ 4 heures de réponse à incident. La surcharge du harness qui a empêché l’équivalent était de 2,4 secondes de bash par story. Le taux de fausse complétion est passé de 35% à 4%, car le hook Stop exécutait indépendamment les tests avant d’autoriser l’agent à annoncer que c’était terminé.
Considérations de sécurité
Les cinq principes des agents dignes de confiance (Anthropic, avril 2026)
Anthropic a publié un cadre formel pour la fiabilité des agents le 9 avril 2026.27 Ces cinq principes rejoignent — et prolongent — la logique d’Evidence Gate présentée dans ce guide :
| Principe | Ce que cela signifie | Comment ce harness y répond |
|---|---|---|
| Contrôle humain | Possibilité réelle de reprise en main humaine à chaque point de décision | Les hooks contrôlent les appels d’outils ; blocage PreCompact ; classificateur Auto Mode comme couche de vérification |
| Alignement des valeurs | Les actions de l’agent suivent l’intention de l’utilisateur, pas des objectifs adjacents | CLAUDE.md comme spécification explicite de l’intention ; skills comme délimitation des capacités |
| Sécurité | Résistance aux entrées adverses et à l’injection de prompt | Sandbox + règles de refus + validation des entrées au niveau des hooks |
| Transparence | Journaux auditables des décisions et des actions | Journalisation des hooks ; transcriptions de session ; traces d’invocation des skills |
| Confidentialité | Traitement et gouvernance appropriés des données | Nettoyage des variables d’environnement de credentials ; détection des secrets au niveau des hooks |
Anthropic a également donné MCP à l’Agentic AI Foundation de la Linux Foundation, rejoignant AGENTS.md (désormais cogéré avec OpenAI, Google, Cursor, Factory, Sourcegraph). Les standards d’interopérabilité des agents sont maintenant neutres vis-à-vis des fournisseurs.27
Outillage de sandbox pour skills : Pour les équipes qui considèrent les skills comme une surface d’attaque, SandyClaw de Permiso (lancé le 2 avril 2026) exécute les skills dans un sandbox dédié et fournit des verdicts étayés par des preuves issues de détections Sigma/YARA/Nova/Snort. Premier produit de la catégorie skill-sandbox.28
Le sandbox
Claude Code prend en charge un mode sandbox facultatif (activé via settings.json ou la commande /sandbox) qui restreint l’accès réseau et les opérations sur le système de fichiers au moyen d’une isolation au niveau de l’OS (seatbelt sur macOS, bubblewrap sur Linux). Lorsqu’il est activé, le sandbox empêche le modèle d’effectuer des requêtes réseau arbitraires ou d’accéder à des fichiers en dehors du répertoire du projet. Sans sandbox, Claude Code utilise un modèle fondé sur les permissions, dans lequel vous approuvez ou refusez les appels d’outils individuels.13
Plancher de sécurité de mai 2026. Claude Code v2.1.149 a corrigé un contournement de permission lié au répertoire de travail PowerShell, plusieurs lacunes d’analyse des permissions dans les allow-rules PowerShell et les variables périmées, ainsi qu’un bug de write-allowlist du sandbox git-worktree qui couvrait toute la racine du dépôt principal au lieu des seuls éléments internes git partagés.53 Si votre harness autorise PowerShell ou des agents isolés par worktree, considérez v2.1.149+ comme le plancher et gardez des règles shell étroites. Les exceptions larges PowerShell(*) et les permissions d’écriture sur tout le dépôt sont des raccourcis d’orchestration, pas des limites de sécurité.
Verrouillage du sandbox OpenAI Agents SDK (v0.17.0, 8 mai 2026). Côté OpenAI, openai-agents-python v0.17.0 a renforcé une frontière parallèle : LocalFile.src et LocalDir.src sont désormais limités au base_dir de matérialisation (le répertoire de travail courant du processus SDK lorsque le manifeste est appliqué), sauf si la source est explicitement accordée via Manifest.extra_path_grants avec SandboxPathGrant.41 Les sources locales relatives se résolvent depuis base_dir ; les chemins absolus doivent déjà s’y trouver ou disposer d’un grant. Cela ferme un problème de frontière d’artefact local : les versions précédentes permettaient aux manifestes d’importer des chemins hôtes arbitraires dans un espace de travail sandbox. Migration : déclarez les racines hôtes de confiance au niveau du manifeste avec SandboxPathGrant(path=..., read_only=True) pour les montages en lecture seule. Traitez extra_path_grants comme une configuration applicative de confiance ; ne renseignez jamais les grants à partir de la sortie du modèle ou d’une entrée de manifeste non fiable.
Plancher de suivi OpenAI Agents SDK (v0.17.3). La série 0.17.1-0.17.3 a ajouté davantage de durcissement du sandbox et des sessions : limites d’extraction d’archives, validation des sous-chemins GitRepo, erreurs de fournisseur de sandbox plus claires, credentials de point de montage tenus hors des commandes sandbox, rejet des racines relatives d’espace de travail sandbox et gestion de l’état terminal Vercel-sandbox.54 Si vous utilisez des sandboxes hébergés par OpenAI ou adossés à un fournisseur, et pas seulement les hooks Claude Code, considérez 0.17.3 comme le plancher actuel pour les modèles de cette section.
Limites de permission
Le système de permissions contrôle les opérations à plusieurs niveaux :
| Niveau | Contrôles | Exemple |
|---|---|---|
| Permissions d’outils | Quels outils peuvent être utilisés | Restreindre le subagent à Read, Grep, Glob |
| Permissions de fichiers | Quels fichiers peuvent être modifiés | Bloquer les écritures vers .env, credentials.json |
| Permissions de commandes | Quelles commandes bash peuvent s’exécuter | Bloquer rm -rf, git push --force |
| Permissions réseau | Quels domaines sont accessibles | Allowlist pour les connexions au serveur MCP |
Règles de permission au niveau des paramètres (juin 2026)
Claude Code v2.1.178 a étendu les règles de permission du niveau de l’outil au niveau du paramètre : Tool(param:value) compare les paramètres d’entrée d’un outil, avec * comme caractère générique. L’exemple canonique est Agent(model:opus) — une règle qui empêche de lancer des subagents sur un palier de modèle spécifique.63 Sur le plan architectural, cela comble une lacune que le tableau à quatre niveaux ci-dessus ne pouvait pas exprimer : auparavant, vous autorisiez ou refusiez un outil en bloc, sans pouvoir contraindre comment il était appelé. Une politique de gouvernance peut désormais dire « les subagents peuvent être lancés, mais pas sur le palier Fable 5 » ou « Bash est autorisé, mais pas avec ce flag » sous forme de règle déterministe plutôt que de demande au niveau du prompt.
Un paramètre géré associé, enforceAvailableModels (v2.1.175), contraint la sélection de modèles de haut en bas : il fixe le modèle Default et empêche les paramètres définis au niveau utilisateur ou projet d’élargir l’allowlist gérée availableModels.63 Les deux se composent : l’allowlist définit les paliers disponibles pour toute la session, et les règles au niveau des paramètres contraignent la manière dont les subagents y puisent.
Garde-fous d’Auto Mode pour les commandes destructrices (juin 2026)
Claude Code v2.1.183 a réduit le rayon d’impact d’auto mode pour les opérations qui peuvent perdre du travail en silence ou démanteler des environnements. Auto mode bloque désormais strictement, sauf si vous les avez explicitement demandées dans la session : les opérations git destructrices (git reset --hard, git checkout -- ., git clean -fd, git stash drop) ; git commit --amend lorsque le commit n’a pas été fait par l’agent dans cette session ; et les destructions d’infrastructure (terraform destroy, pulumi destroy, cdk destroy) sauf si vous avez nommé la stack précise.65 Sur le plan architectural, c’est le complément du contrôle de lancement et des règles au niveau des paramètres ci-dessus : plutôt que de contrôler quel outil ou comment il est lancé, cela contrôle un petit ensemble de commandes irréversibles spécifiques par l’intention — l’agent peut toujours les exécuter, mais uniquement sur instruction explicite, pas de sa propre initiative. Pour un harness autonome, encodez le même principe dans vos propres hooks PreToolUse : les commandes qui détruisent l’état méritent une règle deny-by-default que seul un signal explicite de l’opérateur peut lever.
Défense contre l’injection de prompt
Les skills et les hooks apportent une défense en profondeur contre l’injection de prompt :
Les skills avec restrictions d’outils empêchent un prompt compromis d’obtenir un accès en écriture :
allowed-tools: Read, Grep, Glob
Les hooks PreToolUse valident chaque appel d’outil, quelle que soit la manière dont le modèle a été prompté :
# Block credential file access regardless of prompt
if echo "$FILE_PATH" | grep -qE "\.(env|pem|key|credentials)$"; then
echo "BLOCKED: Sensitive file access" >&2
exit 2
fi
L’isolation des subagents limite le rayon d’impact. Un subagent avec permissionMode: plan ne peut pas effectuer de modifications, même si son prompt est compromis.
Les journaux d’agents et les garde-fous sont des surfaces de sécurité
Deux avis de mai 2026 renforcent un modèle : l’infrastructure d’agents crée de nouveaux endroits où du contenu sensible et des politiques exécutables peuvent fuir ou s’échapper. GitHub Advisory GHSA-f3jg-756w-gm35 couvre un problème de filtre de payload Gryph Agents dans lequel du contenu sensible de tool-payload pouvait rester dans des journaux SQLite locaux avec le comportement de journalisation par défaut.45 OSV GHSA-wxxx-gvqv-xp7p couvre une évasion de sandbox de guardrail à code personnalisé LiteLLM dans un endpoint proxy protégé par administration.46
La règle de production : traitez les transcriptions d’agents, les tool payloads, les journaux SQLite et l’exécution des guardrails comme une infrastructure sensible. Expurgez avant la persistance, appliquez des limites de rétention et gardez le code de guardrail personnalisé sandboxé et révisable. Une règle au niveau du prompt du type « ne journalisez pas les secrets » ne suffit pas ; le chemin de journalisation et de guardrail a besoin de tests déterministes.
Sécurité des hooks
Les hooks HTTP qui interpolent des variables d’environnement dans les en-têtes exigent une liste explicite allowedEnvVars afin d’empêcher l’exfiltration arbitraire de variables d’environnement :13
{
"type": "http",
"url": "https://api.example.com/notify",
"headers": {
"Authorization": "Bearer $MY_TOKEN"
},
"allowedEnvVars": ["MY_TOKEN"]
}
La répartition des responsabilités entre humain et agent
La sécurité dans les architectures d’agents exige une répartition claire entre les responsabilités humaines et celles de l’agent :17
| Responsabilité humaine | Responsabilité de l’agent |
|---|---|
| Définition du problème | Exécution du pipeline |
| Seuils de confiance | Exécution dans les seuils |
| Exigences de consensus | Calcul du consensus |
| Critères de quality gate | Application du quality gate |
| Analyse des erreurs | Détection des erreurs |
| Décisions d’architecture | Options d’architecture |
| Injection du contexte métier | Génération de documentation |
Le modèle : les humains possèdent les décisions qui nécessitent un contexte organisationnel, un jugement éthique ou une direction stratégique. Les agents possèdent les décisions qui nécessitent une recherche computationnelle dans de vastes espaces de possibilités. Les hooks font respecter la frontière.
Application récursive des hooks
Les hooks se déclenchent aussi pour les actions des subagents.13 Si Claude lance un subagent via l’Agent tool, vos hooks PreToolUse et PostToolUse s’exécutent pour chaque outil utilisé par le subagent. Sans application récursive des hooks, un subagent pourrait contourner vos garde-fous de sécurité. L’événement SubagentStop vous permet d’exécuter un nettoyage ou une validation lorsqu’un subagent se termine.
Ce n’est pas facultatif. Un agent qui lance un subagent sans vos hooks de sécurité est un agent qui peut force-push vers main, lire des fichiers de credentials ou exécuter des commandes destructrices pendant que vos garde-fous observent la conversation principale ne rien faire.
Le coût comme architecture
Le coût est une décision architecturale, pas une réflexion opérationnelle après coup.2 Trois niveaux :
Niveau tokens. Compression du prompt système. Supprimez les exemples de code didactiques (le modèle connaît les APIs), fusionnez les règles dupliquées entre fichiers et remplacez les explications par des contraintes. « Rejeter les appels d’outils correspondant à des chemins sensibles » fait le même travail qu’une explication de 15 lignes sur les raisons pour lesquelles les credentials ne doivent pas être lus.
Niveau agent. Des lancements frais plutôt que de longues conversations. Chaque story d’une exécution autonome reçoit un nouvel agent avec un contexte propre. Le contexte ne gonfle jamais, car chaque agent repart de zéro. Briefing plutôt que mémoire : les modèles exécutent mieux un briefing clair qu’ils ne naviguent 30 étapes de contexte accumulé.
Niveau architecture. CLI d’abord plutôt que MCP lorsque l’opération est sans état. Un appel claude --print pour une évaluation ponctuelle coûte moins cher et n’ajoute aucune surcharge de connexion. MCP est pertinent lorsque l’outil a besoin d’un état persistant ou de streaming.
Cadre de décision
Quand utiliser chaque mécanisme :
| Problème | Utiliser | Pourquoi |
|---|---|---|
| Formater le code après chaque modification | PostToolUse hook | Doit se produire à chaque fois, de façon déterministe |
| Bloquer les commandes bash dangereuses | PreToolUse hook | Doit bloquer avant l’exécution, code de sortie 2 |
| Appliquer des modèles de revue de sécurité | Skill | Expertise de domaine qui s’active automatiquement selon le contexte |
| Explorer le codebase sans polluer le contexte | Explore subagent | Contexte isolé, ne renvoie qu’un résumé |
| Exécuter une refactorisation expérimentale en sécurité | Worktree-isolated subagent | Les changements peuvent être abandonnés s’ils échouent |
| Examiner le code depuis plusieurs perspectives | Parallel subagents ou Agent Team | Une évaluation indépendante évite les angles morts |
| Décider d’une architecture irréversible | Multi-agent deliberation | Déclencheur de confiance + validation par consensus |
| Persister les décisions entre les sessions | MEMORY.md | Le système de fichiers survit aux frontières de contexte |
| Partager les standards d’équipe | Project CLAUDE.md + .claude/rules/ | Distribué par Git, chargé automatiquement |
| Définir les commandes de build/test du projet | CLAUDE.md | Instructions centrées sur les commandes que l’agent peut vérifier |
| Exécuter un développement autonome long | Ralph loop (itération à contexte frais) | Budget de contexte complet par itération, état du système de fichiers |
| Notifier Slack à la fin de la session | Async Stop hook | Non bloquant, ne ralentit pas la session |
| Valider la qualité avant le commit | PreToolUse hook on git commit | Bloquer le commit si le lint/les tests échouent |
| Imposer les critères d’achèvement | Stop hook | Empêcher l’agent de s’arrêter avant que la tâche soit terminée |
Skills vs Hooks vs Subagents
| Dimension | Skills | Hooks | Subagents |
|---|---|---|---|
| Invocation | Automatique (raisonnement LLM) | Déterministe (pilotée par événement) | Explicite ou déléguée automatiquement |
| Garantie | Probabiliste (le modèle décide) | Déterministe (se déclenche toujours) | Déterministe (contexte isolé) |
| Coût en contexte | Injecté dans le contexte principal | Zéro (s’exécute hors de LLM) | Fenêtre de contexte séparée |
| Coût en tokens | Budget de description (1 % de la fenêtre, repli à 8 000 caractères) | Zéro | Contexte complet par subagent |
| Idéal pour | Expertise de domaine | Application de règles | Travail ciblé, exploration |
FAQ
Combien de hooks, est-ce trop ?
La contrainte, c’est la performance, pas le nombre. Chaque hook s’exécute de manière synchrone ; le temps total d’exécution des hooks s’ajoute donc à chaque appel d’outil correspondant. 95 hooks répartis entre paramètres utilisateur et paramètres projet s’exécutent sans latence perceptible lorsque chaque hook se termine en moins de 200 ms. Le seuil à surveiller : si un PostToolUse hook ajoute plus de 500 ms à chaque modification de fichier, la session semble lente. Profilez vos hooks avec time avant de les déployer.14
Les hooks peuvent-ils empêcher Claude Code d’exécuter une commande ?
Oui. Les PreToolUse hooks bloquent toute action d’outil en quittant avec le code 2. Claude Code annule l’action en attente et affiche la sortie stderr du hook au modèle. Claude voit la raison du refus et suggère une alternative plus sûre. La sortie 1 est un avertissement non bloquant : l’action continue tout de même.3
Où dois-je placer les fichiers de configuration des hooks ?
Les configurations de hooks vont dans .claude/settings.json pour les hooks au niveau projet (committés dans votre dépôt, partagés avec votre équipe) ou dans ~/.claude/settings.json pour les hooks au niveau utilisateur (personnels, appliqués à tous les projets). Les hooks au niveau projet sont prioritaires lorsque les deux existent. Utilisez des chemins absolus pour les fichiers de scripts afin d’éviter les problèmes de répertoire de travail.14
Chaque décision nécessite-t-elle une délibération ?
Non. Le module de confiance note les décisions selon quatre dimensions (ambiguïté, complexité, enjeux, dépendance au contexte). Seules les décisions dont la confiance globale est inférieure à 0,70 déclenchent une délibération, soit environ 10 % du total des décisions. Les corrections de documentation, renommages de variables et modifications courantes ignorent entièrement la délibération. L’architecture de sécurité, les changements de schéma de base de données et les déploiements irréversibles la déclenchent systématiquement.7
Comment tester un système conçu pour produire du désaccord ?
Testez à la fois les chemins de réussite et les chemins d’échec. Réussite : les agents sont en désaccord de façon productive et atteignent un consensus. Échec : les agents convergent trop vite, ne convergent jamais ou dépassent les budgets de spawn. Les tests de bout en bout simulent chaque scénario avec des réponses d’agents déterministes, en vérifiant que les deux portes de validation détectent chaque mode d’échec documenté. Un système de délibération en production exécute 141 tests sur trois couches : 48 tests d’intégration bash, 81 tests unitaires Python et 12 simulations de pipeline de bout en bout.7
Quel est l’impact de la délibération sur la latence ?
Une délibération à 3 agents ajoute 30 à 60 secondes de temps réel (les agents s’exécutent séquentiellement via l’Agent tool). Une délibération à 10 agents ajoute 2 à 4 minutes. Les hooks de consensus et de pride check s’exécutent chacun en moins de 200 ms. Le principal goulot d’étranglement est le temps d’inférence LLM par agent, pas le surcoût d’orchestration.7
Quelle longueur doit faire un fichier CLAUDE.md ?
Gardez chaque section sous 50 lignes et le fichier complet sous 150 lignes. Les fichiers longs sont tronqués par les fenêtres de contexte ; placez donc en premier les instructions les plus critiques : commandes et définitions de clôture avant les préférences de style.21
Cela peut-il fonctionner avec des outils autres que Claude Code ?
Les principes architecturaux (hooks comme portes déterministes, skills comme expertise de domaine, subagents comme contextes isolés, système de fichiers comme mémoire) s’appliquent conceptuellement à tout système agentique. L’implémentation spécifique utilise les événements de cycle de vie, les motifs de matcher et l’Agent tool de Claude Code. AGENTS.md porte les mêmes modèles vers Codex, Cursor, Copilot, Amp et Windsurf.21 Le modèle de harness est indépendant de l’outil, même si les détails d’implémentation sont propres à chaque outil.
Carte de référence rapide
Configuration des hooks
{
"hooks": {
"PreToolUse": [{"matcher": "Bash", "hooks": [{"type": "command", "command": "script.sh"}]}],
"PostToolUse": [{"matcher": "Write|Edit", "hooks": [{"type": "command", "command": "format.sh"}]}],
"Stop": [{"matcher": "", "hooks": [{"type": "agent", "prompt": "Verify tests pass. $ARGUMENTS"}]}],
"SessionStart": [{"matcher": "", "hooks": [{"type": "command", "command": "setup.sh"}]}]
}
}
Frontmatter de Skill
---
name: my-skill
description: What it does and when to use it. Include trigger phrases.
allowed-tools: Read, Grep, Glob
---
Définition de subagent
---
name: my-agent
description: When to invoke. Include PROACTIVELY for auto-delegation.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan
---
Instructions for the subagent.
Codes de sortie
| Code | Signification | Utilisation |
|---|---|---|
| 0 | Réussite | Autoriser l’opération |
| 2 | Blocage | Portes de sécurité, portes de qualité |
| 1 | Avertissement non bloquant | Journalisation, messages consultatifs |
Commandes clés
| Commande | Objectif |
|---|---|
/compact |
Compresser le contexte, préserver les décisions |
/context |
Voir l’allocation de contexte et les skills actifs |
/agents |
Gérer les subagents |
/goal <condition> |
Garder Claude au travail vers une condition d’achèvement |
claude agents |
Ouvrir Agent View pour les sessions en cours, bloquées et terminées |
CLAUDE_CODE_WORKFLOWS=1 |
Activer le Workflow tool pour une orchestration multi-agent déterministe |
claude -c |
Continuer la session la plus récente |
claude --print |
Invocation CLI ponctuelle (sans conversation) |
# <note> |
Ajouter une note au fichier mémoire |
/memory |
Voir et gérer l’auto-memory |
Emplacements de fichiers
| Chemin | Objectif |
|---|---|
~/.claude/CLAUDE.md |
Instructions globales personnelles |
.claude/CLAUDE.md |
Instructions projet (partagées par Git) |
.claude/settings.json |
Hooks et permissions du projet |
~/.claude/settings.json |
Hooks et permissions utilisateur |
~/.claude/skills/<name>/SKILL.md |
Skills personnels |
.claude/skills/<name>/SKILL.md |
Skills projet (partagés par Git) |
~/.claude/agents/<name>.md |
Définitions personnelles de subagents |
.claude/agents/<name>.md |
Définitions de subagents du projet |
.claude/rules/*.md |
Fichiers de règles du projet |
~/.claude/rules/*.md |
Fichiers de règles utilisateur |
~/.claude/projects/{path}/memory/MEMORY.md |
Auto-memory |
Journal des modifications
| Date | Changement |
|---|---|
| 2026-06-20 | Guide v1.20 : Claude Code v2.1.183 + Codex v0.141.0 — gouvernance et sécurité de l’exécution distante. Ajout des garde-fous contre les commandes destructrices en auto-mode (CC v2.1.183 bloque strictement git reset --hard/checkout -- ./clean -fd/stash drop, git commit --amend sur les commits non agent, et terraform/pulumi/cdk destroy sans stack nommée sauf si vous l’avez demandé) aux Considérations de sécurité, présentés comme le complément au niveau de l’intention des règles au niveau des paramètres et de la validation des spawns ; et des exécuteurs distants chiffrés via relais Noise (Codex v0.141.0 : canaux d’exécution chiffrés de bout en bout, préservation multiplateforme du cwd/shell, TLS P-521) dans les Notes de parité Codex. |
| 2026-06-16 | Guide v1.19 : Claude Code v2.1.173–v2.1.179 : primitives de gouvernance et de cadrage, plus import inter-outils Codex v0.140.0. Intégration de la version v2.1.178 dans le corps du guide : règles d’autorisation au niveau des paramètres Tool(param:value) avec caractère générique * (par ex. Agent(model:opus) pour bloquer un palier de modèle) plus le paramètre managé enforceAvailableModels (v2.1.175), tous deux dans Sécurité → Limites d’autorisation ; l’auto mode valide désormais les spawns de subagents avant le lancement, ce qui ferme la faille du spawn utilisé comme contournement (Motifs de subagents) ; chargement des .claude/skills imbriqués + résolution au plus proche gagnant pour les skills/agents/workflows/output-styles dans les arborescences .claude/ imbriquées (Système de skills) ; et le correctif de correspondance des specs de serveur MCP pour disallowedTools (Champs de configuration des subagents). Ajout de la portabilité inter-outils Codex /import + suppression permanente de session (v0.140.0) à la note de parité Codex. |
| 2026-06-10 | Guide v1.18 : Sub-agents récursifs (Claude Code v2.1.172). Ajout d’une note à la sous-section Garde de récursion : les sub-agents Claude Code peuvent désormais générer leurs propres sub-agents, avec une imbrication jusqu’à 5 niveaux — là où la délégation était auparavant, dans les faits, limitée à un seul niveau (v2.1.172, 10 juin). Reformulation du motif userland de budget de spawn/plafond de profondeur comme le contrôle qui empêche un arbre à 5 niveaux de s’évaser, les 5 niveaux étant traités comme un plafond de plateforme plutôt qu’un comportement par défaut. |
| 2026-06-09 | Guide v1.17 : Claude Code v2.1.169–v2.1.170 + Codex v0.138.0–v0.139.0 : gouvernance et durcissement multi-agent-v2. Intégration de cinq changements vérifiés d’architecture de harness dans le corps du guide. Le Système de skills gagne une sous-section « Masquer la surface intégrée comme gouvernance » : le paramètre disableBundledSkills (et la variable d’env. CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) masque au modèle les skills intégrées, les workflows et les slash commands intégrées afin de réduire volontairement la surface d’attaque (v2.1.169). La sous-section Architecture de hooks de juin ajoute le flag --safe-mode (et CLAUDE_CODE_SAFE_MODE), qui démarre une session avec toutes les personnalisations désactivées — CLAUDE.md, plugins, skills, hooks, MCP — pour le dépannage en salle blanche et la gouvernance (v2.1.169), plus une note sur les paliers de modèle : Claude Fable 5 (claude-fable-5) de Anthropic a été lancé le 9 juin comme palier Mythos au-dessus d’Opus, sélectionnable via /model claude-fable-5 dans v2.1.170, Opus 4.8 restant le défaut agentique de Claude Code. Mémoire et contexte ajoute la commande /cd (v2.1.169), qui déplace une session vers un nouveau répertoire de travail sans casser le cache de prompt en milieu de session. Orchestration multi-agent / Parité Codex durci pour la production : close_agent renommé interrupt_agent (v0.139.0), payloads de messages inter-agents chiffrés, catalogue de configuration d’agents v2, LRU de résidence d’agents et concurrence comptée par exécution active (v0.138.0), découverte AGENTS.md routée via les systèmes de fichiers d’environnement avec chemins logiques préservés pour une sélection correcte des fichiers dans les workspaces distants/symlinkés (v0.138.0/v0.139.0), et avertissements de démarrage MCP des subagents limités au thread propriétaire au lieu d’être dupliqués dans le parent (v0.139.0). |
| 2026-06-08 | Guide v1.16 : Motifs d’architecture agent de juin issus de Claude Code v2.1.162–v2.1.166 + Codex v0.137.0. Ajout de la sous-section « Pilotage par Stop-hook, autorité inter-session et multi-agent v2 » couvrant quatre changements pertinents pour les harness : (1) les hooks Stop/SubagentStop peuvent renvoyer hookSpecificOutput.additionalContext pour injecter un retour « pas encore terminé, voici pourquoi » et poursuivre le tour sans bloc d’erreur de hook (v2.1.163) ; (2) messagerie inter-session durcie afin que les messages relayés par SendMessage depuis une autre session ne portent plus l’autorité de l’utilisateur d’origine — traitez les messages inter-agents entrants comme des données non fiables (v2.1.166) ; (3) le paramètre fallbackModel enchaîne jusqu’à trois modèles de secours avec une nouvelle tentative de fallback unique sur les erreurs API non relançables, et claude agents --json ajoute un champ waitingFor pour l’observabilité de flotte (v2.1.162/166) ; (4) Codex multi-agent v2 (v0.137.0) conserve le runtime avec chaque thread, définit hide_spawn_agent_metadata à true par défaut, propage les événements parent aux listeners enfant, et ajoute une extension de skills v1 avec résolution du catalogue à chaque tour et événements contributeurs de cycle de vie thread-start/turn-error. Aucun changement de spec pour AGENTS.md (toujours administré par Agentic-AI-Foundation, sans changelog versionné). |
| 2026-05-31 | Guide v1.15 : Claude Code v2.1.157 + correctifs Hermes v0.15.1/v0.15.2. Ajout de la sous-section « Convergence des plugins et skills dans .claude/skills/ » : Claude Code v2.1.157 charge automatiquement comme plugin tout dossier dans le répertoire .claude/skills/ d’un projet sans inscription marketplace, et claude plugin init <name> y échafaude un nouveau plugin avec manifeste + SKILL.md. L’implication pour les harness est réelle : les petits outils de projet à portée limitée n’ont plus à payer la taxe de manifeste pour vivre dans le contrôle de version ; les plugins conservent toutefois la forme ZIP installable groupée. La même version livre EnterWorktree pour basculer en milieu de session entre worktrees managés par Claude et laisse les worktrees d’arrière-plan déverrouillés après la fin de l’agent afin que git worktree remove/prune fonctionnent proprement. Hermes Agent v0.15.1 (29 mai) est le hotfix Velocity du même jour : correctif de boucle de rechargement 401 du dashboard en mode loopback, Docker exige désormais explicitement HERMES_DASHBOARD_INSECURE=1, les commandes nues MCP (npx, npm, node) se résolvent dans Docker, page Skills restaurée, workers Kanban répondant proprement à SIGTERM, catalogue Skills.sh passé de 858 à 19 932 entrées via sitemap. Hermes v0.15.2 (29 mai) est un hotfix uniquement packaging qui inclut les manifestes plugin.yaml dans les distributions wheel et sdist. |
| 2026-05-28 | Guide v1.14 : Claude Code v2.1.152-v2.1.154 + Codex v0.134.0-v0.135.0 + passe de motifs d’architecture Hermes v0.15.0. Claude Code a déplacé des valeurs par défaut et ajouté des primitives d’orchestration : Opus 4.8 est désormais le défaut avec effort élevé par défaut et un nouveau /effort xhigh ; les workflows dynamiques orchestrent des dizaines à des centaines d’agents en arrière-plan via /workflows ; le prompt système allégé est désormais le défaut pour tous les modèles sauf Haiku/Sonnet/Opus 4.7 et antérieurs ; le nouvel événement de hook MessageDisplay permet aux hooks de transformer ou masquer le texte assistant au moment de son affichage ; disallowed-tools dans le frontmatter de skill/commande retire des tools pendant que la skill est active ; /reload-skills rescane les répertoires de skills sans redémarrage ; les hooks SessionStart peuvent renvoyer reloadSkills: true et définir hookSpecificOutput.sessionTitle ; --fallback-model bascule en milieu de session quand le modèle principal manque ; auto mode ne nécessite plus de consentement opt-in ; le paramètre managé pluginSuggestionMarketplaces met en allowlist les marketplaces d’organisation pour les suggestions contextuelles ; claude agents accepte les sessions shell d’arrière-plan ! <command> ; les plugins peuvent déclarer defaultEnabled: false ; l’env des sous-processus stdio MCP inclut désormais CLAUDE_CODE_SESSION_ID et CLAUDECODE=1. Codex v0.134.0 a fait de --profile le sélecteur de profil principal dans CLI, les autorisations TUI et les flux de sandbox (configs héritées rejetées avec conseils de migration), ajouté la recherche locale dans l’historique de conversation, amélioré la configuration MCP avec ciblage d’environnement par serveur et OAuth pour les serveurs HTTP streamables, et permis aux tools MCP en lecture seule de s’exécuter simultanément lorsqu’ils annoncent readOnlyHint ; v0.135.0 ajoute des diagnostics codex doctor plus riches, des détails distants /status, l’édition vim par objets textuels, des profils d’autorisation nommés dans /permissions, et des presets Sandbox dans le Python SDK. Hermes Agent v0.15.0 (28 mai) livre la version Velocity : run_agent.py refactoré à 76 % sur 14 modules, Kanban multi-agent v2 avec auto-décomposition et topologie en essaim, Bitwarden Secrets Manager remplaçant les clés par fournisseur par un seul token bootstrap, défense Promptware contre les injections de prompt de classe Brainworm à trois points de contrôle de sécurité, bundles de skills, orchestrateur de session TUI pour la gestion multi-session dans un terminal, et session_search 4 500× plus rapide avec la dépendance LLM supprimée. Implications d’architecture de harness : le motif de profil nommé (Codex --profile, Claude Code pluginSuggestionMarketplaces) devient la primitive de configuration standard des runtimes d’agents multi-tenant ; les tools MCP simultanés en lecture seule (Codex readOnlyHint) sont le bon motif pour éventer les récupérations de contexte non mutatives ; le hook MessageDisplay donne aux opérateurs une surface de transformation de premier ordre inaccessible depuis PostToolUse ou Stop ; et le défaut de prompt système allégé supprime l’ancien compromis entre contexte défini par l’opérateur et échafaudage fournisseur. |
| 2026-05-24 | Guide v1.13 : Claude Code v2.1.150 + passe sécurité/actualité OpenAI Agents SDK v0.17.3. Le claude --version local a renvoyé 2.1.144 (Claude Code), tandis que la dernière version npm de @anthropic-ai/claude-code a renvoyé 2.1.150 et que la dernière release GitHub a renvoyé v2.1.150. Ajout de conseils de harness v2.1.149 pour les correctifs de contournement d’autorisations PowerShell, les correctifs d’analyse d’autorisations PowerShell allow-rule/variable obsolète, et le correctif d’allowlist d’écriture du sandbox git-worktree ; mention que v2.1.150 est uniquement de l’infrastructure interne sans changement utilisateur annoncé. La dernière version PyPI de openai-agents a renvoyé 0.17.3, donc la section sandbox OpenAI note désormais le durcissement de suivi 0.17.1-0.17.3 pour l’extraction d’archives, les sous-chemins GitRepo, les credentials de sandbox, les racines relatives de workspace, et la gestion d’état terminal des fournisseurs.5354 |
| 2026-05-21 | Guide v1.12 : Passe Workflow Claude Code v2.1.147. Le claude --version local a renvoyé 2.1.144 (Claude Code), tandis que la dernière version npm de @anthropic-ai/claude-code a renvoyé 2.1.147. Ajout du tool Workflow, désactivé par défaut, comme primitive propriétaire d’orchestration multi-agent déterministe, et clarification que les hooks, tests, portes de review, budgets de spawn et rapports d’evidence restent la limite de correction.52 |
| 2026-05-15 | Guide v1.11 : Passe sessions d’arrière-plan et fiabilité des plugins Claude Code v2.1.142. Le claude --version local a renvoyé 2.1.141 (Claude Code), tandis que la dernière version npm de @anthropic-ai/claude-code a renvoyé 2.1.142. Ajout de conseils opérateur pour les nouveaux flags de dispatch claude agents, le défaut Fast-mode d’Opus 4.7, la découverte du SKILL.md de plugin au niveau racine, la visibilité LSP des plugins, le comportement HTTP/SSE distant de MCP_TOOL_TIMEOUT, et les correctifs de fiabilité session d’arrière-plan / daemon / cache de plugin.51 |
| 2026-05-14 | Guide v1.10 : Passe signalisation opérateur et cadrage Claude Code v2.1.141. Le claude --version local a renvoyé 2.1.141 (Claude Code) et la dernière version npm de @anthropic-ai/claude-code a renvoyé 2.1.141. Ajout de conseils de hook pour terminalSequence comme signalisation opérateur plutôt que mécanisme d’application, mention de claude agents --cwd <path> pour Agent View cadré par répertoire, et documentation de l’impact architectural de CLAUDE_CODE_PLUGIN_PREFER_HTTPS plus ANTHROPIC_WORKSPACE_ID pour l’installation de plugins et le cadrage de la fédération d’identité de workload.50 |
| 2026-05-13 | Guide v1.9 : Passe fiabilité Claude Code v2.1.140. Le claude --version local a renvoyé 2.1.140 (Claude Code). Ajout de subagent_type aux conseils de hooks d’agents et mise à jour de la section gouvernance des hooks pour les correctifs v2.1.140 concernant ConfigChange, disableAllHooks, allowManagedHooksOnly, l’affichage des variables d’environnement dans la boîte de dialogue d’autorisations, la réinitialisation du style personnalisé après synchronisation des paramètres, le fallback de package natif Windows Git Bash, et le comportement de /scroll-speed.49 |
| 2026-05-11 | Guide v1.8 : Passe d’actualité Claude Code v2.1.139 + scan ciblé sécurité/mémoire des agents. Vérification du claude --version local à 2.1.139 et ajout des changements opérationnels v2.1.139 : Agent View via claude agents, boucles de complétion /goal, args de hook de commande, PostToolUse continueOnBlock, MCP CLAUDE_PROJECT_DIR, et correctif de temps actif OpenTelemetry.424344 Ajout de l’avertissement de curation de mémoire issu de la prépublication arXiv « The Memory Curse », des conseils d’autorité humaine de merge issus de la prépublication arXiv sur le cycle de vie des PR, et des conseils de sécurité journaux d’agents/garde-fous issus des avis Gryph Agents et LiteLLM.45464748 Correction de la ligne obsolète de budget de tokens Skills vs Hooks vs Subagents de 2 % vers le budget actuel de description de skill de 1 % / 8 000 caractères. |
| 2026-05-09 | Guide v1.7 : Suivi J+3 sur Claude Code v2.1.136 + openai-agents-python v0.17.0. Ajout de la sous-section autoMode.hard_deny et correctifs hooks/plugins v2.1.136 à Architecture de hooks couvrant le nouveau palier de blocage inconditionnel, le correctif MCP-disparaît-après-/clear dans VS Code/JetBrains/Agent SDK, la perte de refresh-token MCP OAuth lors de refresh concurrents, le correctif de blocage d’écriture en plan-mode quand la règle allow Edit(...) correspondait, la course de nettoyage de cache des plugins Stop/UserPromptSubmit, l’entrée skills masquant le dossier skills/ par défaut, et les variables d’env. de hook SessionStart CLAUDE_ENV_FILE devenant obsolètes après /resume//clear.40 Ajout de la sous-section Enquête de feedback OTel aux Motifs de production couvrant CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL.40 Extension de la sous-section Le sandbox avec le verrouillage openai-agents-python v0.17.0 : LocalFile.src / LocalDir.src contraints à l’intérieur de base_dir sauf accord via Manifest.extra_path_grants avec SandboxPathGrant.41 Ajout de la note de modèle par défaut RealtimeAgent (gpt-realtime-2) à Harnesses managés vs auto-hébergés.41 Changelog seulement : Claude Code v2.1.137 (correctif activation Win VSCode), v2.1.138 (correctifs internes) ; claude-agent-sdk-python v0.1.78 (bundle CLI v2.1.136), v0.1.79 (bundle CLI v2.1.137), v0.1.80 (bundle CLI v2.1.138). |
| 2026-05-08 | Guide v1.6 : Suivi J+2 sur Claude Code v2.1.132/v2.1.133 + SDK v0.1.77. Ajout de la sous-section Surface de skills SDK au Système de skills couvrant l’option skills sur ClaudeAgentOptions et la dépréciation de "Skill" dans allowed_tools.37 Ajout de la sous-section Effort et provenance de session à Architecture de hooks couvrant le nouveau champ JSON effort.level + la variable d’env. $CLAUDE_EFFORT dans l’entrée de hook, et la variable d’env. CLAUDE_CODE_SESSION_ID dans les sous-processus Bash.3839 Ajout du correctif de découverte de skills par les subagents au tableau Champs de configuration des subagents (les subagents découvrent désormais les skills de projet, utilisateur et plugin via le tool Skill, auparavant supprimées silencieusement avant v2.1.133).39 Ajout de la sous-section Base de worktree, chemins de sandbox et paramètres admin aux Motifs de production couvrant worktree.baseRef (retour du défaut cassant à origin/<default> depuis HEAD local), sandbox.bwrapPath, sandbox.socatPath, et parentSettingsBehavior.39 |
| 2026-05-07 | Guide v1.5 : Agents managés Claude, extension SF du 6 mai. Ajout de la stratégie 5 (Curation de mémoire managée : Dreaming, Research Preview) à Mémoire et contexte avec un tableau comparant filesystem-as-memory et Dreaming.35 Ajout de l’Orchestration multiagent managée (Public Beta) et d’Outcomes (Public Beta) au début d’Orchestration multi-agent avec citations textuelles de Anthropic sur les spécialistes à système de fichiers partagé et le tracing Claude Console, plus un tableau comparatif avec la délibération auto-hébergée. Ajout d’une sous-section streaming des événements de hook côté SDK couvrant include_hook_events et HookEventMessage de claude-agent-sdk-python v0.1.74.36 Changelog seulement : Claude Code v2.1.124-v2.1.131 (claude project purge, --dangerously-skip-permissions pour les répertoires de projet, skill_activated invocation_trigger, correctif format-on-save PostToolUse, correctif de blocage PreToolUse JSON+exit-2, paramètres skillOverrides) ; claude-agent-sdk-python v0.1.72 (CLI 2.1.126), v0.1.73 (session_store_flush), v0.1.75 (CLI 2.1.131), v0.1.76 (api_error_status) ; openai-agents-python v0.15.0-v0.16.1 avec v0.16.0 (7 mai) définissant gpt-5.4-mini par défaut, supprimant le plafond implicite max_turns, et ajoutant la concurrence d’exécution des tools côté SDK. |
| 2026-05-07 | Guide v1.4 : Actualisation des mécaniques de hooks et de skills Claude Code à partir de la documentation officielle actuelle et de preuves d’exécution locales (claude --version 2.1.132, codex --version a renvoyé codex-cli 0.128.0). Mise à jour de la surface de hooks de 22/26+ à 29 événements documentés, correction du budget de description de skill de 2 %/16 000 à 1 %/8 000, passage du nombre de types de hook de quatre à cinq avec mcp_tool, suppression de l’affirmation non prise en charge de « 10 subagents parallèles » fixes, et ajout d’une section de parité Codex compatible publication couvrant AGENTS.md, skills, hooks, plugins et workflows explicites de subagents. |
| 2026-04-29 | Guide v1.3 : Extension de la couverture OpenAI Agents SDK dans la section Harnesses managés vs auto-hébergés avec la surface SDK nommée de openai-agents Python v0.14.0 (15 avril) — SandboxAgent, Manifest, SandboxRunConfig, mémoire de sandbox avec divulgation progressive, montages de workspace (S3/R2/GCS/Azure), snapshots portables, et backends clients local/Docker/hosted (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel). Remplacement de la citation secondaire Help Net Security par la citation primaire des release notes v0.14.0. Ajout d’une courte note sur claude-agent-sdk-python v0.1.69-v0.1.71 (28-29 avril) comme troisième option auto-hébergée (intégrer le runtime Claude Code comme bibliothèque Python) : CLI Claude groupé passé à v2.1.123, plancher de dépendance mcp relevé à >=1.19.0 (les anciennes versions supprimaient silencieusement CallToolResult des tools MCP in-process), correctif d’annulation de nursery Trio, et parité du champ allowlist SandboxNetworkConfig avec TS SDK. Raffinements SDK v0.14.7-v0.14.8 documentés dans [^58]. |
| 2026-04-25 | Guide v1.2 : Google Cloud Next 2026 (22-24 avril) — Vertex AI renommé Gemini Enterprise Agent Platform ; Agentspace absorbé dans Gemini Enterprise unifié ; Workspace Studio (constructeur d’agents no-code) ; plus de 200 modèles dans Model Garden, dont Anthropic Claude ; agents partenaires de Box, Workday, Salesforce, ServiceNow ; ADK v1.0 stable sur quatre langages ; Project Mariner (agent de navigation web) ; serveurs MCP managés avec Apigee comme passerelle API-vers-agent ; protocole A2A v1.0 en production dans 150 organisations. Microsoft Agent Framework 1.0 (avril 2026) : APIs stables, engagement LTS, prise en charge complète MCP, .NET + Python. La DevUI basée navigateur qui visualise l’exécution des agents et les appels de tools en temps réel est livrée en preview aux côtés de la surface stable 1.0. Salesforce Headless 360 (15 avril, TDX) : chaque capacité Salesforce (CRM, service, marketing, e-commerce) exposée comme commande tool/CLI API/MCP, afin que des agents comme Claude Code, Cursor et Codex puissent construire sur la plateforme sans navigateur. (TDX 2026 s’est tenu les 15-16 avril ; l’annonce Headless 360 est datée du 15 avril.) MetaComp StableX KYA (21 avril) : framework de gouvernance Know Your Agent pour les services financiers régulés (paiements, conformité, gestion de patrimoine) — premier de ce type issu d’une institution financière agréée ; disponible sur Claude, Claude Code, OpenClaw et autres plateformes d’IA compatibles. Tarification des Managed Agents Claude : 0,08 $ par heure-session pendant qu’une session s’exécute, sans frais de runtime quand elle est inactive — en plus des tarifs normaux de tokens du modèle Claude. (Selon la page de tarification Claude de Anthropic ; le lancement en public beta date du 8 avril 2026.) Memory for Managed Agents est entré en public beta le 23 avril 2026 sous l’en-tête beta managed-agents-2026-04-01. Tous les endpoints Managed Agents exigent désormais cet en-tête beta. |
| 2026-04-16 | Guide v1.1 : Ajout de la section Harnesses managés vs auto-hébergés couvrant les Managed Agents Claude (beta du 8 avril) et la séparation harness/compute d’OpenAI Agents SDK (16 avril). Ajout de Scion, hyperviseur multi-agent inter-outils (7 avril, Google). Documentation du constat de plateau de débat M3MAD-Bench. Ajout des Five Principles of Trustworthy Agents (Anthropic, 9 avril) + gouvernance MCP/AGENTS.md Linux Foundation. Référence au sandbox de skills Permiso SandyClaw. Nouveaux motifs long horizon Opus 4.7 : résilience aux échecs de tools, palier d’effort xhigh, plafond de budget de tokens (beta task_budget), conscience des besoins implicites réduisant l’échafaudage CLAUDE.md. |
| 2026-03-24 | Publication initiale |
Références
-
Andrej Karpathy sur les « claws » comme nouvelle couche au-dessus des agents LLM. Discussion HN (406 points, 917 commentaires). ↩
-
Implémentation de l’auteur. 84 hooks, 48 skills, 19 agents, environ 15 000 lignes d’orchestration. Documenté dans Claude Code comme infrastructure. ↩↩↩↩↩↩↩↩
-
Anthropic, « Claude Code Hooks : codes de sortie ». code.claude.com/docs/en/hooks. Le code de sortie 0 autorise, le code 2 bloque, le code 1 avertit pour la plupart des événements ;
WorktreeCreateest plus strict. ↩↩↩↩↩ -
Anthropic, « Étendre Claude avec Skills ». code.claude.com/docs/en/skills. Structure des skills, champs de frontmatter, mise en correspondance basée sur LLM, et budget de description de 1 % / 8 000 caractères. ↩↩↩↩↩↩↩
-
Anthropic, « Sub-agents Claude Code ». code.claude.com/docs/en/sub-agents. Contexte isolé, prise en charge des worktrees, équipes d’agents. ↩↩↩↩↩
-
Anthropic, « Documentation Claude Code ». docs.anthropic.com/en/docs/claude-code. Fichiers de mémoire, CLAUDE.md, mémoire automatique. ↩↩↩↩↩
-
Système de délibération multi-agent de l’auteur. 10 personas de recherche, machine à états en 7 phases, 141 tests. Documenté dans Délibération multi-agent. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Simon Willison, « Écrire du code coûte désormais peu cher ». Patterns d’ingénierie agentique. ↩
-
Laban, Philippe, et al., « Les LLM se perdent dans les conversations multi-tours », arXiv:2505.06120, mai 2025. Microsoft Research et Salesforce. 15 LLM, plus de 200 000 conversations, baisse moyenne de performance de 39 %. ↩↩↩
-
Mikhail Shilkov, « Dans les coulisses des Claude Code Skills : structure, prompts, invocation ». mikhail.io. Analyse indépendante de la découverte des skills, de l’injection de contexte et de la section de prompt
available_skills. ↩ -
Source Claude Code,
SLASH_COMMAND_TOOL_CHAR_BUDGET. github.com/anthropics/claude-code. ↩ -
Anthropic, « Bonnes pratiques de création de Skills ». platform.claude.com. Limite de 500 lignes, fichiers de support, conventions de nommage. ↩
-
Anthropic, « Claude Code Hooks : événements du cycle de vie ». code.claude.com/docs/en/hooks. 29 événements de cycle de vie documentés, types de hooks, comportement des matchers, hooks asynchrones, hooks HTTP, hooks de prompt, hooks d’agent et hooks d’outil MCP. ↩↩↩↩↩↩↩
-
Tutoriel de l’auteur sur les Claude Code hooks. 5 hooks de production créés à partir de zéro. Documenté dans Tutoriel Claude Code Hooks. ↩↩↩↩↩
-
Gestion de la fenêtre de contexte par l’auteur sur 50 sessions. Documenté dans Gestion de la fenêtre de contexte. ↩↩↩↩↩
-
Implémentation Ralph Loop de l’auteur. Itération avec contexte frais, état du système de fichiers, budgets de spawn. Documenté dans The Ralph Loop. ↩↩↩↩↩↩↩
-
Architecture du système de délibération de l’auteur. 3 500 lignes de Python, 12 modules, déclencheur de confiance, validation du consensus. Documenté dans Construire des systèmes d’IA : de RAG aux agents. ↩↩↩
-
Nemeth, Charlan, In Defense of Troublemakers: The Power of Dissent in Life and Business, Basic Books, 2018. ↩
-
Wu, H., Li, Z., et Li, L., « Les agents LLM peuvent-ils vraiment débattre ? » arXiv:2511.07784, 2025. ↩
-
Liang, T. et al., « Encourager la pensée divergente dans les grands modèles de langage grâce au débat multi-agent », EMNLP 2024. ↩
-
Analyse par l’auteur des fichiers AGENTS.md dans des dépôts réels. Documenté dans Patterns AGENTS.md. Voir aussi : blog GitHub, « Comment rédiger un excellent agents.md : leçons tirées de plus de 2 500 dépôts ». ↩↩↩↩↩↩↩↩
-
Méthodologie de quality loop et d’evidence gate de l’auteur. Partie du système d’artisanat Jiro. ↩
-
Anthropic, « Vue d’ensemble des agents managés Claude ». Bêta publique lancée le 8 avril 2026. Harness-as-a-service avec checkpointing de session, sandbox groupé, API REST. Tarification : tokens standard + 0,08 $/heure-session. En-tête bêta
managed-agents-2026-04-01. ↩↩ -
OpenAI, « notes de version openai-agents Python v0.14.0 ». Publié le 15 avril 2026 ; annonce couverte le 16 avril. Introduit la surface SDK Sandbox Agents comme couche bêta au-dessus du flux
Agent/Runnerexistant :SandboxAgent,Manifest(contrat d’espace de travail),SandboxRunConfig, capabilities (shell, modification du système de fichiers, inspection d’images, skills, mémoire de sandbox, compaction), montages d’espace de travail (local, Git, distant : S3, R2, GCS, Azure Blob, S3 Files), snapshots portables avec normalisation des chemins et préservation des liens symboliques, et sérialisation de l’état d’exécution pour reprise. Backends :UnixLocalSandboxClient,DockerSandboxClient, et clients hébergés pour Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel via extras optionnels. L’annonce du 16 avril est résumée sur Help Net Security. ↩↩ -
Google Cloud, « Scion : hyperviseur multi-agent ». Mis en open source le 7 avril 2026. Orchestre Claude Code, Gemini CLI et d’autres agents profonds sous forme de processus isolés avec conteneur, git worktree et identifiants propres à chaque agent. Modes de déploiement local/hub/Kubernetes. Couverture InfoQ. ↩
-
Groupe de recherche sur le débat multi-agent, T1-T2 2026. Wu et al., « Les agents LLM peuvent-ils vraiment débattre ? » (arXiv 2511.07784) ; M3MAD-Bench — benchmark de débat multi-modèle multi-agent montrant des plateaux de performance et une vulnérabilité au consensus trompeur ; Tool-MAD — attribution hétérogène des outils par agent + scores de juge Faithfulness/Relevance. ↩
-
Anthropic, « Notre cadre pour développer des agents sûrs et dignes de confiance ». 9 avril 2026. Cinq principes : contrôle humain, alignement des valeurs, sécurité, transparence, confidentialité. Don MCP à l’Agentic AI Foundation de la Linux Foundation. ↩↩
-
Permiso Security, « SandyClaw : première sandbox dynamique pour les AI Agent Skills ». 2 avril 2026. Sandbox d’exécution de skills avec détection Sigma/YARA/Nova/Snort et verdicts étayés par des preuves. ↩
-
Anthropic, « Présentation de Claude Opus 4.7 ». 16 avril 2026. Améliorations des agents à horizon long : résolution des tâches de production SWE-Bench multipliée par 3 par rapport à Opus 4.6, résilience aux échecs d’outils, niveau d’effort
xhigh, budgets de tâches (bêta), conscience des besoins implicites. Voir aussi Nouveautés d’Opus 4.7 pour les breaking changes de API Messages. ↩ -
Référence composite — OpenAI
openai-agents-pythonv0.14.7 (28 avril 2026) et v0.14.8 (29 avril 2026) ; Anthropicclaude-agent-sdk-pythonv0.1.69 (28 avril), v0.1.70 (28 avril) et v0.1.71 (29 avril). Points marquants de v0.14.7 : propriétés pratiquestool_name/call_idsur les éléments d’outil, relèvement de la limite de tours pour la consolidation mémoire de Phase 2, alias GPT-5.5 pour la compaction sandbox, durcissement de la validation des membres tar/zip, rejet des liens symboliques sur les sourcesLocalFile, suppression des champs non définis dans les appels Responses API. Points marquants de v0.14.8 : préservation des erreurs d’import de réexport MCP, délimitation des sections d’instructions de prompt sandbox. claude-agent-sdk-python v0.1.69 a ajouté des docstrings aux champsClaudeAgentOptionset mis à jour le CLI intégré vers v2.1.121 ; v0.1.70 a relevé le plancher de dépendancemcpà>=1.19.0(les versions plus anciennes supprimaient silencieusement les retoursCallToolResultdes gestionnaires d’outils MCP in-process), corrigé la corruption de nursery Trio lors d’une annulation anticipée pendant l’itération dequery()avecoptions.stderrdéfini (spawn_detached()est désormais utilisé pour le lecteur stderr), et mis à jour le CLI intégré vers v2.1.122 ; v0.1.71 a ajouté des champs de liste d’autorisation de domaines (allowedDomains,deniedDomains,allowManagedDomainsOnly,allowMachLookup) àSandboxNetworkConfigpour assurer la parité avec le schéma TypeScript, et mis à jour le CLI intégré vers v2.1.123. ↩ -
OpenAI, « Instructions personnalisées avec AGENTS.md ». Codex lit les fichiers globaux et projet
AGENTS.md/AGENTS.override.mdavant le travail, fusionne les consignes de la racine jusqu’au dossier courant, et limite les documents projet avecproject_doc_max_bytes. ↩ -
OpenAI, « Agent Skills ». Les skills Codex utilisent
SKILL.md, la divulgation progressive, l’invocation explicite via$skillet l’activation implicite à partir des descriptions. ↩ -
OpenAI, « Codex Hooks ». Les hooks Codex prennent en charge les command hooks dans la configuration, les plugin hooks, les managed hooks, les matchers pour les événements pris en charge, l’entrée stdin JSON et les champs de sortie JSON. ↩
-
OpenAI, « Codex Subagents » et « Codex CLI 0.128.0 changelog ». Codex prend en charge les workflows explicites de subagents parallèles, les agents intégrés
default,workeretexplorer, les agents TOML personnalisés, la politique sandbox héritée, les hooks fournis avec les plugins, l’état d’activation des hooks et les workflows/goalpersistants dans 0.128.0. ↩ -
Anthropic, « Nouveautés dans Claude Managed Agents ». 6 mai 2026. Dreaming (Research Preview) : processus planifié en arrière-plan qui examine les sessions d’agent et les magasins mémoire, extrait des motifs et organise les souvenirs. Outcomes (Public Beta) : évaluation fondée sur une grille, où un évaluateur séparé note la sortie par rapport à la grille dans sa propre fenêtre de contexte afin de ne pas être influencé par le raisonnement de l’agent. Multiagent Orchestration (Public Beta) : l’agent principal délègue des parties d’une tâche à des spécialistes, chacun avec son propre modèle, prompt et ses propres outils ; les spécialistes travaillent en parallèle sur un système de fichiers partagé et contribuent au contexte global de l’agent principal, avec un traçage complet étape par étape dans la Claude Console. ↩↩↩↩↩↩↩↩
-
Anthropic,
claude-agent-sdk-pythonv0.1.74. 6 mai 2026. Ajouteinclude_hook_eventsàClaudeAgentOptions; lorsqu’il est défini, les événements de hook (PreToolUse, PostToolUse, Stop, autres) sont émis par le CLI et renvoyés depuis le flux de messages sous forme deHookEventMessage, à l’image duincludeHookEventsde TypeScript SDK. Le Claude CLI intégré passe à v2.1.129. ↩↩ -
Anthropic,
claude-agent-sdk-pythonv0.1.77. 8 mai 2026. Rend obsolète la valeur"Skill"dansallowed_toolsau profit d’une option dédiéeskillssurClaudeAgentOptions, fournit à Claude Code un signal plus structuré sur les skills disponibles, améliore les messages d’erreur sur les exceptionsCommand failedet intègre Claude CLI v2.1.133. ↩↩ -
Anthropic, Claude Code v2.1.132. 6 mai 2026. Ajoute la variable d’environnement
CLAUDE_CODE_SESSION_IDsur les sous-processus de l’outil Bash (correspond ausession_idque les hooks voient déjà),CLAUDE_CODE_DISABLE_ALTERNATE_SCREENpour conserver la conversation dans le défilement natif, une bannière de démarrage/tui fullscreenactualisée (mémoire réduite, prise en charge de la souris, copie automatique à la sélection) et environ vingt corrections de bugs couvrant l’arrêt gracieux SIGINT, la corruption--resumeavec emoji de substitution, le flag--permission-modeen mode plan, la gestion du curseur pour l’indic et ZWJ, les opérations vim NFD, l’absorption d’un collage commençant par/, la mémoire non bornée MCP, la nouvelle tentative MCPtools/list, l’erreur 400 Bedrock + VertexENABLE_PROMPT_CACHING_1H, et la statuslinecontext_windowaffichant les tokens cumulés. ↩↩ -
Anthropic, Claude Code v2.1.133. 7 mai 2026. Les hooks reçoivent désormais l’entrée JSON
effort.level+ la variable d’environnement$CLAUDE_EFFORT(également lisible depuis les commandes Bash). Les subagents découvrent les skills de projet, d’utilisateur et de plugin via l’outilSkill(correction de régression). Nouveaux paramètres administrateur :worktree.baseRef(fresh|head) rétablit la base du worktree àorigin/<default>après le passage auHEADlocal dans v2.1.128 ;sandbox.bwrapPathetsandbox.socatPathfixent les binaires sandbox sur Linux/WSL ;parentSettingsBehavior('first-wins' | 'merge') contrôle la composition desmanagedSettingsSDK avec les paramètres parents. Autres corrections : 401 en session parallèle après une course de refresh token, portée des règles d’autorisation à la racine du lecteur, prise en charge proxy/mTLS MCP OAuth, annulation complète par stop/interrupt de Remote Control, fuite de/effortentre sessions,--remote-controllisté dans--help. ↩↩↩↩↩↩ -
Anthropic, Claude Code v2.1.136. 8 mai 2026. Ajoute
settings.autoMode.hard_denypour les règles du classificateur auto-mode qui bloquent sans condition, indépendamment de l’intention de l’utilisateur ou des exceptions d’autorisation, ainsi queCLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTELpour réactiver l’enquête qualité en session pour les entreprises qui capturent les réponses via OpenTelemetry. Corrections ayant un impact opérateur : serveurs MCP issus de.mcp.json, plugins et connecteurs claude.ai qui disparaissaient silencieusement après/cleardans VS Code, JetBrains et Agent SDK ; refresh tokens MCP OAuth perdus lors d’un rafraîchissement concurrent ; mode plan ne bloquant pas les écritures de fichiers lorsqu’une règle d’autorisationEdit(...)correspondante existait ; hooks pluginStop/UserPromptSubmitéchouant lorsque le nettoyage du cache supprimait une version encore en cours d’exécution ; entréeskillsdansplugin.jsonmasquant le dossierskills/par défaut du plugin ; variables d’environnement de hook SessionStartCLAUDE_ENV_FILEdevenant obsolètes après/resumeou/clear. Plus une trentaine de corrections supplémentaires de finition et de fiabilité couvrant la TUI, l’autocomplétion et le rendu terminal. Versions associées : v2.1.137 (9 mai, correction d’activation Windows de l’extension VSCode), v2.1.138 (9 mai, corrections internes) ;claude-agent-sdk-pythonv0.1.78, v0.1.79 et v0.1.80 ont mis à jour le Claude CLI intégré vers v2.1.136, v2.1.137 et v2.1.138 respectivement. ↩↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.0. 8 mai 2026.RealtimeAgentutilise désormaisgpt-realtime-2par défaut. La matérialisation de sources locales dans le sandbox contraint désormaisLocalFile.srcetLocalDir.srcà rester dans lebase_dirdu manifeste (le dossier de travail courant du processus SDK lorsque le manifeste est appliqué), sauf si la source reçoit explicitement une autorisation viaManifest.extra_path_grantsavecSandboxPathGrant. Les sources locales relatives sont résolues depuisbase_dir; les sources absolues doivent déjà s’y trouver ou relever d’une autorisation explicite. Migration : déclarez les racines hôtes de confiance au niveau du manifeste, de préférence en lecture seule. Traitezextra_path_grantscomme une configuration d’application de confiance ; ne le renseignez pas à partir de la sortie du modèle ni d’une entrée de manifeste non fiable. Inclut également une correction de collisionextra_argsdans la gestion de contexte Responses. ↩↩↩↩ -
Anthropic, Claude Code v2.1.139. Mai 2026. Preuve locale de la session actuelle le 11 mai 2026 :
claude --versiona renvoyé2.1.139 (Claude Code). Les notes de version ajoutent Agent View (claude agents),/goal, le hookargs: string[],continueOnBlockpourPostToolUse,CLAUDE_PROJECT_DIRpour les serveurs stdio MCP, l’interpolation des commandes de plugin pour${CLAUDE_PROJECT_DIR}, ainsi que des correctifs, notamment l’émission OpenTelemetryclaude_code.active_time.totalen mode--print. ↩↩↩↩↩ -
Anthropic, « Gérer plusieurs agents avec agent view ». La documentation d’Agent View décrit l’envoi et la gestion de nombreuses sessions Claude Code depuis un seul écran, la visualisation de ce que fait chaque session et l’identification des sessions qui nécessitent une intervention de l’opérateur. La page présente Agent View comme une Research Preview et documente les limites des sessions locales. ↩↩↩
-
Anthropic, « Hooks Claude Code ». Documentation des hooks couvrant les champs de command-hook,
PreToolUse,PostToolUse, le comportement des codes de sortie, les entrées/sorties de hook et les chemins d’expansion directe des slash commands. ↩↩ -
Base de données d’avis GitHub, GHSA-f3jg-756w-gm35 / CVE-2026-45046. « Gryph Agents Payload Filter Fails to Strip Tool Payload for Sensitive Content. » Publié en mai 2026 ; décrit du contenu sensible de payload
file-writerestant dans les journaux SQLite locaux avec le comportement de journalisation par défaut, corrigé dans Gryph v0.7.0. ↩↩ -
OSV, GHSA-wxxx-gvqv-xp7p / CVE-2026-40217. « LiteLLM has a sandbox escape in custom-code guardrail. » Publié le 11 mai 2026 ; décrit un endpoint
POST /guardrails/test_custom_code, protégé par un administrateur, exécutant du Python fourni par l’utilisateur dans un sandbox artisanal, et recommande de mettre à niveau ou de bloquer l’endpoint si la mise à niveau est impossible. ↩↩ -
Young Jo (seph) Chung et Safwat Hassan, « Collaborateur ou assistant ? Comment les agents de codage IA répartissent le travail au fil des cycles de vie de Pull Request », arXiv:2605.08017v1, mai 2026. Le résumé rapporte l’analyse de 29 585 cycles de vie de PR chez OpenAI, Copilot, Devin, Cursor et Claude Code, en distinguant l’agence opérationnelle de la gouvernance de merge. ↩↩
-
Jiayuan Liu et al., « La malédiction de la mémoire : comment un rappel élargi érode l’intention coopérative chez les agents LLM », arXiv:2605.08060v1, mai 2026. Le résumé rapporte des expériences menées avec 7 LLMs et 4 jeux sur 500 manches, où l’historique accessible élargi a dégradé la coopération dans 18 des 28 configurations modèle-jeu. ↩↩
-
Anthropic, Claude Code v2.1.140. 12 mai 2026. Ajoute
subagent_typeà l’entrée de hook d’agent et corrige les hooksConfigChange,disableAllHooks,allowManagedHooksOnly, l’affichage des variables d’environnement de boîte de dialogue de permissions depuis les résultats de hook, les réinitialisations de style personnalisé après les mises à jour de paramètres, le fallback de résolution des packages natifs sur Windows Git Bash et/scroll-speed. ↩↩↩ -
Anthropic, Claude Code v2.1.141. 13 mai 2026. Ajoute
terminalSequenceà la sortie JSON de hook pour les notifications de bureau, les titres de fenêtre et les sonneries ;CLAUDE_CODE_PLUGIN_PREFER_HTTPSpour le clonage de sources de plugin HTTPS ;ANTHROPIC_WORKSPACE_IDpour le cadrage d’espace de travail de la fédération d’identité de workload ;claude agents --cwd <path>pour le filtrage par dossier dans Agent View ; des options de pièce jointe de session/feedbackpour les dernières 24 heures ou 7 jours ; ainsi que des correctifs connexes pour les agents, les tâches en arrière-plan, les hooks, MCP, Remote Control, les boîtes de dialogue de permissions et le rendu du terminal. Vérification de la session actuelle le 14 mai 2026 :claude --versiona renvoyé2.1.141 (Claude Code)etnpm view @anthropic-ai/claude-code version dist-tags.latest time.modified --jsona renvoyé la dernière version2.1.141. ↩↩↩ -
Anthropic, Claude Code v2.1.142. 14 mai 2026. Ajoute des flags de dispatch
claude agentspour les sessions en arrière-plan (--add-dir,--settings,--mcp-config,--plugin-dir,--permission-mode,--model,--effort,--dangerously-skip-permissions), passe Fast mode à Opus 4.7 par défaut avecCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1comme override de verrouillage, expose les fichiersSKILL.mdau niveau racine des plugins comme skills lorsqu’aucun dossierskills/n’existe, affiche les serveurs LSP fournis par des plugins dans les détails du plugin, avertit avant de remplacer une connexion App GitHub existante, et corrige des problèmes liés àMCP_TOOL_TIMEOUT, au worktree des sessions en arrière-plan, au sommeil/réveil du daemon, au nettoyage du daemon après mise à niveau, au cache des plugins et à la fiabilité d’Agent View. Vérification de la session actuelle le 15 mai 2026 :claude --versiona renvoyé2.1.141 (Claude Code)et npm latest a renvoyé2.1.142. ↩↩ -
Anthropic, Claude Code v2.1.147. 21 mai 2026. Ajoute l’outil
Workflow, désactivé par défaut, pour une orchestration multi-agent déterministe (CLAUDE_CODE_WORKFLOWS=1), les sessions en arrière-plan épinglées,/code-review [effort] --commentremplaçant/simplify, le durcissement du sandbox REPL et Workflow, les diagnostics de l’auto-updater, des améliorations du rendu des grands diffs, la déduplication de l’historique de prompts, ainsi que des correctifs pour les restrictions de connexion enterprise, le comportement PowerShell, la pagination MCP, Agent View, les plugins, les conditions de hook, le texte collé et les boucles d’images supprimées. Vérification de la session actuelle le 21 mai 2026 :claude --versiona renvoyé2.1.144 (Claude Code)etnpm view @anthropic-ai/claude-code version dist-tags.latest time.modified --jsona renvoyé la dernière version2.1.147avectime.modified2026-05-21T20:38:35.053Z. ↩↩↩ -
Anthropic, Claude Code v2.1.148, v2.1.149, v2.1.150 et Claude Code CHANGELOG. v2.1.148 corrige une régression de code de sortie Bash introduite par v2.1.147. v2.1.149 ajoute l’usage
/usagedes limites par catégorie, le défilement clavier de/diff, le rendu des listes de tâches GFM etallowAllClaudeAiMcpspour Enterprise ; les correctifs pertinents pour le harness incluent les contournements de permissions PowerShell viacd, l’analyse de permissions PowerShell pour préfixe/joker et variable obsolète, le périmètre de la allowlist d’écriture du sandbox git-worktree, l’épuisement des vnodes parfindBash sur macOS, les blocages d’approbation des managed-settings, les diagnostics de chemins avec espace pourotelHeadersHelperet la synchronisation du renommage de session Remote Control. v2.1.150 concerne uniquement l’infrastructure interne. Vérification de la session actuelle le 24 mai 2026 :claude --versionlocal a renvoyé2.1.144 (Claude Code), tandis que npm latest a renvoyé2.1.150avectime.modified2026-05-23T04:03:10.243Z; la dernière release GitHub a renvoyév2.1.150, publiée le2026-05-23T04:03:51Z. ↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.1, v0.17.2 et v0.17.3. v0.17.1 ajoute des détails d’erreur du fournisseur de sandbox, des limites d’extraction d’archives, la validation des sous-chemins GitRepo et des correctifs de tracing/session/realtime. v0.17.2 corrige la persistance du raisonnement dans Conversations, les raisons de rejet d’approbation locale, les paramètres AsyncSQLiteSession et le comportement realtime pour les outils inconnus. v0.17.3 exclut les identifiants de mountpoint des commandes de sandbox, rejette les racines relatives d’espace de travail sandbox, gère les états terminaux de sandbox Vercel et corrige des cas limites liés aux schémas de sortie, guardrails, runtime et imports mémoire. Vérification de la session actuelle le 24 mai 2026 :python3 -m pip index versions openai-agentsa renvoyé la dernière version0.17.3; la dernière release GitHub a renvoyév0.17.3, publiée le2026-05-19T01:27:36Z. ↩↩ -
Changelog Claude Code (canonique), notes de version v2.1.152, notes de version v2.1.153, notes de version v2.1.154. La v2.1.152 (27 mai) ajoute l’événement de hook
MessageDisplay,disallowed-toolsdans le frontmatter des skills/commandes,/reload-skills, les sortiesreloadSkillsetsessionTitledu hookSessionStart, l’application de/code-review --fixà l’arbre de travail, le paramètre gérépluginSuggestionMarketplaces, la suppression de l’activation explicite du mode automatique, ainsi que le basculement en cours de session avec--fallback-model. La v2.1.153 (28 mai) fait en sorte que/modelsoit enregistré comme valeur par défaut des nouvelles sessions, avecspour une session uniquement, ajouteskipLfsaux marketplaces de plugins, exposeCOLUMNS/LINESdans l’environnement de la ligne d’état, et conserve les autorisations Confidentialité et sécurité macOS pour les agents en arrière-plan. La v2.1.154 (28 mai) définit Opus 4.8 comme modèle par défaut avec un effort élevé par défaut et un nouveau/effort xhigh, introduit des workflows dynamiques via/workflows, rend le mode Fast sur Opus 4.8 disponible à un tarif 2× pour une vitesse 2,5× supérieure, applique par défaut le prompt système allégé à tous les modèles sauf Haiku/Sonnet/Opus 4.7 et antérieurs, permet àclaude agentsd’accepter! <command>pour les sessions shell en arrière-plan, permet aux plugins de déclarerdefaultEnabled: false, transmetCLAUDE_CODE_SESSION_IDetCLAUDECODE=1à l’environnement des sous-processus stdio MCP, et déprécieCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE(supprimé le 1er juin). ↩ -
Codex Changelog (OpenAI Developers) et versions openai/codex. Codex CLI 0.134.0 (26 mai 2026) a ajouté la recherche locale dans l’historique des conversations, fait de
--profilele sélecteur de profil principal dans les flux CLI/TUI/sandbox avec migration de l’ancienne configuration, amélioré la configuration MCP avec un ciblage d’environnement par serveur ainsi que OAuth pour les serveurs HTTP streamables, rendu les schémas d’outils de connecteur plus fiables en préservant les$ref/$defslocaux et en compactant les schémas surdimensionnés avant exposition, et activé l’exécution concurrente des outils MCP en lecture seule annonçantreadOnlyHint. Codex CLI 0.135.0 (28 mai 2026) a ajouté des diagnosticscodex doctorplus riches, exposé les détails de connexion distante et la version du serveur dans/status, ajouté l’édition d’objets de texte vim avec un meilleur comportement pour les mots/fins de ligne et une interruption de tour configurable, fait comprendre à/permissionsles profils d’autorisation nommés, empaqueté un assistant zsh corrigé et intégré pour les macOS et Linux pris en charge, et ajouté des préréglagesSandboxconviviaux au Python SDK pour les APIs de thread et de tour. ↩ -
Notes de version Hermes Agent v0.15.0. « The Velocity release. » 1 302 commits, 747 PR fusionnées, 321 contributeurs de la communauté.
run_agent.pyrefactorisé à 76 % (16 083 → 3 821 lignes sur 14 modules). Plateforme Kanban multi-agent avec décomposition automatique, topologie en essaim, remplacements de modèle par tâche, tâches planifiées et gestion des worktrees.session_searchrepensé, 4 500× plus rapide, avec suppression de la dépendance LLM. Défense Promptware contre l’injection de prompt de classe Brainworm à trois points de contrôle de sécurité. Intégration Bitwarden Secrets Manager remplaçant les clés par fournisseur par un seul jeton d’amorçage. Bundles de skills pour charger plusieurs skills avec une seule commande slash. Orchestrateur de sessions TUI pour gérer plusieurs sessions dans un même terminal. Fournisseurs de génération d’images Krea 2 et FAL ; série d’intégrations xAI (plugin de recherche web, OAuth upstream, détection des modèles retirés, pauses TTS naturelles). ↩ -
Notes de version Claude Code v2.1.157 et le Changelog Claude Code (canonique). 29 mai 2026. Les plugins placés dans le répertoire
.claude/skills/d’un projet se chargent désormais automatiquement sans nécessiter de marketplace ;claude plugin init <name>génère la structure d’un nouveau plugin dans ce répertoire ;/plugina gagné l’autocomplétion des arguments. Également :EnterWorktreepeut basculer entre des worktrees gérés par Claude en cours de session, les worktrees en arrière-plan restent déverrouillés après la fin de l’agent afin quegit worktree remove/prunefonctionnent proprement, et les événements de télémétrietool_decisionincluenttool_parametersquandOTEL_LOG_TOOL_DETAILS=1. Inclut aussi des corrections de bugs pour les images non traitables (qui se dégradent désormais en placeholders textuels), les invites d’autorisation réseau sandbox en mode auto/bypass, le retrait des sessions en arrière-plan lors du stationnement, et le rendu du terminal dans tmux / VS Code / Cursor / Windsurf. ↩ -
Claude Code Changelog (canonique) et notes de version Codex CLI v0.137.0, juin 2026. Claude Code v2.1.162 (3 juin) a ajouté
waitingForàclaude agents --json; la v2.1.163 (4 juin) a ajoutéhookSpecificOutput.additionalContextpour les retours non erronésStop/SubagentStop; la v2.1.166 (6 juin) a renforcé l’autorité inter-sessions deSendMessage(les messages relayés ne portent plus l’autorité utilisateur) et ajouté le paramètrefallbackModel(jusqu’à trois modèles de secours, nouvelle tentative unique sur les erreurs non réessayables). Codex CLI v0.137.0 (4 juin) a livré multi-agent v2 (runtime-with-thread,hide_spawn_agent_metadataà true par défaut, propagation des événements parent→enfant), une extension skills v1 avec résolution du catalogue à chaque tour, et des événements contributeurs de cycle de vie thread-start/turn-error ; la documentation Codex subagents confirme les types d’agents default/worker/explorer et les contrôles de concurrenceagents.max_threads/max_depth. AGENTS.md (agents.md) ne publie aucun changement de spécification versionné. Vérification dans la session courante le 8 juin 2026. ↩ -
Anthropic, notes de version Claude Code v2.1.169 et notes de version v2.1.170, 8–9 juin 2026. La v2.1.169 ajoute le paramètre
disableBundledSkillsainsi queCLAUDE_CODE_DISABLE_BUNDLED_SKILLS(masque au modèle les skills, workflows et commandes slash intégrées) ; le flag--safe-modeainsi queCLAUDE_CODE_SAFE_MODE(démarre une session avec toutes les personnalisations désactivées : CLAUDE.md, plugins, skills, hooks et serveurs MCP) ; et la commande/cd(déplace une session vers un nouveau répertoire de travail sans casser le cache de prompt). La v2.1.170 rend Claude Fable 5 (claude-fable-5) sélectionnable via/model claude-fable-5, Opus 4.8 restant le modèle agentique par défaut de Claude Code. Lancement du niveau de modèle : Anthropic, « Claude Fable 5 », 9 juin 2026 — un niveau « Mythos-class » au-dessus d’Opus, décrit comme le modèle le plus puissant de Anthropic rendu sûr pour un usage général. ↩↩↩↩ -
OpenAI, notes de version Codex CLI rust-v0.138.0 (8 juin 2026) et notes de version rust-v0.139.0 (9 juin 2026). La v0.138.0 renforce multi-agent v2 avec des charges utiles de messages inter-agents chiffrées, un catalogue de configuration d’agents v2, un LRU de résidence des agents, et une concurrence comptée par exécution active plutôt que par threads créés. La v0.139.0 renomme le API de cycle de vie
close_agenteninterrupt_agent, et limite les avertissements de démarrage MCP des subagents au thread propriétaire, afin qu’ils ne soient plus dupliqués dans le parent. La découverte AGENTS.md est renforcée sur les deux versions : le chargement passe par les systèmes de fichiers d’environnement et préserve les chemins logiques pendant la découverte, ce qui garantit la sélection correcte des fichiers pour les workspaces distants et avec liens symboliques. ↩↩↩ -
Anthropic, notes de version de Claude Code v2.1.172 (10 juin 2026). Les subagents peuvent désormais lancer leurs propres subagents, avec une délégation récursive prise en charge jusqu’à 5 niveaux de profondeur ; auparavant, la délégation se limitait effectivement à un seul niveau. ↩
-
Anthropic, notes de version de Claude Code v2.1.175 et notes de version de v2.1.178, 12-15 juin 2026. v2.1.175 ajoute le paramètre géré
enforceAvailableModels(qui fige le modèle Default et empêche les paramètres utilisateur/projet d’élargir la liste d’autorisation géréeavailableModels). v2.1.178 ajoute la syntaxe de règle d’autorisationTool(param:value), qui fait correspondre les paramètres d’entrée d’un outil avec un joker*(par exempleAgent(model:opus)) ; charge les skills depuis des répertoires.claude/skillsimbriqués avec désambiguïsation<dir>:<name>en cas de conflit de nom ; résout les agents, workflows et output-styles.claude/imbriqués au plus près du cwd en cas de collision (les sauvegardes de workflows à portée projet ciblent le répertoire.claude/workflows/existant le plus proche) ; évalue les lancements de subagents avec le classificateur auto-mode avant le lancement ; et corrige les spécifications MCP au niveau serveur (mcp__server,mcp__server__*,mcp__*) dansdisallowedToolsde subagent, qui étaient silencieusement ignorées. ↩↩↩↩↩↩ -
OpenAI, notes de version de Codex CLI rust-v0.140.0, 15 juin 2026 (promu en stable depuis la ligne v0.140.0-alpha). Ajoute
/importpour importer sélectivement la configuration initiale, la configuration de projet et les conversations récentes depuis Claude Code ; la suppression permanente de sessions viacodex delete,/deleteetthread/deletecôté app-server avec garde-fous de confirmation ; un menu unifié de mentions@pour les fichiers, plugins et skills ; ainsi que des vues d’activité de tokens/usage. ↩ -
Anthropic, notes de version de Claude Code v2.1.183, 19 juin 2026 — le mode auto bloque les commandes git destructrices (
git reset --hard,git checkout -- .,git clean -fd,git stash drop) lorsque vous n’avez pas demandé d’abandonner du travail,git commit --amendsur des commits qui n’ont pas été créés par l’agent pendant cette session, ainsi queterraform destroy/pulumi destroy/cdk destroy, sauf si vous avez demandé la stack précise. OpenAI, notes de version de Codex CLI rust-v0.141.0, 18 juin 2026 (promu en stable depuis la ligne v0.141.0-alpha) — les exécuteurs distants utilisent des canaux Noise-relay authentifiés et chiffrés de bout en bout ; l’exécution distante multiplateforme préserve les répertoires de travail et shells natifs de l’exécuteur ; TLS prend en charge les signatures de certificats P-521 pour les proxies d’entreprise. ↩↩