Architecture des agents : créer des environnements de développement basés sur l’IA
# Le système complet pour créer des environnements d’agents IA prêts pour la production : compétences, hooks, mémoire, sous-agents et modèles d’orchestration qui rendent les agents fiables.
TL;DR : Claude Code n’est pas une boîte de dialogue avec accès aux fichiers. C’est un runtime programmable doté de 31 événements de cycle de vie documentés, auxquels vous pouvez associer des scripts shell que le modèle ne peut pas ignorer. Empilez des hooks dans des dispatchers, des dispatchers dans des skills, des skills dans des agents, des agents dans des workflows, et vous obtenez un harness de développement autonome qui applique des contraintes, délègue le travail, conserve la mémoire d’une session à l’autre et orchestre une délibération multi-agent. Les workflows dynamiques de Claude Code (v2.1.154+) ont fait de l’orchestration multi-agent déterministe une primitive native — de dizaines à des centaines d’agents en arrière-plan via
/workflows— et la plateforme exécute désormais les subagents en arrière-plan par défaut (20 en simultané, imbrication de profondeur 3), permet à vos sessions de s’envoyer des messages entre pairs (v2.1.224) et exécute des sessions cloud sur des runners auto-hébergés. Les hooks et les evidence gates restent garants de la correction.525387 Ce guide couvre chaque couche de cette pile : d’un seul hook à un système de consensus à 10 agents. Aucun framework requis. Tout en Bash et JSON.
Andrej Karpathy a inventé un terme pour ce qui se développe autour d’un agent LLM : les 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 programmation IA comme des assistants interactifs. Ils saisissent un prompt, le regardent modifier un fichier, puis passent à autre chose. Cette approche plafonne la productivité à ce que vous pouvez superviser personnellement.
Le modèle mental de l’infrastructure est différent : un agent de programmation 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 façon qu’un serveur web opère selon les règles nginx. Vous ne vous asseyez pas devant nginx pour saisir des requêtes. Vous le configurez, le déployez et le surveillez.
Cette distinction compte parce que l’infrastructure produit des effets cumulés. Un hook qui bloque les identifiants dans les commandes Bash protège chaque session, chaque agent et chaque exécution autonome. Un skill qui encode votre grille d’évaluation s’applique systématiquement, que vous l’invoquiez ou qu’un agent le fasse. Un agent qui examine le code sous l’angle de la sécurité effectue les mêmes vérifications, que vous le surveilliez ou non.2
Points clés
- Les hooks garantissent l’exécution ; les prompts, non. Utilisez des hooks pour le linting, le formatage, les vérifications 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 ne fait qu’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 l’encombrement du contexte. Des fenêtres de contexte isolées pour l’exploration et l’analyse maintiennent la session principale légère. Exécutez des subagents indépendants en parallèle et utilisez des équipes d’agents lorsque les collaborateurs 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 répertoires de règles et les documents de passation forment un système de mémoire externe structuré.6
- La délibération multi-agent révèle les angles morts. Les agents seuls ne peuvent pas remettre en question leurs propres hypothèses. Deux agents indépendants aux priorités d’évaluation différentes détectent des défaillances structurelles que les quality gates ne peuvent pas traiter.7
- Le modèle du harness constitue le système. CLAUDE.md, les hooks, les skills, les agents et la 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 évolue avec l’automatisation.
Comment utiliser ce guide
| Expérience | Commencez ici | Explorez ensuite |
|---|---|---|
| Vous utilisez Claude Code quotidiennement et en voulez davantage | Le modèle du harness | Système de skills, Architecture des hooks |
| Vous créez des workflows autonomes | Modèles de subagents | Orchestration multi-agent, Modèles de production |
| Vous évaluez une architecture d’agents | Pourquoi l’architecture des agents est importante | Cadre de décision, Considérations de sécurité |
| Vous mettez en place un harness d’équipe | Conception de CLAUDE.md | Architecture des hooks, Carte de référence rapide |
Chaque section s’appuie sur la précédente. Le cadre de décision, à la fin, fournit une table de consultation 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 modèle du harness
Le harness n’est pas un framework. C’est un modèle : un ensemble composable de fichiers, de scripts et de conventions qui enveloppent 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’instructions : 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ébut de la session et après chaque compaction. Il s’agit de 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 garde-fous 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 modèles multi-agents coordonnent des agents indépendants pour la recherche, la revue et la délibération. Les budgets de création évitent la récursion incontrôlée. La validation par consensus garantit la qualité.
Idée clé : la plupart des utilisateurs travaillent exclusivement dans la couche centrale, tout en regardant le contexte gonfler et les coûts augmenter. Les utilisateurs avancés configurent les couches d’instructions et d’extension, puis n’utilisent la couche centrale que pour l’orchestration et les décisions finales.2
Harnesses managés ou auto-hébergés (avril 2026)
Tout au long du début de 2026, la seule véritable option consistait à « créer votre propre harness ». En avril 2026, cela a changé. Anthropic a lancé Claude Managed Agents en bêta publique (8 avril) : boucle de harness + exécution d’outils + conteneur sandbox + persistance de l’état sous forme d’une API REST, facturés aux tarifs standard des tokens, auxquels s’ajoutent 0,08 $ par heure de 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 d’un conteneur.2324
La surface SDK plus approfondie pour le côté OpenAI est arrivée dans openai-agents Python v0.14.0 (publiée le 15 avril 2026 ; annoncée le 16 avril) : une sous-classe SandboxAgent de Agent avec default_manifest, des instructions et des capacités de sandbox ; un Manifest décrivant le contrat d’espace de travail vierge (fichiers, répertoires, 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 active, les remplacements de manifeste, 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 sandbox et la compaction. La mémoire sandbox conserve les enseignements extraits entre les exécutions et les divulgue progressivement ; les espaces de travail prennent en charge les fichiers locaux, les entrées de dépôts Git et les mounts distants (S3, R2, GCS, Azure Blob, S3 Files) ; les snapshots sont portables entre fournisseurs. Backends : UnixLocalSandboxClient, DockerSandboxClient, ainsi que des clients hébergés pour Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop et Vercel via des extras facultatifs.24
Pour les projets Python qui souhaitent intégrer le runtime Claude Code comme bibliothèque — entre « exécuter claude depuis le shell » et « API REST vers Managed Agents » — claude-agent-sdk-python constitue la troisième option. La série des 28-29 avril (v0.1.69 → v0.1.71) a fait passer le CLI intégré à v2.1.123, relevé le minimum de la dépendance mcp à >=1.19.0 (les versions antérieures ignoraient silencieusement les retours CallToolResult provenant d’outils MCP en processus, ne laissant au modèle qu’un blob d’erreur de validation), et aligné le schéma de SandboxNetworkConfig sur le SDK TypeScript (allowedDomains, deniedDomains, allowManagedDomainsOnly, allowMachLookup).30 Au 12 août 2026, le package est en v0.2.137 sur PyPI et le SDK TypeScript en v0.3.229 (tous deux vérifiés dans les registres en direct) ; la série 0.2.x est incrémentale par rapport à la surface 0.1.x décrite ici — les options include_hook_events, skills et de configuration de sandbox ci-dessous restent d’actualité — les versions récentes étant axées sur le nettoyage des sous-processus et la fiabilité des flux NDJSON.9086
Si votre harness inclut une couche vocale ou temps réel, openai-agents-python v0.17.0 (8 mai 2026) a mis à jour RealtimeAgent afin d’utiliser gpt-realtime-2 par défaut.41 Les sessions temps réel existantes adoptent automatiquement ce nouveau modèle par défaut ; épinglez explicitement le modèle précédent si vous devez conserver l’ancien comportement pour une évaluation.
En juillet 2026, la colonne managée a également gagné une solution multi-agent du côté d’OpenAI : openai-agents-python v0.18.2 (11 juillet) et openai-agents-js v0.13.2 (10 juillet) ajoutent la prise en charge multi-agent hébergée en bêta — une orchestration par OpenAI de plusieurs agents en tant que service hébergé, pendant direct de la bêta publique Managed Multiagent Orchestration de Anthropic traitée dans la section Orchestration multi-agent.73 Les deux fournisseurs proposent désormais, au niveau multi-agent, le même compromis que celui décrit dans le tableau ci-dessous pour les agents seuls : le fournisseur exécute la boucle de délégation, vous renoncez à la surface des hooks.
La bifurcation architecturale est désormais réelle :
| Dimension | Harness auto-hébergé (option par défaut de ce guide) | Harness managé (Claude Managed Agents / OpenAI Agents SDK) |
|---|---|---|
| Charge opérationnelle | Vous exécutez tout | Le fournisseur exécute la boucle, le sandbox et 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 par heure d’exécution |
| Durabilité de l’état | Vous la concevez | Le fournisseur crée des points de contrôle lors des déconnexions |
| Orchestration d’équipe d’agents | Créez la vôtre | Coordination multi-agent fournie par le fournisseur |
Quand choisir quoi : l’auto-hébergement reste adapté aux équipes disposant déjà de solides capacités d’infrastructure, qui souhaitent contrôler leurs skills/hooks ou optimiser en profondeur un workflow précis. La solution managée convient aux équipes sans ingénieurs de plateforme dédiés, lorsque le délai de mise en valeur compte davantage que la personnalisation, ou lorsque les exécutions d’agents doivent survivre de manière fiable à la fermeture d’un ordinateur portable sans que vous construisiez cette couche de persistance. Les deux approches sont compatibles — vous pouvez exécuter un harness auto-hébergé qui délègue certaines tâches longues à Managed Agents via sa API REST.
À quoi ressemble le harness sur le 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 une fonction. L’arborescence ~/.claude/ est une infrastructure personnelle qui s’applique à tous les projets. L’arborescence .claude/ de 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, il est temps 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 métier 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 distincte pour un travail ciblé |
| Vous avez besoin d’un prompt ponctuel avec des instructions spécifiques | Rien | Saisissez-le simplement. Tout ne nécessite pas une abstraction. |
Les skills servent aux connaissances dont Claude dispose toujours. Les slash commands servent aux actions que vous déclenchez explicitement. Si vous hésitez entre les deux, demandez-vous : « 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
| Portée | 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 (1 024 caractères max.). Claude l’utilise pour décider quand appliquer le skill |
allowed-tools |
Non | Restreint les capacités de Claude (par ex., Read, Grep, Glob en lecture seule) |
disable-model-invocation |
Non | Empêche l’auto-activation ; le skill ne s’active que via /skill-name |
user-invocable |
Non | Définissez sur false pour le masquer entièrement du menu / |
model |
Non | Remplace le modèle à utiliser lorsque le skill est actif |
context |
Non | Définissez sur fork pour s’exécuter dans une fenêtre de contexte isolée |
agent |
Non | S’exécute comme un subagent avec son propre contexte isolé |
hooks |
Non | Définit 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 essentiel
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 du code 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 sa compréhension standard du langage 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 indique : ce qu’elle fait (réviser du code pour des types de problèmes spécifiques), quand l’utiliser (examiner des modifications, des PR, analyser la qualité) et des expressions déclencheuses (review, audit, check) que les utilisateurs saisissent naturellement.
L’auto-activation est un réglage, pas une règle immuable : depuis la v2.1.215, Claude n’invoque plus lui-même les skills /verify et /code-review fournis — ils ne s’exécutent que sur invocation explicite, un recul délibéré de l’activation pilotée par la description pour des skills de revue lourds dont les exécutions non sollicitées coûtaient plus qu’elles ne rapportaient.74
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 une valeur de repli de 8 000 caractères.4 Si vous avez de nombreux skills, gardez chaque description concise et placez le principal cas d’usage en premier. Vous pouvez remplacer ce budget via la variable d’environnement SLASH_COMMAND_TOOL_CHAR_BUDGET,11 mais une meilleure solution consiste à écrire des descriptions plus courtes et plus précises. Exécutez /context pendant une session pour vérifier si des skills sont exclus.
Fichiers de support et organisation
Les skills peuvent référencer des fichiers supplémentaires dans le même dossier :
~/.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 documents de référence détaillés dans des fichiers de support.12
Partager des skills via Git
Les skills de projet (.claude/skills/ à la racine du dépôt) 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 vos collègues récupèrent les modifications, ils obtiennent automatiquement le skill. Aucune installation, aucune configuration. C’est la manière la plus efficace de standardiser l’expertise au sein d’une équipe.
Les skills comme bibliothèque de prompts
Au-delà des skills à usage unique, la structure des dossiers sert de 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 dont Claude se sert 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, qui ne s’activent que 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’auto-activent via des hooks SessionStart, injectant des contraintes de qualité dans chaque session sans invocation explicite. Le skill constitue la connaissance. Le hook constitue 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, voire git status) pollue le contexte dans 80 % des sessions. La solution consiste soit à resserrer la description, soit à ajouter disable-model-invocation: true et à exiger une invocation explicite avec /skill-name.4
Trop de skills en concurrence pour le budget. Davantage de skills signifie davantage de descriptions en concurrence pour les 1 % du budget de contexte. Si vous constatez que des skills ne s’activent pas, vérifiez /context pour ceux qui sont exclus. Privilégiez un nombre réduit de skills 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 risque de ne pas les trouver. Placez directement les informations essentielles dans SKILL.md.4
Surface des skills SDK (8 mai 2026)
Les harness auto-hébergés sur claude-agent-sdk-python v0.1.77+ doivent utiliser l’option skills de ClaudeAgentOptions pour déclarer les skills disponibles, et non l’ancienne valeur "Skill" dans allowed_tools.37 Le raccourci "Skill" est obsolète et l’option dédiée fournit à Claude Code des informations plus structurées sur les skills disponibles. Le CLI fourni dans la v0.1.77 est v2.1.133.
Convergence des plugins et des 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 inscription à une marketplace, et claude plugin init <name> y génère une nouvelle structure avec le manifest et SKILL.md déjà reliés.58 Cela comble l’écart entre les deux formes d’outillage de projet qui vivaient auparavant à des endroits différents — un skill seul, validé directement dans le dépôt, et un plugin qui regroupe un skill, des hooks et un serveur MCP, mais nécessitait auparavant une marketplace pour être installé. L’effet pratique pour la conception de harnesses : les outils limités à un projet n’ont plus besoin d’un détour par un registre pour être livrés — écrivez-les, validez-les, et vos collègues obtiennent la même surface avec git pull. Les plugins conservent leur rôle pour les cas d’installation groupée (hooks + skills + serveurs MCP + agents dans un ZIP) ; le changement est qu’un projet n’a plus besoin de mettre en place une marketplace pour en charger un depuis son propre arbre. Cette convergence repose désormais sur une base inter-fournisseurs : Agent Plugins 1.0.0 (publié le 6 août 2026) standardise la même forme de package — un manifest plugin.json, des dossiers skills/ contenant des dossiers SKILL.md, un mcp.json facultatif — comme « format de package portable pour les agents IA », adopté dès son lancement par VS Code, Cursor, GitHub Copilot, ChatGPT & Codex et Kiro. Il s’agit explicitement d’une couche de packaging autour d’Agent Skills et de MCP, et non d’un remplacement ; notez que Anthropic, auteur de la spécification Agent Skills, ne fait pas encore partie de la coalition — considérez donc la portabilité de Claude vers l’extérieur de Code comme une compatibilité au niveau du format, et non comme un contrat bidirectionnel officiel.89
Masquer la surface fournie comme mesure de gouvernance (8 juin 2026)
Les skills sont des capacités, et les capacités constituent une surface d’attaque. Claude Code v2.1.169 ajoute un paramètre disableBundledSkills (ainsi que la variable d’environnement correspondante CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) qui masque entièrement au modèle les skills fournis, les workflows et les slash commands intégrées.60 Pour un harness renforcé ou réglementé, il s’agit d’une réduction délibérée 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, afin que le modèle ne raisonne que sur la surface validée par l’opérateur. Traitez cela comme une allowlist d’outils — la configuration par défaut offre de larges capacités, et la désactiver est une décision de gouvernance, non un simple réglage de confort.
.claude/skills imbriqués et résolution « le plus proche l’emporte » (16 juin 2026)
Claude Code v2.1.178 a rendu l’outillage de projet 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 non plus seulement depuis la racine du dépôt ; en cas de conflit de nom, le skill imbriqué apparaît sous la forme <dir>:<name> afin que les deux restent accessibles.63 La même version a fait résoudre le reste de la surface de projet au plus près du répertoire de travail : lorsqu’un nom d’agent, de workflow ou de style de sortie entre en collision dans plusieurs dossiers .claude/ imbriqués, celui qui est le plus proche du répertoire de travail l’emporte, et l’enregistrement d’un workflow de portée projet cible le dossier .claude/workflows/ existant le plus proche plutôt que systématiquement la racine.63 Pour un monorepo ou un dépôt de dépôts, cela fait toute la différence entre une surface globale et plate et des outils par package qui s’activent selon le contexte — un services/api/.claude/skills/ peut contenir 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 des événements de cycle de vie Claude Code.3 Ils s’exécutent hors du LLM sous forme de scripts simples, et non comme des 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 31 événements de cycle de vie documentés, répartis en huit catégories, à la date de mise à jour de ce guide. La liste des événements s’allonge au fil des versions : considérez donc la documentation de référence comme source de vérité et consultez l’aide-mémoire pour obtenir le tableau complet à jour avant de configurer des hooks en production :13
| Catégorie | Événements | Peut bloquer ? |
|---|---|---|
| Session | SessionStart, Setup, SessionEnd |
Non |
| Utilisateur / fin | UserPromptSubmit, UserPromptExpansion, Stop, StopFailure, TeammateIdle |
Prompt/expansion/arrêt/inactivité peuvent bloquer ; StopFailure ne le peut pas |
| Outil | PreToolUse, PermissionRequest, PermissionDenied, PostToolUse, PostToolUseFailure, PostToolBatch |
Les événements préalables/d’autorisation/de lot peuvent bloquer ; les événements postérieurs ne le peuvent pas |
| Subagent / tâche | SubagentStart, SubagentStop, TaskCreated, TaskCompleted |
Les événements d’arrêt/de tâche peuvent bloquer ; le démarrage ne le peut pas |
| Contexte | PreCompact, PostCompact, InstructionsLoaded |
PreCompact peut bloquer ; les événements postérieurs/de chargement ne le peuvent pas |
| Système de fichiers / espace de travail | CwdChanged, DirectoryAdded, FileChanged, WorktreeCreate, WorktreeRemove |
La création de worktree peut bloquer ; les autres ne le peuvent pas |
| Configuration / notification | ConfigChange, Notification, MessageDisplay |
Les changements de configuration peuvent bloquer, sauf les paramètres de politique ; les notifications ne le peuvent pas ; MessageDisplay transforme uniquement le texte affiché (displayContent, v2.1.152) |
| MCP | Elicitation, ElicitationResult |
Oui |
Deux améliorations récentes comptent pour les harnesses d’arrière-plan et multi-agents. Depuis la v2.1.198, les sessions claude agents en arrière-plan déclenchent le hook Notification avec les valeurs de déclencheur agent_needs_input et agent_completed : un coordinateur peut donc réagir dès qu’un membre de la flotte se bloque sur un prompt ou termine — l’équivalent piloté par notification de l’interrogation de claude agents --json. Et depuis la v2.1.199, les hooks SessionStart, Setup et SubagentStart affichent stderr lorsqu’ils se terminent avec le code 2 (cette sortie était auparavant ignorée silencieusement) : ainsi, un hook de démarrage ou de lancement de subagent qui échoue explique désormais pourquoi, au lieu d’échouer sans indication. |
DirectoryAdded (v2.1.219) comble la lacune liée aux espaces de travail ajoutés en cours de session. La liste des événements est restée stable depuis l’arrivée de MessageDisplay dans la v2.1.152 ; DirectoryAdded est le premier nouvel événement de cycle de vie depuis lors, et il se déclenche après que /add-dir — ou la requête de contrôle register_repo_root du SDK — enregistre un nouveau répertoire de travail au cours d’une session.84 La lacune qu’il comble est réelle : jusqu’à présent, un harness pouvait valider exhaustivement un espace de travail à SessionStart, puis voir un deuxième dépôt y être ajouté sans qu’aucun hook ne se déclenche. Toute assertion concernant l’espace de travail au démarrage — vérifications de confiance, analyses de secrets, règles de restriction des chemins dérivées de l’arborescence, chargement de politiques par dépôt — doit être réexécutée ici, car l’ensemble des répertoires d’une session n’est plus fixe au lancement. L’événement est informatif plutôt que bloquant : considérez-le comme un déclencheur pour recalculer l’état et enregistrer la provenance, et non comme un garde-fou ; si un répertoire ne doit jamais pouvoir être ajouté, refusez-le dans les paramètres plutôt que d’essayer d’y opposer un veto depuis un hook. La partie SDK est arrivée dans la même version (TypeScript v0.3.219 ajoute DirectoryAdded aux événements de cycle de vie du protocole de contrôle) : les harnesses hébergés par SDK le voient donc au même niveau que ceux de CLI.85
Sémantique des codes de sortie
Les codes de sortie déterminent si les hooks bloquent des actions :3
| Code de sortie | Signification | Action |
|---|---|---|
| 0 | Succès | L’opération se poursuit. Stdout s’affiche en mode détaillé. |
| 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 s’affiche uniquement en mode détaillé (Ctrl+O). |
Critique : chaque hook de sécurité doit utiliser exit 2, et non exit 1. Le code de sortie 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 entre les équipes.14 |
Configuration des hooks
Les hooks sont définis dans des fichiers de paramètres. Au niveau du projet (.claude/settings.json) pour les hooks partagés. Au 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 d’outil, il correspond aux valeurs de tool_name telles que Bash, Edit, Write, Read, Glob, Grep, aux noms d’outils MCP tels que mcp__server__tool, ou à * pour tous les outils. 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 Depuis Claude Code v2.1.195, les matchers contenant des identifiants avec trait d’union (code-reviewer, mcp__brave-search) appliquent une correspondance exacte au lieu d’une correspondance accidentelle par sous-chaîne : un hook ciblant un agent ou serveur ne se déclenche plus pour chaque nom contenant simplement cette chaîne ; pour couvrir tous les outils d’un serveur MCP avec trait d’union, écrivez le modèle explicite mcp__brave-search__.*.66 La v2.1.214 a appliqué la même rigueur aux modèles de chemin : une condition if: de hook utilisant un modèle à segment unique dir/** ne correspond désormais qu’à <cwd>/dir, et non à chaque répertoire nommé dir n’importe où dans l’arborescence — écrivez **/dir/** lorsque vous visez réellement toutes les profondeurs.74 Comme pour le changement de la v2.1.195, la correction remplace une étendue accidentelle par une intention déclarée ; auditez toutes les conditions de hook qui dépendaient silencieusement de l’ancien comportement à toute profondeur.
Protocole d’entrée/sortie des hooks
Les hooks reçoivent du JSON sur stdin avec tout le contexte :
{
"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 de l’outil, injecter du contexte ou prendre des décisions d’autorisation. Utilisez l’enveloppe hookSpecificOutput — l’ancien format decision/reason au niveau supérieur est déconseillé 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, posez-vous la question : de quel type de garantie ai-je besoin ?14
Les garanties de formatage assurent la cohérence après coup. Les hooks PostToolUse sur Write/Edit exécutent votre formateur après chaque modification de fichier. La sortie du modèle n’a pas d’importance, car 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 modèles 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
Hooks de commande (type: "command") exécutent des scripts shell. Rapides, déterministes, sans coût en tokens.
Hooks d’outil MCP (type: "mcp_tool") appellent un outil 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 distinct.
Hooks de prompt (type: "prompt") envoient un prompt à un seul tour à un modèle Claude rapide. Le modèle renvoie { "ok": true } pour autoriser ou { "ok": false, "reason": "..." } pour bloquer. Utilisez-les pour une évaluation nuancée qu’une regex ne peut pas exprimer.
Hooks d’agent (type: "agent") lancent un subagent ayant accès aux outils (Read, Grep, Glob) afin d’effectuer une vérification sur plusieurs tours. Ils sont expérimentaux ; privilégiez les hooks de commande pour les gates de production et réservez les hooks d’agent aux contrôles qui nécessitent réellement d’inspecter des fichiers ou des résultats 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 hooks d’agent 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 devoir le déduire du texte du prompt.49
Hooks HTTP (type: "http") envoient l’entrée JSON de l’événement sous forme de requête POST vers une URL et reçoivent JSON en retour. Utilisez-les pour les webhooks, les services de notification externes ou la validation basée sur API (v2.1.63+). Ils ne sont pas 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 telles que 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. Ne l’utilisez jamais pour le formatage, la validation ou toute autre opération qui doit se terminer avant l’action suivante.
Dispatchers plutôt que hooks indépendants
Exécuter sept hooks qui se déclenchent tous sur le même événement et lisent chacun stdin indépendamment crée des conditions de concurrence. Deux hooks écrivant simultanément dans le même fichier d’état JSON tronqueront ce dernier JSON. Chaque hook en aval qui analyse ce fichier échoue.2
La solution : un dispatcher par événement, qui exécute les hooks séquentiellement à partir de 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 des hooks qui échouent silencieusement :14
- Testez les scripts indépendamment. Injectez 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 associé au code de sortie 2 est renvoyé à Claude sous forme de message d’erreur. Le stderr non bloquant (sortie 1, 3, etc.) n’apparaît qu’en mode verbeux (Ctrl+O).
- Surveillez les échecs de jq. Des chemins JSON erronés renvoient silencieusement
null. Testez les expressionsjqavec de véritables entrées d’outil. - Vérifiez les codes de sortie. Un hook PreToolUse qui utilise
exit 1n’applique aucune contrainte, tout en donnant l’impression de fonctionner. - Gardez les hooks rapides. Les hooks s’exécutent de manière synchrone. Gardez tous les hooks sous les 2 secondes, idéalement sous les 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 directement aux événements de hook depuis le flux de messages, plutôt que de passer par des callbacks de scripts shell.36 Définissez include_hook_events=True dans ClaudeAgentOptions ; les objets HookEventMessage (PreToolUse, PostToolUse, Stop et autres) sont alors produits par le même itérateur que les messages de l’assistant et les résultats d’outil. Cela reproduit l’option includeHookEvents du SDK TypeScript ; le CLI intégré est passé à v2.1.129 dans la même version.
Le modèle de flux d’événements convient lorsque votre harness se trouve déjà dans Python et que vous souhaitez gérer 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 meilleure réponse pour les harnesses qui composent plusieurs outils, partagent des hooks entre Claude Code et Codex, ou nécessitent la sémantique des codes de sortie pour bloquer.
La série de juillet 2026 du SDK TypeScript (v0.3.205–v0.3.208) a rendu le protocole de streaming lui-même plus contractuel.70 Les interruptions renvoient désormais des reçus typés : une interruption confirme quels messages placés en file d’attente le restent, via les UUID still_queued, et les sessions annoncent la capacité interrupt_receipt_v1 dans system/init. Un coordinateur peut ainsi distinguer « l’interruption a été prise en compte » de « l’interruption est arrivée après le départ d’un message déjà en cours ». Les frames command_lifecycle indiquent l’état queued/started/completed/cancelled/discarded de chaque message — la première réponse first-party à « qu’est-il arrivé au message que j’ai envoyé ? » sans inférence à partir de la transcription. Des surfaces plus modestes ont également été ajoutées : un type AgentToolCompletedOutput pour les payloads de fin de subagent, et les callbacks canUseTool peuvent désormais renvoyer {behavior: 'allow'} sans champ updatedInput.
Une ligne de cette série constitue un plancher de sécurité, non une fonctionnalité : la v0.3.208 a corrigé la conversion en succès de hook d’une annulation de l’appelant survenant alors qu’un hook était en attente — ce qui signifiait qu’un outil contrôlé par un hook PreToolUse pouvait s’exécuter après l’annulation par l’appelant.70 Si votre harness utilise des hooks côté SDK comme gate d’autorisation et s’appuie sur l’annulation pour interrompre le travail en cours, considérez v0.3.208 comme la version minimale ; en dessous, « annulé » ne signifiait pas de manière fiable « bloqué ». Python v0.2.127 (24 juillet 2026) constitue le deuxième contournement de cette forme en un mois : query() fermait stdin dès la première frame result alors que des subagents en arrière-plan étaient encore actifs. Leurs appels d’outil SDK-MCP échouaient donc avec "Stream closed" et contournaient entièrement les hooks PreToolUse.85 Nommez ce schéma et surveillez-le : l’application des hooks côté SDK échoue en mode permissif aux frontières du cycle de vie — annulation, démontage, fermeture du flux — lorsque le transport meurt avant que le verdict du hook soit recueilli. Elle échoue silencieusement, car un hook contourné ressemble exactement à un hook qui a autorisé l’action. Épinglez les deux versions minimales de SDK et conservez la couche de hooks shell comme mécanisme d’application que vous pouvez prouver.
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 davantage de signal sur leur contexte d’exécution :3839
effort.leveldans l’entrée de hook. Les hooks reçoivent désormais un champ JSONeffort.leveldans la même entrée quetool_inputetsession_id. La même valeur est exportée comme variable d’environnement$CLAUDE_EFFORT, afin que les commandes Bash puissent la lire sans analyser JSON. Utilisez-la pour adapter le coût des hooks au niveau d’effort : ignorez les validations coûteuses surlow, exécutez le gate de sécurité complet surxhighoumax.- Variable d’environnement
CLAUDE_CODE_SESSION_IDdans les sous-processus Bash. Les sous-processus de l’outil Bash voient désormais la même valeursession_idque les hooks, exposée sous le nomCLAUDE_CODE_SESSION_ID. Cela comble le manque de provenance pour les outils qui journalisent un état par session et ne pouvaient auparavant pas corréler les événements des sous-processus avec les événements de hook.
Les deux signaux sont disponibles sans modification du code ; les hooks existants qui ignorent les nouveaux champs continuent de fonctionner.
autoMode.hard_deny et correctifs de hooks/plugins v2.1.136 (8 mai 2026)
Claude Code v2.1.136 a ajouté un nouveau niveau de refus strict au mode automatique et corrigé un ensemble de problèmes de plugin et MCP qui affectaient les harnesses de longue durée :40
- settings.autoMode.hard_deny. Règles du classifieur du mode automatique qui bloquent sans condition, quelles que soient l’intention de l’utilisateur ou les exceptions d’autorisation. Elles se placent au-dessus des matchers allow/deny existants comme levier de gouvernance non négociable. Utilisez-les 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.
- autoMode.classifyAllShell (v2.1.193). Par défaut, le classifieur du mode automatique n’examine que les commandes shell correspondant à des schémas d’exécution de code arbitraire. Ce paramètre envoie chaque commande Bash/PowerShell au classifieur — la posture de couverture maximale pour un harness gouverné — et la même version affiche les raisons de refus dans la transcription, la notification et /permissions, ce qui transforme des blocages silencieux en décisions auditables. Codex a renforcé la surface équivalente dans la v0.142.2 : les commandes PowerShell comportant des régions AST exécutables que son classifieur de sécurité ne peut pas inspecter nécessitent désormais une approbation au lieu de passer silencieusement.66
- Hook ask impose un plancher au classifieur (v2.1.211). La question de préséance entre hooks et mode automatique est désormais tranchée : un hook PreToolUse qui renvoie une décision de permission ask fixe le résultat final à une demande — le mode automatique ne peut pas l’élever à allow pour des commandes Bash non sandboxées.69 Pour un harness gouverné, c’est le niveau de garantie qui manquait : un ask de hook est un arrêt déterministe avec intervention humaine, qui persiste même avec des postures de permission entièrement automatiques. Utilisez ask (et pas seulement des blocages exit-2) pour les opérations où vous souhaitez une décision humaine plutôt qu’un refus.
- Le modèle du classifieur est épinglé par session (v2.1.210). Le classifieur du mode automatique utilise Sonnet 5 par défaut et est épinglé pour la session ; les changements de modèle en cours de session ne modifient donc plus le modèle qui effectue les classifications de permissions.69 La cohérence des classifications est une propriété de gouvernance ; cela élimine une source discrète de dérive.
- 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 /clear dans l’extension VS Code, le plugin JetBrains et Agent SDK. Le correctif arrive dans la v2.1.136. Si vous avez constaté que « MCP server X went missing mid-session », c’en était la cause.
- Perte du refresh token MCP OAuth lors d’un rafraîchissement simultané. Les utilisateurs disposant de plusieurs serveurs MCP distants ne devraient plus avoir besoin de se réauthentifier quotidiennement. Les écritures de rafraîchissement simultanées s’écrasaient mutuellement.
- Le mode Plan bloque désormais correctement les écritures de fichiers. Une règle allow Edit(...) correspondante contournait la protection contre les écritures du mode Plan. Le mode Plan est maintenant appliqué indépendamment des règles allow.
- Les hooks Stop et UserPromptSubmit de plugins n’échouent plus en cours de 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 conserve les versions utilisées épinglées.
- Entrée skills dans plugin.json. Définir skills masquait le dossier skills/ par défaut du plugin. Désormais, l’entrée se compose correctement, et la faire pointer vers un chemin de fichier déclenche une erreur explicite au lieu d’échouer silencieusement.
- Variables d’environnement du hook SessionStart CLAUDE_ENV_FILE devenant obsolètes. Les variables exportées par les hooks SessionStart via CLAUDE_ENV_FILE devenaient obsolètes après /resume ou /clear. Corrigé dans la v2.1.136. Les sessions rechargent maintenant le fichier d’environnement lors de ces événements.
Pour les harnesses de gouvernance, les éléments opérationnellement intéressants sont autoMode.hard_deny (nouveau levier) et le correctif de disparition de MCP (échec silencieux qui cassait les longues sessions). Tout le reste relève d’un 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 hooks importants pour les harnesses de production : une forme d’exécution args: string[] pour les hooks de commande, et continueOnBlock pour les hooks PostToolUse.4244 Préférez args lorsqu’un hook nécessite des valeurs dynamiques ou des placeholders de chemin. La commande est lancée directement, sans shell, ce qui élimine toute une catégorie d’erreurs de quoting et d’injection.
Utilisez continueOnBlock lorsqu’un hook PostToolUse doit renvoyer sa raison de rejet à Claude et poursuivre le tour au lieu de mettre fin au flux. Considérez-le comme une fonctionnalité d’expérience opérateur, et non comme un contournement de sécurité. Une gate bloquante doit toujours bloquer le résultat non sûr.
La même version transmet CLAUDE_PROJECT_DIR aux serveurs stdio MCP et permet aux configurations de plugins de référencer ${CLAUDE_PROJECT_DIR} dans les commandes.42 Les outils MCP doivent résoudre les chemins relatifs au projet à partir de cette valeur plutôt que du répertoire de travail du processus qui a lancé le serveur. Les versions du début juillet 2026 (v2.1.203–v2.1.206) ont étendu le même principe au niveau du protocole : roots/list de MCP inclut désormais les répertoires de travail supplémentaires de la session, avec des notifications roots/list_changed lorsqu’ils changent — ainsi, un serveur qui respecte les roots MCP suit la véritable structure de l’espace de travail multi-répertoires au lieu de supposer un seul répertoire de projet.68
Claude Code v2.1.140 est principalement une version de fiabilité pour les opérateurs de harnesses : elle corrige les hooks ConfigChange qui ne se déclenchaient pas lors de modifications des paramètres, ferme des cas limites où disableAllHooks et allowManagedHooksOnly ne se composaient pas correctement entre les niveaux de paramètres, et empêche les dialogues de permission d’exposer des variables d’environnement non intentionnelles renvoyées par les résultats de hook.49 Cela rend les modèles de gouvernance existants de cette section plus fiables ; aucune nouvelle architecture de hook n’est nécessaire.
Claude Code v2.1.141 ajoute un champ terminalSequence dans la sortie de hook pour les notifications de bureau, les titres de fenêtre et les alertes sonores sans terminal de contrôle.50 Considérez-le comme une signalisation opérateur, et non comme un mécanisme d’application. Les gates de sécurité et de qualité doivent toujours communiquer les échecs via le contrat de blocage normal : sortie de hook structurée et comportement de sortie qui empêche l’action non sûre. La même version ajoute claude agents --cwd <path> pour limiter Agent View à un répertoire, CLAUDE_CODE_PLUGIN_PREFER_HTTPS pour les installations de plugins dans les environnements sans clés GitHub SSH, et ANTHROPIC_WORKSPACE_ID pour les règles de fédération d’identité de charge de travail couvrant plus d’un espace de travail.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 des plugins et délimitation explicite des tokens d’entreprise.
Claude Code v2.1.142 est plus important pour l’orchestration des sessions en arrière-plan que pour la sémantique des hooks.51 claude agents peut désormais dispatcher des sessions en arrière-plan avec des flags explicites de répertoire, paramètres, MCP, plugin, permission, modèle et effort, au lieu de dépendre de l’état d’un wrapper. Le mode Fast utilisait Opus 4.7 par défaut dans cette version, avec CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1 comme épinglage pour un harness dont le comportement dépend de manière mesurée d’Opus 4.6 — à compter de la v2.1.219, Opus 4.7 n’est plus du tout en mode Fast et /fast s’applique à Opus 5 et Opus 4.8.84 La découverte de SKILL.md à la racine des plugins et la visibilité LSP fournie par les plugins réduisent l’ambiguïté de packaging. Les correctifs apportés à MCP_TOOL_TIMEOUT, aux worktrees de sessions en arrière-plan préexistants, à la mise en veille/réveil des daemons et au nettoyage post-mise à niveau, ainsi qu’au nettoyage du cache des plugins, comblent des lacunes de fiabilité qui ressemblent autrement à des bugs d’orchestration.
Pilotage par hook Stop, autorité inter-session et multi-agent v2 (juin 2026)
Quatre changements du début juin sont importants pour la conception des harnesses et du multi-agent.59
Les hooks Stop/SubagentStop ont acquis un canal de pilotage. À partir de Claude Code v2.1.163, un hook Stop ou SubagentStop peut renvoyer hookSpecificOutput.additionalContext afin de transmettre un retour à Claude et de poursuivre le tour, sans que la réponse soit étiquetée comme une erreur de hook. Auparavant, le seul véritable levier d’un hook Stop était le blocage exit-2, qui est interprété comme une erreur et compte dans le plafond des blocages consécutifs. Pour un harness de gate qualité, c’est la primitive la plus propre : un hook Stop qui détecte « vous avez déclaré avoir terminé mais les tests sont en échec » peut désormais injecter « voici ce qui échoue encore, poursuivez » 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. La 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 ; une session destinataire refuse donc les demandes de permission relayées et le mode automatique les bloque. Si votre orchestration fait communiquer des agents entre eux, traitez un message entrant comme des données non fiables, et non comme une instruction authentifiée. C’est le même principe que la section sécurité applique à la sortie des outils, étendu à la messagerie inter-agents. À partir de la v2.1.199, Claude Code détecte et avertit également lorsqu’un SendMessage est mal routé parce que deux agents partagent le même nom — un complément de fiabilité à cette limite d’autorité, puisqu’un message qui atteint le mauvais agent portant le même nom constitue sa propre catégorie de bug d’orchestration.
Les sessions sont désormais des pairs de premier rang (v2.1.224+). La messagerie intersessions est passée du renforcement du relais à une surface complète : SendMessage/ListAgents permettent à vos sessions de se découvrir et de s’envoyer des messages entre vos machines (macOS/Linux), avec des contrôles crossSessionInbound accepter/mettre en attente/refuser côté réception — et les self-hosted runners permettent aux sessions web et mobiles de Claude Code de s’exécuter sur le matériel que vous contrôlez. Pour l’architecture de harness, cela transforme « une session » en nœud adressable : la découverte, la politique entrante et la limite d’autorité ci-dessus sont désormais des primitives de plateforme, et non des scripts de boîte aux lettres (le guide Claude Code documente le contrat complet).87 Un changement de posture l’accompagne : le mode auto devient le mode d’autorisation par défaut pour les forfaits Pro, Max et Team le 14 août 2026 — un harness qui compte sur les sollicitations du mode Manual comme filet de sécurité humain dans la boucle doit définir explicitement defaultMode plutôt que de le supposer.87
La résilience des modèles est devenue un paramètre de premier rang. Le paramètre fallbackModel enchaîne désormais jusqu’à trois modèles de secours, essayés dans l’ordre lorsque le modèle principal est surchargé ou indisponible, et un tour réessaie automatiquement une fois avec le modèle de secours en cas d’erreurs API inattendues et non réessayables. Pour un harness autonome de longue durée, cela transforme une indisponibilité transitoire du modèle principal en dégradation gracieuse plutôt qu’en exécution abandonnée. claude agents --json a également ajouté un champ waitingFor (v2.1.162) qui indique ce qu’attend une session en arrière-plan bloquée, comme une demande d’autorisation — un gain d’observabilité pour tout coordinateur qui interroge une flotte d’agents.
Mode sans échec pour la gouvernance en environnement isolé et le dépannage. Claude Code v2.1.169 ajoute un flag --safe-mode (et la variable d’environnement CLAUDE_CODE_SAFE_MODE correspondante) qui démarre une session avec toutes les personnalisations désactivées simultanément : CLAUDE.md, plugins, skills, hooks et serveurs MCP.60 C’est l’inverse du harness — un environnement isolé délibéré. Utilisez-le pour répondre à la question que tout opérateur finit par se poser : « ce comportement vient-il du modèle, ou de ce que j’ai configuré ? » Lorsqu’un hook se déclenche mal, qu’un skill s’active alors qu’il ne devrait pas, ou qu’un serveur MCP empoisonne le contexte, --safe-mode vous offre une base connue et vide à comparer. C’est aussi une primitive de gouvernance : une manière d’exécuter le modèle nu sans aucune de l’autorité persistante que votre harness accorde habituellement, ce qui importe lorsque vous devez reproduire un résultat sans qu’aucun échafaudage défini par l’opérateur ne l’influence.
Note sur les niveaux de modèles. Depuis Claude Code v2.1.197 (30 juin 2026), Claude Sonnet 5 est le modèle par défaut livré pour les nouvelles sessions — contexte natif de 1M, tarif promotionnel de 2 $/10 $ par MTok jusqu’au 31 août — remplaçant Opus 4.8 comme choix prêt à l’emploi. Ce guide considère Opus 5 (claude-opus-5) comme le choix agentique recommandé par défaut : le modèle sur lequel exécuter des harnesses autonomes, sauf choix délibéré contraire, car les boucles d’agents à long horizon et à forts enjeux sont précisément celles où la profondeur de raisonnement d’Opus justifie son coût. Opus 5 est sorti le 24 juillet 2026 comme nouvel Opus par défaut dans Claude Code v2.1.219 — contexte de 1M, 5 $/25 $ par MTok (le même prix que l’Opus 4.8 qu’il remplace), mode rapide à 10 $/50 $ pour une vitesse environ 2,5× supérieure à celle par défaut — et Anthropic indique qu’il fait plus que doubler Opus 4.8 sur Frontier-Bench v0.1 tout en se situant à moins de 0,5 % du score CursorBench 3.2 de Fable 5, pour la moitié du coût.8491 Même prix, davantage de capacités, et un modèle que Anthropic qualifie de « beaucoup plus performant pour vérifier son travail et itérer avec soin » : c’est la rare mise à niveau qui n’exige aucun argument de coût pour le travail sur les harnesses ; la migration depuis 4.8 se résume à un changement d’identifiant. Passez à Sonnet 5 pour les travaux sensibles au coût ou à très haut débit, lorsque son ratio vitesse/intelligence l’emporte. Au-dessus d’Opus se trouve Claude Fable 5 (claude-fable-5), lancé le 9 juin 2026 — un nouveau niveau décrit comme le modèle le plus puissant de Anthropic, un système de « classe Mythos » rendu sûr pour un usage général, sélectionnable dans Claude Code v2.1.170 via /model claude-fable-5.60 Optez délibérément pour ce niveau supérieur, pour les décisions où la profondeur brute de raisonnement justifie le coût, et non comme paramètre général pour une flotte. Le basculement vers Opus 5 entraîne deux conséquences d’entretien : Opus 4.7 n’est plus disponible en mode rapide (/fast s’applique désormais à Opus 5 et Opus 4.8), et le repli Fable-5 du classificateur du mode auto — « le meilleur modèle Opus disponible » depuis la v2.1.176 — se résout désormais vers Opus 5.84
Codex a livré le multi-agent v2. Codex CLI v0.137.0 conserve le choix d’exécution avec chaque thread, expose des valeurs par défaut plus propres pour les suivis et les métadonnées des agents générés (hide_spawn_agent_metadata est désormais défini sur true par défaut), et propage les événements bruts du parent aux écouteurs enfants. Son modèle de subagents 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 de skills v1 avec résolution du catalogue de skills à chaque tour et de nouveaux événements contributeurs de cycle de vie de démarrage de thread/d’erreur de tour, réduisant l’écart avec la surface hooks/skills de Claude Code tout en conservant la posture de sandbox du kernel comme limite par défaut. Codex v0.138.0–v0.139.0 a ensuite renforcé le multi-agent v2 pour la production : les charges utiles des messages inter-agents sont désormais chiffrées, un catalogue de configuration d’agents v2 ainsi qu’un LRU de résidence des agents gèrent quels agents restent résidents, et la concurrence est comptée selon l’exécution active plutôt que selon les threads générés, afin que les agents inactifs ne consomment plus de slot.61 Le cycle de vie API a également mûri : close_agent a été renommé interrupt_agent (v0.139.0) afin de 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 levés par un subagent restent désormais limités au thread propriétaire au lieu de remonter en double dans la transcription du parent.61 Pour quiconque construit une orchestration côté Codex, ces éléments font la différence entre une démo et une flotte : transport de messages chiffré, résidence limitée, concurrence comptée par exécution et avertissements qui ne franchissent pas la limite du thread. Codex v0.140.0 a ensuite ouvert une jonction inter-outil : /import récupère sélectivement la configuration, la config de projet et les discussions récentes de Claude Code dans Codex, et les sessions sont devenues supprimables de manière permanente (codex delete / /delete, avec garde-fous 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 avec une IA fonctionne dans une fenêtre de contexte limitée. À mesure que la conversation s’allonge, le système compresse les tours précédents pour libérer de la place pour le nouveau contenu. Cette compression est avec perte. Des décisions architecturales documentées au tour 3 peuvent ne pas survivre jusqu’au tour 15.9
Les trois mécanismes d’effondrement sur plusieurs 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 écartées pour intégrer le nouveau contenu | Pointage 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 à contexte neuf (boucle Ralph) |
| Échec de coordination | Plusieurs agents détiennent des instantanés d’état différents | Protocoles d’état partagé entre les agents |
Stratégie 1 : le système de fichiers comme mémoire
La mémoire la plus fiable au-delà des frontières du contexte réside 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 consigne les erreurs, les décisions et les modèles récurrents entre les sessions. Lorsque vous découvrez que ((VAR++)) échoue avec set -e dans bash lorsque VAR vaut 0, vous le consignez. Trois sessions plus tard, lorsque vous rencontrez un cas limite similaire sur les entiers dans Python, l’entrée de MEMORY.md fait ressortir ce modèle.15
Mémoire automatique (v2.1.32+) : Claude Code enregistre et rappelle automatiquement le contexte du projet. Pendant votre travail, Claude écrit des observations dans ~/.claude/projects/{project-path}/memory/MEMORY.md. La mémoire automatique charge les 200 premières lignes dans votre prompt système au début de la session. Gardez ce fichier concis et liez des fichiers thématiques distincts pour les notes détaillées.6 Depuis la v2.1.210, une écriture dans MEMORY.md qui dépasse la limite de taille échoue au lieu d’être silencieusement tronquée69 — l’échec apparaît au moment de l’écriture plutôt que sous la forme d’entrées mémoire disparues sans bruit. Si votre harness automatise les écritures de mémoire, gérez cette erreur ; la plateforme vous indique que le fichier doit être entretenu, et non qu’il faut réessayer.
Curation de la mémoire plutôt que volume de mémoire (mai 2026) : une récente prépublication arXiv sur la coopération entre agents LLM présente l’augmentation du rappel comme un mode d’échec possible : dans les expériences des auteurs, un historique visible plus long a dégradé la coopération dans 18 des 28 configurations de jeux de modèles.48 Considérez cela comme un avertissement de conception, et non comme une loi établie. La règle de production est déjà suffisamment claire : gardez MEMORY.md court, renvoyez vers les détails et placez des synthèses prêtes à la décision dans les handoffs. Les exports bruts de transcriptions, les journaux d’outils et les longs flux de rappel doivent rester dans un stockage interrogeable, 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 achevé une sous-tâche distincte (fonctionnalité implémentée, bug corrigé) - Avant de commencer une nouvelle zone de la base de code - Lorsque Claude commence à répéter ou à oublier le contexte antérieur - 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 cache de prompt. Elle déplace une session vers un nouveau répertoire de travail en cours de route sans casser le cache accumulé au fil des tours.60 Auparavant, changer de répertoire impliquait une nouvelle session et un cache froid. Pour une session longue qui bascule d’un dépôt à un dépôt frère — situation courante dans les monorepos et le travail multi-services — /cd conserve intact le préfixe coûteux mis en cache tout en redirigeant 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 Statut/Fichiers/Décision/Bloqué/Suivant fournit à la session suivante tout le contexte avec un coût minimal en tokens. Démarrer une nouvelle session avec claude -c (continuer) ou lire le document de handoff permet de passer directement à l’implémentation.15
Stratégie 4 : itération à contexte neuf (la boucle Ralph)
Pour les sessions dépassant 60 à 90 minutes, lancez une nouvelle instance de Claude par itération. L’état persiste via le système de fichiers, et non via la mémoire conversationnelle. Chaque itération bénéficie de l’intégralité du budget de contexte :16
Iteration 1: [fresh context] -> writes code, creates files, updates state
Iteration 2: [fresh context] -> reads state from disk, continues
Iteration 3: [fresh context] -> reads updated state, continues
...
Iteration N: [fresh context] -> reads final state, verifies criteria
Comparez avec une seule session longue :
Minute 0: [fresh context] -> productive
Minute 30: [context filling] -> somewhat productive
Minute 60: [mostly consumed] -> degraded
Minute 90: [compaction pending] -> significantly degraded
Minute 120: [compressed, lossy] -> errors accumulate
L’approche à contexte neuf pour chaque itération échange un surcoût de 15 à 20 % 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 est le suivant : pour les sessions de moins de 60 minutes, une seule conversation est plus efficace. Au-delà de 90 minutes, un contexte neuf produit des résultats de meilleure qualité malgré ce surcoût.
Stratégie 5 : curation gérée de la mémoire (Dreaming)
Les Managed Agents de Anthropic et Claude ont ajouté Dreaming en tant que Research Preview le 6 mai 2026.35 Selon Anthropic : « Dreaming est un processus planifié qui examine vos sessions d’agent et vos espaces de stockage de mémoire, en extrait des modèles 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, et non sur le chemin critique. Il complète plutôt qu’il ne remplace le modèle du système de fichiers comme mémoire : votre fichier MEMORY.md reste la surface porteuse ; Dreaming écrit des entrées de mémoire sélectionnées dans l’espace mémoire des Managed Agents, que l’agent lit au début de la session. Les deux modèles coexistent pour les harnesses qui associent un état de système de fichiers auto-hébergé à une curation côté service géré.
| Mémoire du système de fichiers | Dreaming (Managed) | |
|---|---|---|
| Où réside la mémoire | Votre dépôt, versionné | Espace mémoire géré par Anthropic |
| Quand elle est mise à 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 et modèles que vous signalez | Modèles extraits de l’historique des sessions |
| Idéal pour | Connaissance institutionnelle propre au projet | Découverte intersessions de modèles que vous ne repéreriez pas à la main |
Dreaming est en Research Preview, son comportement peut donc évoluer. Les modèles de handoffs de session et de CLAUDE.md documentés ci-dessus restent le mécanisme de mémoire de référence pour les harnesses auto-hébergés.
Les anti-modèles
Lire des fichiers entiers lorsque vous avez besoin 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 la grande majorité de ce coût.15
Conserver une sortie d’erreur détaillée dans le contexte. Après le débogage d’un bug, votre contexte contient plus de 40 traces de pile provenant d’itérations échouées. Un seul /compact après la correction du bug libère ce poids mort.
Commencer chaque session en lisant chaque fichier. Laissez les outils glob et grep de Claude Code trouver les fichiers pertinents à la demande, ce qui évite plus de 100 000 tokens de préchargement inutile.15
Modèles de subagents
Les subagents sont des instances spécialisées de Claude qui prennent en charge des tâches complexes de manière autonome. La plupart démarrent avec un contexte vierge (sans pollution issue de la conversation principale) — à l’exception du type fork ci-dessous, qui hérite délibérément de l’intégralité du contexte —, utilisent les outils spécifiés et renvoient leurs résultats sous forme de synthèses. Les résultats de l’exploration n’alourdissent pas votre conversation principale ; seules les conclusions y sont renvoyées.5
Types de subagents intégrés
| Type | Modèle | Mode | Outils | Usage |
|---|---|---|---|---|
| Explore | Hérite du modèle de la session, avec Opus comme plafond (v2.1.198 ; toujours Haiku auparavant) | Lecture seule | Glob, Grep, Read, commandes bash sûres | Exploration de la base de code, recherche de fichiers |
| General-purpose | Hérite | Lecture/écriture complète | Tous les outils disponibles | Recherche complexe et modifications |
| Plan | Hérite (ou Opus) | Lecture seule | Read, Glob, Grep, Bash | Planification avant exécution |
| Fork | Toujours le modèle du parent | Lecture/écriture complète | Identiques à ceux de la session principale | Travail nécessitant l’intégralité de la conversation : il hérite de tout l’historique, du prompt système, des outils et du cache de prompts, tandis que ses propres appels d’outils restent hors de votre contexte. Activé par défaut dans les sessions interactives depuis la v2.1.232 ; désactivé avec -p et le SDK88 |
Création de 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 | Fonction |
|---|---|---|
name |
Oui | Identifiant unique (minuscules et traits d’union) |
description |
Oui | Conditions d’appel (incluez « PROACTIVELY » pour favoriser la délégation automatique) |
tools |
Non | Liste séparée par des virgules. Hérite de tous les outils si ce champ est omis. Prend en charge Agent(agent_type) pour limiter les agents pouvant être lancés |
disallowedTools |
Non | Outils à interdire, retirés de la liste héritée ou spécifiée. Depuis la v2.1.178, les spécifications au niveau du serveur MCP (mcp__server, mcp__server__*, mcp__*) sont correctement reconnues ici — les versions antérieures les ignoraient silencieusement, si bien qu’une règle d’interdiction censée bloquer un serveur MCP ne faisait en réalité rien.63 |
model |
Non | sonnet, opus, haiku, inherit (valeur par défaut : inherit) |
permissionMode |
Non | default (libellé « Manual » dans les CLI/IDE depuis la v2.1.200 ; manual est un alias accepté pour cette valeur de configuration inchangée), acceptEdits, delegate, dontAsk, bypassPermissions, plan. Depuis la v2.1.212, le paramètre mode propre à chaque appel du Task tool est obsolète — les subagents héritent du mode d’autorisation de la session parente, tandis que ce champ de frontmatter sert à le remplacer pour chaque agent69 |
maxTurns |
Non | Nombre maximal de tours agentiques avant l’arrêt du subagent |
memory |
Non | Portée de la 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 également les skills du projet, de l’utilisateur et des plugins au moyen du Skill tool, de la même manière que la session parente. Les versions antérieures 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 | Impose une tâche en arrière-plan. Depuis la v2.1.198, les subagents s’exécutent par défaut en arrière-plan — la session principale poursuit son travail et reçoit une notification à la fin — ; ce champ fixe donc désormais explicitement ce comportement au lieu de l’activer |
isolation |
Non | Définissez sur worktree pour obtenir une copie isolée dans un git worktree |
Isolation par worktree
Les subagents peuvent travailler dans des git worktrees temporaires, qui leur fournissent 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 base de code.
L’isolation n’en est réellement une que si elle tient. La v2.1.210 de Claude Code a corrigé un bug qui permettait aux subagents isolés dans un worktree de modifier le checkout principal — précisément la défaillance que ce mécanisme est censé empêcher.69 Si vous utilisez isolation: worktree comme frontière de sécurité plutôt que comme simple commodité, considérez la v2.1.210 comme la version minimale. La modification associée des autorisations va dans l’autre sens : depuis la v2.1.211, les règles « always allow » persistent à la racine du dépôt dans tous les worktrees ; une règle acceptée dans l’un d’eux s’applique donc aux worktrees frères du même dépôt.69 Cette ergonomie convient aux agents travaillant en parallèle dans des worktrees, mais elle signifie qu’une autorisation accordée pendant une expérience jetable survit à celle-ci — accordez-la en pensant à l’ensemble du dépôt, pas seulement au worktree qui se trouve devant vous.
La v2.1.216 a achevé le travail, faisant passer l’isolation par worktree du stade de correction de bug à celui de mécanisme robuste.74 Le correctif de la v2.1.210 empêchait les subagents de worktree de modifier le checkout principal au moyen d’une invocation git ordinaire, mais git permet lui-même une redirection explicite — git -C <path>, --git-dir et les variables d’environnement GIT_DIR/GIT_WORK_TREE —, et un subagent isolé dans un worktree pouvait encore les pointer vers le checkout partagé. Toutes ces échappatoires sont désormais fermées. La même version a corrigé les sessions de worktree qui aboutissaient parfois dans le worktree résiduel d’un autre projet, empêché les écritures de workflows et de tâches planifiées de suivre un lien symbolique placé dans .claude vers une cible extérieure au projet, et fait en sorte que /rewind refuse de traverser les liens symboliques et les liens physiques. Ces quatre correctifs suivent le même principe : une frontière d’isolation doit résister aux redirections délibérées — remplacement des variables d’environnement de git, implantation de liens symboliques —, pas seulement au comportement par défaut. Si isolation: worktree constitue une frontière de sécurité dans votre harness plutôt qu’une commodité, la v2.1.216 est la nouvelle version minimale.
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 une synthèse. Le contexte principal reste propre.
Le garde-fou contre la récursion
Sans limites de lancement, les agents délèguent à des agents qui délèguent à leur tour à d’autres agents, chacun perdant du contexte et consommant des tokens. Le modèle de garde-fou contre la 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 essentielle : 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 à une profondeur de 3), mais ignorent la largeur : 23 agents à une profondeur de 1 restent à une « profondeur de 1 ». Un budget de lancement comptabilise le nombre total d’enfants actifs par parent, avec un maximum configurable. Le modèle budgétaire correspond au mode de défaillance réel (trop d’agents au total), plutôt qu’à une mesure indirecte (trop de niveaux d’imbrication).7
La profondeur d’imbrication par défaut a changé trois fois ; ne bâtissez rien dessus. La v2.1.172 de Claude Code (10 juin 2026) a permis aux subagents de lancer leurs propres subagents, avec une imbrication pouvant atteindre 5 niveaux — alors que la délégation était auparavant limitée, dans les faits, à un seul niveau.62 Ce comportement a perduré de la v2.1.172 à la v2.1.216. La v2.1.217 (21 juillet 2026) a ramené cette profondeur à 1, désactivant par défaut les lancements imbriqués. Puis la v2.1.219 (24 juillet 2026) a choisi un compromis : « Subagents can now spawn nested subagents up to depth 3 by default (was 1); set CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 to disable nesting. »84 Cinq, puis un, puis trois — les deux derniers changements en l’espace de trois jours.
Il ne faut pas en conclure que l’un de ces nombres est le bon. Cela montre plutôt que la plateforme cherche encore le réglage par défaut adéquat, ce qui fait de « ce qui est livré » un mauvais comportement à laisser votre harness hériter. Considérez la profondeur d’imbrication comme une ligne budgétaire explicite : définissez CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH sur la profondeur réellement nécessaire à votre architecture — 1 ou 2 dans la plupart des orchestrations — afin qu’une mise à niveau ne puisse pas modifier discrètement la profondeur de délégation de votre parc. Malgré tous ces changements, l’argument de fond reste le même : les chaînes d’agents déléguant à d’autres agents consomment contexte et tokens plus vite qu’elles ne produisent de résultats, et la profondeur est un risque à budgéter, pas une capacité à rechercher. Le garde-fou contre la récursion ci-dessus empêche un arbre profond de se déployer en centaines d’agents actifs, quelle que soit la prochaine évolution de la valeur par défaut ; seule une limite que vous définissez vous-même conservera le sens que vous lui donnez après la prochaine version.
Le mode automatique évalue désormais les lancements avant leur exécution. La v2.1.178 de Claude Code a comblé la lacune correspondante en matière de gouvernance : en mode automatique, les lancements de subagents sont évalués par le classificateur d’autorisations avant le démarrage du subagent, et non plus seulement lorsqu’il commence à agir.63 Auparavant, un subagent pouvait être lancé pour demander une action que la session parente n’aurait pas été autorisée à effectuer — le lancement lui-même constituait le contournement. L’évaluation au moment du lancement fait enfin converger le garde-fou contre la récursion et le modèle d’autorisations : un enfant ne peut plus servir d’intermédiaire pour blanchir une action interdite par la politique.
La plateforme fournit désormais un budget de lancement natif. La v2.1.212 de Claude Code (juillet 2026) a ajouté des garde-fous natifs contre les boucles incontrôlées : les sessions sont limitées par défaut à 200 lancements de subagents (CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION pour ajuster cette valeur, /clear pour réinitialiser le compteur), et WebSearch est limité à 200 appels par session (CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION).69 Le modèle de budget de lancement que cette section documentait sous forme de script utilisateur depuis la v1.0 est désormais fourni par la plateforme — ce qui valide le modèle budgétaire au détriment du modèle fondé sur la profondeur. Notez toutefois le calibrage : 200 lancements représentent un ordre de grandeur supérieur au budget de 12 agents de la configuration ci-dessus. Les plafonds natifs sont des fusibles contre une boucle réellement incontrôlée, pas des budgets adaptés à votre architecture. Conservez le garde-fou utilisateur pour les budgets par parent, le suivi de la profondeur et les limites correspondant au fonctionnement attendu de votre orchestration ; laissez le plafond de la plateforme intercepter ce qui lui échapperait.
Les garde-fous natifs couvrent désormais quatre axes. Trois d’entre eux renforcent précisément ce que suit le garde-fou utilisateur de cette section : le nombre total de lancements par session (v2.1.212, plafond de 200, CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION), la profondeur d’imbrication (CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, actuellement fixée par défaut à 3 et manifestement instable) et l’exécution simultanée (v2.1.217, valeur par défaut de 20, CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS — un seul message ne peut plus déployer sans limite des agents en arrière-plan).7884 La v2.1.219 en ajoute un quatrième, généralement absent des garde-fous utilisateur : la largeur de l’orchestration, c’est-à-dire le nombre d’agents qu’un workflow planifié est autorisé à contenir, livrée sous la forme d’une recommandation par défaut visant « moins de 15 agents » et configurable dans n’importe quel fichier de paramètres avec workflowSizeGuideline (voir la section Workflow Tool ci-dessous). Le modèle de budget de lancement bénéficie désormais d’un garde-fou sur chacun des axes pour lesquels il a été conçu, plus un autre qui ne l’était pas.
La remarque sur le calibrage reste valable, mais de manière inégale. Les plafonds de 200 lancements et de 20 agents simultanés sont des fusibles — un ordre de grandeur au-dessus du budget de délibération de 12 agents dans la configuration ci-dessus, dimensionnés pour détecter une boucle incontrôlée plutôt que pour façonner une architecture. La recommandation sur la largeur est la première valeur native du même ordre qu’un véritable budget : 15 agents par workflow se situent juste à côté des 12 de ce guide, suffisamment près pour que l’adoption de la valeur par défaut de la plateforme ne vous coûte rien et que tout désaccord exige une véritable justification. Définissez les trois fusibles sur des valeurs que vous pouvez défendre ; adaptez la recommandation de largeur à la forme de l’orchestration que vous vouliez construire.
Agent Teams (aperçu de recherche)
Les Agent Teams coordonnent plusieurs instances de Claude Code qui travaillent de manière indépendante, communiquent au moyen d’une boîte aux lettres et d’une liste de tâches partagées, et peuvent remettre en question les conclusions des autres :5
| Composant | Rôle |
|---|---|
| Responsable d’équipe | Session principale qui crée l’équipe, lance les coéquipiers et coordonne le travail |
| Coéquipiers | Instances distinctes de Claude Code travaillant sur les tâches qui leur sont attribuées |
| Liste de tâches | Éléments de travail partagés que les coéquipiers s’attribuent et accomplissent (avec verrouillage de fichier) |
| Boîte aux lettres | Système de messagerie destiné à la communication entre 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 échangent directement |
| 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 | Travaux complexes exigeant discussion et collaboration |
| Coût en tokens | Inférieur | Supérieur (chaque coéquipier dispose d’une fenêtre de contexte distincte) |
Agent View et boucles d’objectifs (mai 2026)
La v2.1.139 de Claude Code a ajouté Agent View, une interface en aperçu de recherche lancée avec claude agents, qui affiche sur 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 de gérer de nombreuses sessions, de voir ce que chacune accomplit et de repérer celles qui nécessitent l’intervention de l’opérateur.43 Le travail multi-agent bénéficie ainsi d’une vue opérationnelle que les synthèses finales ne peuvent pas fournir.
Utilisez Agent View lorsque vous faites évoluer un modèle de subagent ou d’équipe : examinez les sessions bloquées, celles qui sont encore en cours et vérifiez si la répartition du travail correspond à l’architecture prévue. Ne considérez pas cette vue comme une preuve de qualité. Elle assure l’observabilité ; les tests, les portes de validation et les rapports de preuves déterminent toujours si le travail est fiable.
La même version a ajouté /goal, qui définit une condition d’achèvement et permet à Claude de poursuivre son travail sur plusieurs tours jusqu’à ce que cette condition soit remplie, y compris en mode interactif, avec -p et via Remote Control.42 Considérez /goal comme une boucle d’achèvement limitée à la session, et non comme un substitut aux portes déterministes. Cette commande aide l’agent à rester concentré sur un objectif, mais les tests, les vérifications de citations et de déploiement ainsi que les hooks de sécurité doivent rester adossés à des commandes ou des scripts lorsque leur échec doit être bloquant.
Workflow Tool (v2.1.147+)
Les workflows dynamiques de Claude Code constituent une interface livrée et disponible par défaut : depuis la v2.1.154, ils orchestrent des dizaines à des centaines d’agents en arrière-plan, surveillés au moyen de /workflows, avec un réglage « Dynamic workflow size » dans /config (v2.1.202) et une clé de paramètres workflowSizeGuideline dont la recommandation par défaut est moyenne — visez moins de 15 agents sauf instruction contraire (v2.1.219). Cette interface avait fait ses débuts une version plus tôt sous la forme du Workflow tool de la v2.1.147, désactivé par défaut derrière CLAUDE_CODE_WORKFLOWS=1 ; l’époque de ce flag appartient désormais au passé, mais le principe architectural qu’il révélait demeure.52 Il fournit à Claude Code une primitive d’orchestration native pour des flux qui nécessitaient auparavant des scripts de répartition personnalisés, un état de boîte aux lettres et des conventions de coordination entre subagents.
Ne supprimez pas le harness qui l’entoure. 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 de blocage, les budgets de lancement ou de nombre d’étapes du workflow pour éviter une largeur incontrôlée, un état du système de fichiers vérifiable et les rapports de preuves finaux en dehors de l’auto-évaluation du modèle. En pratique : utilisez Workflow pour structurer l’orchestration ; utilisez les hooks, les tests et les portes de revue pour établir la vérité.
Les workflows dynamiques proposent désormais une recommandation sur la largeur (v2.1.219). Par défaut, les workflows dynamiques utilisent une recommandation de taille moyenne — « visez moins de 15 agents » —, avec d’autres tailles et une option sans restriction accessibles sous Dynamic workflow size dans /config ; la recommandation actuelle apparaît également dans la ligne d’état du workflow en cours.84 Cette valeur est indicative, non contraignante : elle oriente le planificateur sans bloquer un plan large. Son mécanisme de diffusion justifie sa configuration : la nouvelle clé de paramètres workflowSizeGuideline peut être définie dans n’importe quel fichier de paramètres — notamment dans les paramètres gérés et ceux du projet, et elle figure dans les types de paramètres du TypeScript SDK depuis la v0.3.219 —, ce qui permet à une équipe ou à une organisation de normaliser la largeur de l’orchestration au lieu de laisser chaque opérateur la redécouvrir.85 Définissez-la au niveau du projet afin de refléter la manière dont le travail se décompose réellement dans votre base de code. Deux remarques pour les opérateurs : la ligne correspondante de /config disparaît lorsqu’un fichier de paramètres impose cette valeur, ce qui est le comportement correct mais peut donner l’impression qu’un paramètre manque si vous n’en connaissez pas la raison ; et puisque la recommandation oriente le planificateur sans bloquer l’exécution, elle relève de la forme, pas de la sécurité. Le plafond de lancements reste chargé d’endiguer une largeur incontrôlée.
L’idée à retenir est qu’il s’agit d’un quatrième axe de garde-fou natif — la largeur de l’orchestration, aux côtés du nombre de lancements, de la profondeur d’imbrication et de l’exécution simultanée — et du premier que Anthropic ait calibré à une échelle de travail plausible plutôt que comme un fusible contre les dérives. Quinze agents par workflow appartiennent au même ordre de grandeur que le budget de délibération de 12 agents utilisé par ce guide depuis la v1.0. Lorsque la valeur par défaut de la plateforme et votre propre budget convergent depuis des directions opposées, cela se rapproche autant que possible d’une corroboration indépendante pour ce type de nombre.
Fork de session et MCP automatiquement placés en arrière-plan (juillet 2026)
La v2.1.212 de Claude Code a remodelé deux primitives d’orchestration.69 /fork crée désormais une nouvelle session en arrière-plan à partir de l’état actuel de la conversation — la branche issue du fork s’exécute indépendamment tandis que la session d’origine continue de travailler —, et l’ancien comportement au sein de la session a été renommé /subtask. Cette distinction compte dans la conception de l’orchestration : /subtask est un détour circonscrit dans le cycle de vie d’une session ; /fork est un moyen peu coûteux de créer une session parallèle en arrière-plan qui hérite de tout le contexte, plus proche d’un lancement de boucle Ralph que d’un subagent. Si vos scripts de harness supposaient que /fork restait dans la session, ils répartissent désormais le travail en arrière-plan.
La même version place automatiquement en arrière-plan les appels MCP lents : tout appel d’outil MCP dépassant deux minutes est automatiquement transféré vers une exécution en arrière-plan (ajustez ce seuil avec CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS).69 Un serveur MCP lent ne bloque donc plus la boucle agentique — mais cela signifie aussi que « l’outil a renvoyé son résultat » et « le tour s’est poursuivi » ne correspondent plus au même événement ; les hooks ou scripts qui supposaient l’exécution synchrone de MCP doivent donc se déclencher sur le résultat de l’outil, et non sur la limite du tour.
Pour l’orchestration headless, la v2.1.211 a ajouté --forward-subagent-text (variable d’environnement : CLAUDE_CODE_FORWARD_SUBAGENT_TEXT), qui transmet le texte produit par l’assistant du subagent dans la sortie stream-json.69 Un processus coordinateur qui consomme le flux du parent peut désormais observer directement la progression des subagents au lieu d’interroger leurs transcriptions ou d’attendre la synthèse finale — le complément d’observabilité des subagents exécutés par défaut en arrière-plan. La v2.1.219 a étendu ce mécanisme au-delà du premier niveau : les subagents lancés à une profondeur de 2 ou plus apparaissent désormais eux aussi dans le flux transmis, associés à l’identifiant tool_use de l’Agent qui les a lancés.84 C’est sur cet identifiant qu’il faut vous appuyer. L’imbrication étant de nouveau activée par défaut, un flux linéaire de textes de subagents est ambigu — l’identifiant indique au coordinateur quel parent a produit quel enfant, de sorte que l’arbre de délégation peut être reconstruit à partir du flux au lieu d’être déduit. Si votre consommateur de flux a été conçu pour un seul niveau de subagents, il verra désormais le texte d’agents dont il ignorait l’existence ; regroupez les éléments selon l’identifiant tool_use de l’agent qui les a lancés au lieu de supposer que chaque ligne transmise appartient à un enfant direct.
Orchestration multi-agent
Les systèmes d’IA à agent unique présentent un angle mort structurel : ils ne peuvent pas remettre en question leurs propres hypothèses.7 La délibération multi-agent impose une évaluation indépendante selon plusieurs perspectives avant qu’une décision ne soit arrêtée.
Orchestration inter-outils (avril 2026) : Google a publié Scion en open source le 7 avril — un hyperviseur multi-agent qui exécute Claude Code, Gemini CLI et d’autres « deep agents » comme processus concurrents, chacun disposant de son conteneur isolé, de son git worktree et de ses identifiants. Fonctionne en local, avec hub ou sur Kubernetes. Philosophie explicite : « l’isolation plutôt que les contraintes » — les agents opèrent avec une grande autonomie à l’intérieur de limites appliquées au niveau de l’infrastructure, et non dans le prompt.25 Cela étend directement l’argument en faveur de l’isolation des subagents à travers différents fournisseurs d’outils. Si votre workflow couvre Claude et des modèles OpenAI, Scion constitue la première véritable implémentation de référence de subagents inter-outils avec isolation par agent du worktree et des identifiants.
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-agent atteint un plateau et peut être détourné par un consensus trompeur — des arguments valides l’emportent difficilement 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 Fidélité/Pertinence à l’étape 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) une notation quantitative du juge plutôt que de supposer que davantage d’agents = de meilleures réponses.
Orchestration multi-agent gérée et Outcomes (bêta publique)
Si vous ne souhaitez pas construire l’infrastructure de délibération décrite ci-dessous, Multiagent Orchestration est entré en bêta publique dans Claude Managed Agents le 6 mai 2026.35 Selon Anthropic : « Lorsqu’il y a trop de travail pour qu’un seul agent puisse bien le réaliser, l’orchestration multi-agent permet à un agent principal de découper le travail et de déléguer chaque partie à un spécialiste disposant de 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
La traçabilité est incluse. Selon Anthropic : « vous pouvez également suivre chaque étape dans la Claude Console : quel agent a fait quoi, dans quel ordre et pourquoi, ce qui vous donne 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é complémentaire en bêta publique est Outcomes. Selon Anthropic : « vous rédigez une grille d’évaluation décrivant à quoi ressemble la réussite, et l’agent s’y emploie. Un évaluateur distinct examine le résultat selon vos critères dans sa propre fenêtre de contexte, afin de ne pas être influencé par le raisonnement de l’agent. »35 Il s’agit de la version de service géré du modèle de validation à deux portes documenté plus loin dans cette section : la grille remplace la porte écrite manuellement, l’évaluateur distinct remplace le validateur de consensus.
| Délibération auto-hébergée (cette section) | Multiagent + Outcomes gérés | |
|---|---|---|
| Routage des spécialistes | Vous écrivez la logique de lancement | L’agent principal découpe le travail |
| Validation | hooks à deux portes + notation de consensus | Grille + évaluateur dans un contexte distinct |
| Traçabilité | Vous l’instrumentez | Claude Console |
| Idéal pour | Des patterns nécessitant un contrôle total ou une composition d’outils spécifique | Des patterns de délégation standard où la grille de validation constitue le contrat |
| Tarification | Coût des tokens + du harness uniquement | Tokens standard, plus le tarif horaire de session Managed Agents (base du 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 géré est la bonne réponse lorsque la délégation standard assortie d’une évaluation par grille est le contrat dont vous avez réellement besoin.
Délibération minimale viable
Commencez avec 2 agents et 1 règle : les agents doivent évaluer indépendamment avant de voir le travail des autres.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 pattern couvre 80 % de la valeur. Tout le reste apporte une amélioration progressive.
Le déclencheur de confiance
Chaque tâche ne nécessite pas de délibération. Un module de notation de confiance évalue quatre dimensions :17
- Ambiguïté - La requête admet-elle plusieurs interprétations valides ?
- Complexité du domaine - Exige-t-elle des connaissances spécialisées ?
- Enjeux - La décision est-elle réversible ?
- Dépendance au contexte - Exige-t-elle de comprendre le système dans son ensemble ?
Le score correspond à trois niveaux :
| Niveau | Seuil | Action |
|---|---|---|
| ÉLEVÉ | 0,85+ | Continuer sans délibération |
| MOYEN | 0,70-0,84 | Continuer en consignant une note de confiance |
| FAIBLE | Inférieur à 0,70 | Déclencher une délibération multi-agent complète |
Le seuil s’adapte au type de tâche. Les décisions de sécurité exigent un consensus de 0,85. Les modifications de documentation ne nécessitent que 0,50. Cela évite de sur-ingénier les tâches simples tout en garantissant que les décisions risquées soient examinées avec attention.7
La machine à états
Sept phases, chacune conditionnée par la précédente :7
IDLE -> RESEARCH -> DELIBERATION -> RANKING -> PRD_GENERATION -> COMPLETE
|
(or FAILED)
RESEARCH : Des agents indépendants étudient le sujet. Chaque agent reçoit un persona distinct (architecte technique, analyste sécurité, ingénieur performance, entre autres). L’isolation du contexte garantit que les agents ne peuvent pas voir les résultats des autres pendant la recherche.
DELIBERATION : Les agents voient tous les résultats de recherche et génèrent des alternatives. L’agent Debate identifie les conflits. L’agent Synthesis combine les résultats non contradictoires.
RANKING : Chaque agent note chaque approche proposée selon 5 dimensions pondérées :
| Dimension | Poids |
|---|---|
| Impact | 0,25 |
| Qualité | 0,25 |
| Faisabilité | 0,20 |
| Réutilisabilité | 0,15 |
| Risque | 0,15 |
L’architecture de validation à deux portes
Deux portes de validation détectent les problèmes à des étapes différentes :7
Porte 1 : validation du consensus (hook PostToolUse). S’exécute immédiatement après la fin de chaque agent de délibération : 1. La phase doit avoir atteint au moins RANKING 2. Au moins 2 agents ont terminé (configurable) 3. Le score de consensus atteint le seuil adapté à la tâche 4. Si un agent a exprimé un 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 sont représentés 2. Transparence des contradictions : les désaccords comportent des raisons documentées 3. Gestion de la complexité : au moins 2 alternatives ont été 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 moments du cycle de vie correspondent à la manière dont les échecs surviennent réellement : certains sont instantanés (mauvais score), d’autres progressifs (faible diversité, absence de documentation des désaccords).7
Pourquoi l’accord est dangereux
Charlan Nemeth a étudié le désaccord minoritaire de 1986 jusqu’à son livre de 2018 In Defense of Troublemakers. Les groupes comportant des contradicteurs prennent de meilleures décisions que ceux qui parviennent rapidement à un accord. Le contradicteur n’a pas besoin d’avoir raison. Le fait même du désaccord force la majorité à examiner des hypothèses qu’elle aurait autrement ignorées.18
Wu et al. ont cherché à savoir 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, quelle que soit son exactitude.19 Liang et al. ont identifié la cause première comme une « Degeneration-of-Thought » : lorsqu’un LLM établit sa confiance dans une position, l’autoréflexion ne peut pas générer de nouveaux contre-arguments, ce qui rend l’évaluation multi-agent structurellement nécessaire.20
L’indépendance est la contrainte de conception essentielle. Deux agents évaluant la même stratégie de déploiement tout en voyant les résultats 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 représente le coût du comportement grégaire.7
Détecter les faux accords
Un module de détection du conformisme suit les patterns suggérant que les agents s’accordent sans véritable évaluation :7
Regroupement des scores : Chaque agent attribuant un score dans un intervalle de 0,3 point sur une échelle de 10 signale une contamination du contexte partagé plutôt qu’une évaluation indépendante. Lorsque cinq agents évaluant une refactorisation de l’authentification ont tous estimé le risque de sécurité entre 7,1 et 7,4, une nouvelle exécution avec une isolation fraîche du contexte a réparti les scores de 5,8 à 8,9.
Désaccord passe-partout : Des agents copient le langage des préoccupations des autres plutôt que de générer des objections indépendantes.
Absence de perspectives minoritaires : Approbation unanime de personas aux priorités contradictoires (un analyste sécurité et un ingénieur performance sont rarement d’accord sur tout).
Le détecteur de conformisme identifie les cas évidents (environ 10-15 % des délibérations où les agents convergent trop vite). 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
Des tours de débat libres. Trois tours d’échanges textuels pour une discussion sur l’indexation d’une 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 avec des mots différents. La notation structurée par dimension a remplacé le débat libre, réduisant le coût de 60 % tout en améliorant la qualité du classement.7
Une seule porte de validation. La première implémentation exécutait un hook de validation à la fin de la session. Un agent a terminé une délibération avec un score de consensus de 0,52 (inférieur au 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. La division en deux portes (l’une à la fin de la tâche, l’autre à la fin de la session) a détecté les mêmes problèmes à différents moments 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 résultats. 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 actuels d’Opus 5 (5 $/25 $ par MTok), une délibération à 3 agents coûte environ 0,23-0,30 $. Une délibération à 10 agents coûte 0,75-1,00 $. Le système déclenche une délibération pour environ 10 % des décisions, de sorte que le coût amorti sur l’ensemble des décisions est de 0,08-0,10 $ par session. (Les éditions précédentes indiquaient des chiffres trois fois supérieurs, calculés selon l’ancien tarif d’Opus 4.x de 15 $/75 $.) La pertinence de ce coût dépend de celui d’une mauvaise décision.
Quand délibérer
| Délibérer | Ignorer |
|---|---|
| Architecture de sécurité | Coquilles dans la documentation |
| Conception du schéma de base de données | Renommage de variables |
| Modifications de contrat API | Mises à jour de messages de journal |
| Stratégies de déploiement | Reformulation de commentaires |
| Mises à niveau de dépendances | Mises à jour de fixtures de test |
Conception de CLAUDE.md
CLAUDE.md constitue une politique opérationnelle pour un agent d’IA, et non un README destiné aux humains.21 L’agent n’a pas besoin de comprendre pourquoi vous utilisez des commits conventionnels. Il doit connaître la commande exacte à exécuter et savoir précisément à quoi ressemble un travail « terminé ».
Hiérarchie de préséance
| Emplacement | Portée | Partagé | Cas d’usage |
|---|---|---|---|
| Paramètres gérés par l’entreprise | Organisation | Tous les utilisateurs | Normes de l’entreprise |
./CLAUDE.md ou ./.claude/CLAUDE.md |
Projet | Via git | Contexte de l’équipe |
~/.claude/CLAUDE.md |
Utilisateur | Tous les projets | Préférences personnelles |
./CLAUDE.local.md |
Projet local | Jamais | Notes personnelles sur le projet |
.claude/rules/*.md |
Règles du projet | Via git | Politiques classées par catégorie |
~/.claude/rules/*.md |
Règles de l’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 formulations n’entraînent systématiquement aucun changement observable dans le comportement de l’agent :21
Paragraphes explicatifs sans commandes. « Nous accordons de l’importance à un code propre et bien testé » relève de la documentation, pas des opérations. L’agent le lit, puis écrit du code sans tests, car aucune instruction exploitable ne lui a été donnée.
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 rétrogradation est absent. » en est une.
Priorités contradictoires. « Avancez vite et livrez rapidement », « Assurez une couverture de tests complète », « Maintenez la durée d’exécution sous 5 minutes » et « Exécutez tous les tests d’intégration avant chaque commit. » L’agent ne peut pas satisfaire simultanément ces quatre exigences et finit par ignorer la vérification.21
Guides de style sans mécanisme de contrôle. « Suivez le guide de style Google pour Python » sans ruff check --select D ne fournit à l’agent aucun moyen de vérifier sa conformité.
Ce qui fonctionne
Instructions commençant par 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 des critères 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 l’ordre de priorité suivant :21
- Commandes de compilation et de test (l’agent en a besoin avant de pouvoir faire quoi que ce soit d’utile)
- Définition du travail terminé (évite les faux achèvements)
- Règles d’escalade (empêche les solutions de contournement destructrices)
- Sections organisées par tâche (réduit l’analyse d’instructions non pertinentes)
- Délimitation par répertoire (monorepos : maintient les instructions de chaque service isolées)
Ignorez les préférences de style tant que les quatre premières catégories ne fonctionnent pas.
La plateforme audite désormais votre CLAUDE.md à votre place. Depuis les versions du début juillet 2026 (v2.1.203–v2.1.206), /doctor analyse CLAUDE.md et propose de supprimer le contenu que le modèle peut déduire lui-même du codebase : arborescences de répertoires reformulées, conventions de framework déjà visibles dans le code et listes de commandes qui dupliquent les scripts des packages.68 Cela confirme directement la thèse de cette section : les instructions méritent les tokens qu’elles consomment lorsqu’elles encodent ce que l’agent ne peut pas déduire (politiques, seuils, définitions des critères de clôture), et non ce qu’il peut lire sur le disque. Exécutez /doctor après tout enrichissement conséquent de CLAUDE.md et considérez ses propositions d’élagage comme un point de départ — conservez toutefois les règles opérationnelles qu’il pourrait qualifier de « déductibles » lorsqu’elles constituent des contraintes essentielles plutôt que de simples descriptions.
Importation 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’importation : chemin relatif (@docs/file.md), absolu (@/absolute/path.md) ou depuis le répertoire personnel (@~/.claude/file.md). Profondeur maximale : 5 niveaux d’importation.6
Compatibilité des instructions entre les outils
AGENTS.md est une norme ouverte reconnue par tous les principaux outils de programmation assistée par IA.21 Si votre équipe utilise plusieurs outils, faites d’AGENTS.md la source canonique et reproduisez les sections pertinentes dans les fichiers propres à chaque outil :
| Outil | Fichier natif | Lit AGENTS.md ? |
|---|---|---|
| Codex CLI | AGENTS.md | Oui (nativement) |
| Cursor | .cursor/rules |
Oui (nativement) |
| GitHub Copilot | .github/copilot-instructions.md |
Oui (nativement) |
| Amp | AGENTS.md | Oui (nativement) |
| Windsurf | .windsurfrules |
Oui (nativement) |
| Claude Code | CLAUDE.md | Non (format distinct) |
Les modèles employés dans AGENTS.md (commandes en premier, critères de clôture définis, organisation par tâche) fonctionnent dans n’importe quel fichier d’instructions, quel que soit l’outil. N’entretenez pas plusieurs jeux d’instructions parallèles susceptibles de diverger. Rédigez une source faisant autorité et reproduisez-la.
Notes sur la parité avec Codex
Codex dispose désormais d’équivalents natifs pour les principales couches du harness, mais la migration consiste à transposer des modèles, pas à copier des fichiers. Codex lit AGENTS.md avant de commencer le travail, en superposant les directives globales de ~/.codex, celles du projet et celles des répertoires imbriqués du dépôt.31 Les skills Codex reposent sur 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 charge l’intégralité de celle-ci uniquement lorsqu’il décide de l’utiliser.32 Codex propose également des hooks natifs, des hooks intégrés à des plugins, des hooks gérés, la prise en charge de MCP et des workflows explicites pour les subagents.3334
Codex v0.138.0–v0.139.0 a renforcé cette découverte d’AGENTS.md dans les espaces de travail complexes : le chargement passe désormais par l’abstraction du système de fichiers de l’environnement et conserve les chemins logiques pendant le parcours de découverte, afin de sélectionner le bon fichier même si l’espace de travail repose sur un système de fichiers distant ou une arborescence de liens symboliques.61 Cela compte chaque fois que votre fichier canonique AGENTS.md fait autorité et que l’agent travaille sur un checkout monté, matérialisé dans un conteneur ou relié par des liens symboliques — autant de situations où un parcours naïf des chemins sélectionne silencieusement le mauvais fichier d’instructions, voire aucun. Si vous reproduisez un unique fichier AGENTS.md faisant autorité dans plusieurs services, considérez cette version comme le minimum requis pour avoir confiance dans le fait que le fichier réellement chargé par l’agent est bien 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 au moyen de canaux de relais Noise authentifiés et chiffrés de bout en bout (le plan de contrôle et l’exécuteur ne font plus confiance au relais qui les relie), l’exécution distante multiplateforme conserve le répertoire de travail et le shell natifs de l’exécuteur, et TLS accepte les signatures de certificats P-521 pour les proxys d’entreprise.65 Si votre orchestration pilote des exécuteurs Codex au-delà d’une frontière réseau, c’est ce qui distingue l’hypothèse d’un relais de confiance d’un chiffrement de bout en bout — considérez cette version comme la référence minimale pour toute topologie d’exécuteurs distants.
La série de juillet 2026 montre les deux environnements d’exécution converger vers les mêmes primitives depuis des directions opposées.72 Codex v0.143.0 charge par défaut les outils MCP au moyen de la recherche d’outils : les schémas d’outils sont différés et récupérés à la demande au lieu d’être chargés d’emblée dans le contexte. C’est le même modèle de chargement différé des outils que Claude Code propose par l’intermédiaire de son interface ToolSearch, et la bonne réponse, dans les deux environnements d’exécution, à l’engorgement du contexte lorsque le nombre d’outils MCP est élevé. Codex v0.144.0 ajoute un mode d’approbation des applications writes : les actions en lecture seule s’exécutent sans demander de confirmation, tandis que les écritures nécessitent une approbation. Il s’agit d’une véritable nouvelle primitive de gestion des autorisations, située entre la lecture seule et l’approbation automatique, que la liste des modes de Claude Code n’exprime pas directement (son équivalent le plus proche est le mode plan, qui bloque entièrement les écritures au lieu de demander une confirmation pour chacune). La même version fait passer l’authentification interactive de MCP en disponibilité générale. Enfin, la v0.144.5 étend la détection des commandes dangereuses, à l’image des garde-fous contre les commandes destructrices introduits par Claude Code dans les versions v2.1.183 et v2.1.208. Pour concevoir un harness compatible avec plusieurs environnements d’exécution, l’essentiel réside dans cette convergence : le chargement différé des outils, l’approbation graduée des écritures et le blocage des commandes dangereuses au niveau de l’intention deviennent des prérequis plutôt que des facteurs de différenciation entre fournisseurs.
Codex v0.145.0 approfondit cette convergence sur deux fronts.76 L’interface facultative multi-agent V2 s’est stabilisée : les modèles des subagents, les niveaux de raisonnement et la concurrence sont désormais configurables, tandis que les rôles d’agents précédemment supprimés ont été rétablis — la réponse de Codex à la configuration du modèle et du niveau d’effort par subagent dans le frontmatter de .claude/agents/. Par ailleurs, /import est devenu un véritable outil de migration entre harness : au-delà de l’importation des paramètres de Claude Code introduite avec la v0.140.0, il migre désormais les paramètres de Claude Code et de Cursor, y compris les serveurs MCP, les plugins, les sessions, les commandes et les mémoires propres aux projets. Pour les équipes qui utilisent les deux environnements d’exécution, le coût de migration entre eux continue de diminuer dans un sens ; les couches du harness que vous construisez sur Claude Code — serveurs, skills sous forme de commandes, mémoire — constituent de plus en plus un état portable plutôt qu’un enfermement propriétaire.
Correspondances pratiques :
| Couche du harness de Claude Code | Équivalent Codex | Règle de migration |
|---|---|---|
CLAUDE.md / .claude/rules/ |
AGENTS.md / AGENTS.override.md imbriqués |
Conservez les commandes et les règles d’achèvement dans la source canonique ; ne les séparez que lorsque la portée des répertoires diffère réellement |
.claude/skills/<name>/SKILL.md |
.agents/skills/<name>/SKILL.md ou skill de plugin |
Portez les workflows réutilisables, mais réécrivez les descriptions pour les adapter à la formulation d’activation et au budget de Codex |
Hooks de .claude/settings.json |
config.toml de Codex, hooks de plugins ou hooks d’exigences gérées |
Portez d’abord les gates déterministes ; testez chaque hook avec de véritables événements d’outils avant de l’activer à grande échelle |
.claude/agents/*.md |
~/.codex/agents/*.toml, .codex/agents/*.toml ou worker / explorer intégrés |
Ne portez que les agents ayant une valeur récurrente ; privilégiez la délégation explicite, car les subagents Codex sont explicites |
| Plugins | Plugins Codex | Utilisez les plugins comme unité de distribution une fois les hooks et skills locaux éprouvés |
Différence importante : les subagents de Claude peuvent être sélectionnés automatiquement à partir de leurs descriptions, tandis que Codex documente actuellement les workflows de subagents comme explicites. Les skills et hooks constituent donc le meilleur choix par défaut pour les comportements permanents du harness dans Codex ; réservez les subagents aux tâches parallèles, aux revues et aux explorations délibérées.
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 compilation. S’il ne peut pas les reproduire mot pour mot, les instructions sont soit trop longues (leur contenu a été évincé du contexte), soit trop vagues (l’agent ne peut pas en extraire d’instructions exploitables), soit introuvables. L’analyse de 2 500 dépôts menée par GitHub a montré que le manque de précision est à l’origine de la plupart des échecs.21
Modèles de production
Modèles à 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 modifient les risques contre lesquels un harness doit se prémunir :29
- Résilience aux échecs d’outils : Opus 4.7 continue malgré des échecs d’outils qui arrêtaient les sessions Opus 4.6. Vous pouvez réduire — sans les éliminer — les wrappers défensifs de nouvelle tentative dans le code des subagents. Conservez les garde-fous 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: Introduit avec Opus 4.7 et désormais pris en charge par les modèles Opus actuels (Opus 4.8 l’a livré sous la forme de/effort xhighdans la v2.1.154 ; Opus 5 en hérite). Il se situe entrehighetmax. C’est la valeur par défaut recommandée pour les charges de travail de programmation et agentiques. Pour les subagents de longue durée,xhighsurpasse sensiblementhighpour un coût en tokens sous-proportionnel.maxreste le bon choix pour un raisonnement difficile ponctuel ;xhighest préférable pour les tâches soutenues. - Plafond de budget de tokens : Configurable pour chaque exécution d’agent via
output_config.task_budget(en-tête bêtatask-budgets-2026-03-13). Le modèle voit un décompte en cours et adapte progressivement le périmètre du travail au budget, au lieu de s’épuiser de façon inattendue. Utilisez-le pour les boucles agentiques lorsque vous souhaitez des dépenses de tokens prévisibles sans sacrifier la qualité sur les prompts courts. - Conscience des besoins implicites : Premier modèle Claude à réussir les tests de « besoins implicites » — en reconnaissant que la demande littérale de l’utilisateur ne précise pas suffisamment ce dont il a réellement besoin. Cela rend moins nécessaire la section « règles de clarification » de CLAUDE.md. Si votre CLAUDE.md contient 200 lignes de garde-fous du type « prendre également X en compte lorsque l’utilisateur demande Y », supprimez ceux qui sont désormais couverts nativement.
Base de worktree, chemins du sandbox et paramètres d’administration (7 mai 2026)
Claude Code v2.1.133 ajoute quatre paramètres de niveau administrateur à connaître pour les harnesses de production :39
| Paramètre | Valeurs | Rôle |
|---|---|---|
worktree.baseRef |
fresh (par défaut) | head |
Les nouveaux worktrees repartent depuis origin/<default>. Retour au comportement par défaut incompatible avec la v2.1.128, qui utilisait le HEAD local. Définissez worktree.baseRef: "head" si votre équipe compte sur la disponibilité des commits non poussés 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 intégrée. |
sandbox.socatPath |
chemin absolu | Même principe pour le binaire socat utilisé par la mise en réseau du sandbox. |
parentSettingsBehavior |
'first-wins' (par défaut) | 'merge' |
Contrôle de niveau administrateur sur la façon dont les managedSettings de SDK se composent avec les paramètres parent d’entreprise/d’équipe. 'merge' permet à une session enfant d’hériter et d’étendre ; 'first-wins' maintient l’autorité du parent. |
Le retour de worktree.baseRef est celui qu’il faut signaler aux utilisateurs : les agents qui s’appuyaient sur le comportement des v2.1.128 à v2.1.132 (des worktrees créés depuis le HEAD local) perdent l’accès au travail non poussé dans les nouveaux worktrees, sauf s’ils réactivent ce comportement.
Enquête de feedback OTel pour l’observabilité en entreprise (8 mai 2026)
Claude Code v2.1.136 a ajouté CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL afin de réactiver l’enquête de 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é centralisée, cette variable d’environnement remet l’enquête dans le chemin de données afin que le signal de qualité circule dans le même pipeline que les métriques de latence et d’erreurs. Considérez-la comme une option à activer explicitement : par défaut, l’enquête reste supprimée, ce qui convient aux déploiements sans OTel.
Lanceurs d’entreprise et performances à l’échelle de MCP (juillet 2026)
Deux changements de la v2.1.207 comptent pour les déploiements de production.68 CLAUDE_CODE_PROCESS_WRAPPER permet aux environnements gérés de lancer le processus Claude Code via un binaire wrapper d’entreprise — le point d’intégration pour les agents de terminaux, les vérifications de politiques au lancement et les environnements où chaque processus doit s’exécuter sous un superviseur imposé. Si votre entreprise simulait auparavant cela avec des alias shell ou des scripts de lancement forkés, voici l’interface prise en charge.
La même version a réduit la surcharge d’exécution là où les harnesses la ressentent le plus : jusqu’à 7× plus rapide pour les cycles d’utilisation d’outils dans les sessions comptant beaucoup d’outils MCP, et des transcriptions de session 79× plus petites.68 Cela assouplit — sans l’inverser — la recommandation Le coût comme architecture : CLI-first reste gagnant pour les opérations ponctuelles sans état, mais un harness transportant des dizaines d’outils MCP ne paie plus la pénalité par cycle qu’il payait au printemps, et le stockage des transcriptions cesse d’être un coût caché des longues exécutions autonomes.
La boucle de qualité
Un processus de revue obligatoire pour toute modification non triviale :
- Implémenter - Écrivez le code
- Réviser - Relisez chaque ligne. Repérez les fautes de frappe, les erreurs de logique et les sections peu claires
- Évaluer - Exécutez l’evidence gate. Vérifiez les modèles, les cas limites et la couverture de tests
- Affiner - Corrigez chaque problème. Ne reportez jamais à « plus tard »
- Prendre du recul - Vérifiez les points d’intégration, les imports et le code adjacent afin de détecter les régressions
- Répéter - Si un critère de l’evidence gate échoue, revenez à l’étape 4
- Rapporter - Indiquez ce qui a changé, comment cela a été vérifié et citez des preuves précises
L’evidence gate
« Je pense » 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 |
|---|---|
| Respecte les modèles du codebase | Nommez le modèle et le fichier où il existe |
| Solution fonctionnelle la plus simple | Expliquez quelles alternatives plus simples ont été écartées et pourquoi |
| Cas limites traités | Listez les cas limites précis et la manière dont chacun est traité |
| Tests réussis | Collez la sortie des tests montrant 0 échec |
| Aucune régression | Nommez les fichiers/fonctionnalités vérifiés |
| Résout le problème réel | Indiquez le besoin de l’utilisateur et la manière dont cela y répond |
Si vous ne pouvez pas fournir de preuve pour une ligne, revenez à Affiner.22
Autorité humaine de fusion
Une étude arXiv de mai 2026 portant sur 29 585 cycles de vie de pull requests d’agents IA distingue l’autonomie opérationnelle de la gouvernance des fusions.47 La leçon d’architecture utile est simple : les agents peuvent commencer le travail, faire progresser des branches, ouvrir des PR, examiner le travail et résumer les risques, tandis que l’autorité de fusion demeure une limite de gouvernance distincte.
Rendez cette limite explicite dans le harness. Laissez les agents préparer les PR et recueillir les preuves ; exigez une approbation humaine pour les fusions, les versions et les opérations destructrices sur le dépôt, à moins que l’organisation ne dispose d’une politique d’automatisation auditée séparément. Lorsqu’une automatisation effectue une fusion, conservez des journaux qui distinguent l’exécutant de la personne ou de la politique qui l’a autorisée.
Modèles 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 utilisez mv de façon atomique. Le système d’exploitation 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 modèle de récupération le recrée à partir de valeurs par défaut sûres plutôt que de provoquer un arrêt :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, ce que bash considère comme faux. Avec set -e activé, cela arrête 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 contrôle correspondant :2
| Classification | Exemples | Contrôle |
|---|---|---|
| Local | Écritures de fichiers, exécutions de tests, linting | Approbation automatique |
| Partagé | Commits Git, création de branches | Avertir + poursuivre |
| 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 contrôle « Externe » d’une attente bloquante en notification asynchrone. L’agent continue de travailler sur la tâche suivante pendant que vous examinez 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 de finalisation 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 du linter, codes d’état HTTP, vérifications de l’existence de fichiers. Une première tâche demandant à l’agent d’« écrire des tests qui réussissent » a produit assert True et assert 1 == 1. Techniquement correct. Concrètement inutile.16
| Qualité des critères | Exemple | Résultat |
|---|---|---|
| Vague | « Les tests réussissent » | L’agent écrit des tests triviaux |
| Mesurable mais incomplet | « Les tests réussissent ET la couverture >80 % » | Les tests couvrent des lignes sans rien tester de significatif |
| Complet | « Tous les tests réussissent ET la couverture >80 % ET aucune erreur de type ET linter propre ET chaque classe de test teste un module distinct » | Résultat de qualité production |
Modes d’échec à surveiller
| Mode d’échec | Description | Prévention |
|---|---|---|
| Spirale des raccourcis | Sauter des étapes de la boucle de qualité pour terminer plus vite | L’evidence gate exige une preuve pour chaque critère |
| Mirage de confiance | « Je suis confiant » sans exécuter de vérification | Interdire les formulations hésitantes dans les rapports de finalisation |
| Vérification fantôme | Affirmer que les tests réussissent 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 le code commité | Le hook PreToolUse lors du git commit analyse le diff |
| Pollution du système de fichiers | Artéfacts sans issue provenant d’itérations abandonnées | Étape de nettoyage dans les critères de finalisation |
Trace de session concrète
Une 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 de projet, contraintes philosophiques, initialisation du suivi des coûts. Cinq hooks, 180 ms au total.
-
L’agent lit le PRD, planifie la première story.
UserPromptSubmitse déclenche. Le dispatcher injecte : contexte du projet actif, base de référence de la 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 de projet. 90 ms. Les tests s’exécutent.PostToolUse:Bashse déclenche : pulsation d’activité journalisée, 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 : contrôle de lint, suivi des commits. -
L’agent termine la story.
Stopse déclenche. Le contrôle qualité vérifie : l’agent a-t-il cité des preuves ? Utilisé un langage hésitant ? Laissé des commentaires TODO dans le diff ? Si une vérification échoue, sortie 2 et l’agent continue. -
Vérification indépendante : un agent neuf exécute la suite de tests sans faire confiance à l’auto-évaluation de l’agent précédent.
-
Trois agents de revue de code sont lancés en parallèle. Chacun examine le diff indépendamment. Si un reviewer signale CRITICAL, la story retourne dans la file d’attente.
-
La story réussit. La story suivante se charge. Le cycle se répète pour les 5 stories.
Nombre total de hooks déclenchés sur 5 stories : ~340. Temps total passé dans les hooks : ~12 secondes. Cette surcharge a empêché trois fuites d’identifiants, une commande destructive et deux implémentations incomplètes lors d’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) | Évolution |
|---|---|---|---|
| Fuites d’identifiants | 2 fuites vers git | 7 bloquées avant commit | Réactif à préventif |
| Commandes destructrices | 1 force-push vers main | 4 bloquées | Application de la sortie 2 |
| Taux de fausse finalisation | 35 % de tests en échec | 4 % | Evidence gate + hook Stop |
| Cycles de révision/story | 2,1 | 0,8 | Skills + boucle de qualité |
| Dégradation du contexte | 6 incidents | 1 incident | Mémoire du système de fichiers |
| Surcharge en tokens | 0 % | ~3,2 % | Négligeable |
| Temps des hooks/story | 0 s | ~2,4 s | Négligeable |
Les deux fuites d’identifiants ont nécessité la rotation de clés API et l’audit de 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 finalisation est passé de 35 % à 4 % parce que le hook Stop exécutait indépendamment les tests avant d’autoriser l’agent à signaler la fin.
Considérations de sécurité
Les cinq principes d’agents dignes de confiance (Anthropic, avril 2026)
Anthropic a publié un cadre formel pour la fiabilité des agents le 9 avril 2026.27 Les cinq principes font écho à la réflexion sur l’Evidence Gate de ce guide — tout en l’étendant :
| Principe | Ce que cela signifie | Comment ce harness y répond |
|---|---|---|
| Contrôle humain | Possibilité réelle pour un humain de reprendre la main à chaque point de décision | Les hooks contrôlent les appels d’outils ; blocage PreCompact ; classificateur du mode Auto comme couche de vérification |
| Alignement des valeurs | Les actions de l’agent suivent l’intention de l’utilisateur, et non des objectifs connexes | 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 | Traces auditables des décisions et des actions | Journalisation des hooks ; transcriptions de session ; traces d’invocation des skills |
| Confidentialité | Gestion et gouvernance appropriées des données | Nettoyage des variables d’environnement contenant des identifiants ; détection des secrets au niveau des hooks |
Anthropic a également fait don de MCP à l’Agentic AI Foundation de la Linux Foundation, rejoignant AGENTS.md (désormais géré conjointement avec OpenAI, Google, Cursor, Factory et Sourcegraph). Les standards d’interopérabilité des agents sont désormais indépendants des fournisseurs.27
Le tour sans état et l’identité auto-déclarée de MCP. La spécification MCP a achevé sa transition vers un cœur sans état (SEP-2575) avec la révision du 28 juillet 2026, désormais la spécification actuelle, qui supprime la poignée de main initialize avec état qui transportait auparavant l’identité du serveur. Une modification de la spécification provisoire fusionnée le 16 juillet (PR #3002) rétablit l’identité comme surface facultative : les serveurs peuvent inclure un objet io.modelcontextprotocol/serverInfo dans _meta de la réponse, et clientInfo devient facultatif dans les requêtes.71 L’élément pertinent pour la sécurité est ce que la spécification indique sur la confiance : cette identité est auto-déclarée et non vérifiée — uniquement pour l’affichage et la journalisation — et NE DEVRAIT PAS guider les décisions de sécurité. Si votre harness fonde des listes d’autorisation, des règles de permission ou un audit fondé sur les journaux sur le nom déclaré d’un serveur MCP, ce nom est une affirmation, pas un identifiant ; ancrez la confiance dans le transport et la configuration (le serveur que vous avez configuré à tel endpoint), jamais dans ce que le serveur prétend être. La révision sans état a été publiée comme prévu le 28 juillet 2026 (server/discover obligatoire, négociation de la version du protocole via _meta, en-tête Streamable HTTP) — les recommandations de confiance ci-dessus décrivent le comportement publié.
Outil 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 des sandbox pour skills.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 du système de fichiers grâce à une isolation au niveau du système d’exploitation (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 sandboxing, Claude Code utilise un modèle fondé sur les permissions, dans lequel vous approuvez ou refusez chaque appel d’outil.13
Niveau de sécurité minimal de mai 2026. Claude Code v2.1.149 a corrigé un contournement de permission du répertoire de travail PowerShell, plusieurs lacunes de l’analyse des permissions liées aux règles d’autorisation PowerShell et aux variables obsolètes, ainsi qu’un bug de liste d’autorisation d’écriture du sandbox dans les git-worktrees 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 minimum et gardez des règles shell étroites. Les exceptions larges PowerShell(*) et les autorisations d’écriture sur l’ensemble du dépôt sont des raccourcis d’orchestration, pas des frontières 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 à l’intérieur du base_dir de matérialisation (le répertoire de travail courant du processus SDK lors de l’application du manifeste), sauf si la source est explicitement accordée via Manifest.extra_path_grants avec SandboxPathGrant.41 Les sources locales relatives sont résolues à partir de base_dir ; les chemins absolus doivent déjà s’y trouver ou disposer d’une autorisation. Cela corrige un problème de frontière des artefacts locaux : les versions antérieures permettaient aux manifestes d’importer des chemins hôte arbitraires dans un espace de travail sandbox. Migration : déclarez les racines hôte de confiance au niveau du manifeste avec SandboxPathGrant(path=..., read_only=True) pour les montages en lecture seule. Considérez extra_path_grants comme une configuration applicative de confiance ; ne renseignez jamais ces autorisations à partir de la sortie du modèle ou d’une entrée de manifeste non fiable.
Niveau minimal de suivi pour OpenAI Agents SDK (v0.17.3). La série 0.17.1-0.17.3 a ajouté d’autres renforcements du sandbox et des sessions : limites d’extraction d’archives, validation des sous-chemins GitRepo, erreurs plus claires du fournisseur de sandbox, identifiants de point de montage exclus des commandes du sandbox, rejet des racines relatives d’espace de travail sandbox et gestion des états terminaux de Vercel-sandbox.54 Si vous utilisez des sandbox hébergés par OpenAI ou soutenus par un fournisseur plutôt que seulement des hooks Claude Code, considérez 0.17.3 comme le minimum actuel pour les modèles de cette section.
Trois modèles de confinement entre les produits (Anthropic, mai 2026)
L’article d’ingénierie de Anthropic « How we contain Claude across products » (25 mai 2026) formule, du point de vue du fournisseur, les principes que cette section enseigne par fragments — le sandbox au niveau des paramètres ci-dessus, le niveau minimal d’isolation par worktree, la posture consistant à traiter chaque élément comme non fiable.81 Son geste central consiste à associer la force du confinement à la surface produit, et cette association est elle-même la leçon : il n’existe pas une conception d’isolation unique et correcte, seulement une isolation adaptée à qui supervise et à ce qui peut mal tourner.
- Conteneurs gVisor éphémères (claude.ai). L’exécution côté serveur s’effectue dans des conteneurs gVisor sur une infrastructure isolée avec un système de fichiers éphémère par session. Le modèle de menace concerne l’isolation de l’infrastructure et des tenants — la machine de l’utilisateur n’est jamais accessible, donc rien de local n’a besoin d’être protégé.
- Sandboxing du système d’exploitation avec humain dans la boucle (Claude Code). Le modèle décrit dans le paragraphe sur le sandbox ci-dessus, exprimé comme politique : Seatbelt sur macOS et bubblewrap sur Linux, avec lectures autorisées, écritures limitées au workspace et réseau refusé par défaut — l’humain approuve ce que la frontière ne couvre pas. Anthropic a publié le runtime en open source (
sandbox-runtime), afin que la frontière soit auditable. L’article est franc sur le maillon faible : environ 93 % des demandes de permission sont approuvées, et le classificateur du mode auto — qui intercepte environ 83 % des comportements trop zélés avant l’exécution tout en réduisant les demandes d’approbation de 84 % — existe précisément parce que la fatigue d’approbation est une propriété de sécurité, pas une plainte d’UX. C’est la posture de couche de vérification que ce guide suit depuis v2.1.193. - VM scellées (Claude Cowork). Des machines virtuelles complètes sur des hyperviseurs de plateforme — Apple Virtualization framework sur macOS, HCS sur Windows — avec uniquement le workspace sélectionné et le dossier
.claudemontés ; rien d’autre de l’hôte n’est visible. Les identifiants n’entrent jamais dans la VM : ils restent dans le keychain de l’hôte, et chaque session reçoit un jeton limité et révocable indépendamment. Un proxy MITM défensif à l’intérieur de la VM l’applique, en ne laissant passer que les requêtes portant le propre jeton de session provisionné de la VM — une clé intégrée par un attaquant est rejetée à la frontière, car seule la VM connaît sa provenance.
Les principes de conception sous-jacents à cette taxonomie constituent la partie transférable. Confinez d’abord au niveau de l’environnement, orientez ensuite au niveau du modèle : toute défense probabiliste possède un taux d’échec non nul, donc des frontières déterministes doivent intercepter ce que l’orientation au niveau du prompt manque — l’argument de ce guide selon lequel les hooks garantissent l’exécution, reformulé par le fournisseur. Adaptez la force d’isolation à la capacité de supervision de l’utilisateur : un développeur peut évaluer une commande bash avant de l’approuver ; un travailleur du savoir ne le peut pas — c’est pourquoi Code reçoit une boîte de dialogue de permission et Cowork une VM scellée. Préférez des primitives éprouvées au code d’isolation personnalisé : les hyperviseurs, seccomp et runtimes de conteneurs ont mieux résisté à l’examen adversarial que les propres proxys de listes d’autorisation et analyseurs de configuration personnalisés de Anthropic. Traitez la configuration locale au projet et les sorties d’outils comme non fiables : l’instruction de l’article est de traiter l’ouverture du projet et le chargement de configuration comme toute requête entrante depuis Internet, et la sortie d’un outil comme une surface d’attaque même lorsque l’outil est fiable — la même posture que ce guide applique aux messages inter-agents, au contenu lu par les subagents et à l’identité MCP auto-déclarée. Gardez les identifiants hors du sandbox : des jetons limités, révocables et par session plutôt que des clés ambiantes que l’agent pourrait divulguer.
La surface des paramètres rattrape le premier principe (v2.1.219). Il est facile d’adhérer à « Confinez d’abord au niveau de l’environnement » et cela a été difficile à configurer concrètement, car le sandbox de Claude Code résolvait ce que ses règles ne couvraient pas en demandant — et une demande de permission est une défense probabiliste déguisée en mécanisme déterministe, comme le reconnaît le taux d’approbation de 93 % ci-dessus. sandbox.network.strictAllowlist supprime la question pour les sorties réseau : lorsqu’il est défini, la requête d’une commande sandboxée vers un hôte absent de la liste d’autorisation est refusée directement au lieu de déclencher une demande.84 Associez-le à sandbox.filesystem.disabled de v2.1.216 et les deux paramètres composent une posture plutôt qu’un empilement de bascules — le confinement du système de fichiers et du réseau est sélectionnable indépendamment, et le confinement réseau peut désormais être rendu déterministe. Pour un harness sans surveillance, c’est le plus important des deux, car la sortie réseau est l’endroit où une instruction injectée devient une exfiltration, et le cas limite de la fatigue d’approbation est qu’il n’y a personne au clavier pour être fatigué. Le coût est le coût ordinaire d’une frontière déterministe : la liste d’autorisation doit être correcte, et un hôte oublié échoue par un refus opaque plutôt que par une question. Énumérez les hôtes dont vos agents ont légitimement besoin, puis supprimez la demande.
Rien de cela ne remplace la couche de hooks ; cela se situe en dessous. Les modèles de confinement constituent le socle déterministe, et l’historique d’application des worktrees dans ce guide est la même leçon en miniature : une frontière ne compte que si elle résiste à une redirection délibérée, et les primitives les plus susceptibles de tenir sont celles qui n’ont pas été écrites pour l’occasion.
Frontières de permission
Le système de permissions contrôle les opérations à plusieurs niveaux :
| Niveau | Contrôle | 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 dans .env, credentials.json |
| Permissions de commandes | Quelles commandes bash peuvent être exécutées | Bloquer rm -rf, git push --force |
| Permissions réseau | Quels domaines sont accessibles | Liste d’autorisation 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 des paramètres : Tool(param:value) est comparé aux paramètres d’entrée d’un outil, avec * comme joker. L’exemple canonique est Agent(model:opus) — une règle qui empêche de lancer des subagents sur un niveau 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 dans son ensemble, sans pouvoir contraindre la façon dont il était appelé. Une politique de gouvernance peut désormais dire « les subagents peuvent être lancés, mais pas sur le niveau Fable 5 » ou « Bash est autorisé, mais pas avec ce flag » comme règle déterministe plutôt que comme demande au niveau du prompt.
Un paramètre géré associé, enforceAvailableModels (v2.1.175), contraint le choix du modèle de haut en bas : il fixe le modèle Default et empêche les paramètres à portée utilisateur ou projet d’élargir la liste d’autorisation availableModels gérée.63 Les deux se composent — la liste d’autorisation définit les niveaux qui existent pour la session, et les règles au niveau des paramètres contraignent la manière dont les subagents y puisent. Depuis v2.1.196, les administrateurs peuvent également définir un modèle par défaut à l’échelle de l’organisation depuis la console d’organisation, affiché sous le nom « Org default » dans /model, afin qu’une flotte hérite d’une valeur par défaut gouvernée sans que chaque opérateur en fixe une — un plancher pour compléter le plafond de la liste d’autorisation.
Les règles d’autorisation limitées aux chemins s’ancrent dans le répertoire de travail (juillet 2026)
Claude Code v2.1.214 a corrigé une surcorrespondance discrète dans les règles de permission limitées aux chemins : une règle d’autorisation avec un motif dir/** à un seul segment — par exemple Edit(src/**) — approuvait automatiquement les modifications de tout dossier nommé src, à n’importe quelle profondeur, y compris vendor/some-package/src/ et tout autre src/ imbriqué que l’auteur de la règle n’avait jamais voulu autoriser. Ces règles s’ancrent désormais uniquement à <cwd>/dir ; si vous souhaitez réellement une correspondance à toute profondeur, déclarez-la avec **/dir/**.74 Les règles de refus et de demande conservent délibérément l’ancienne correspondance à toute profondeur. Cette asymétrie est une conception de sûreté correcte : une règle d’autorisation qui correspond trop étroitement échoue de manière sûre (vous obtenez une demande), alors qu’une règle de refus qui correspond trop étroitement échoue de manière ouverte (un chemin bloqué passe à travers) — les autorisations sont donc devenues plus strictes et les refus sont restés larges. Si vos paramètres reposent sur des motifs d’autorisation à un seul segment pour couvrir des chemins imbriqués, ils ont silencieusement cessé de le faire avec v2.1.214 ; c’est le correctif qui fonctionne comme prévu, mais cela mérite de revoir vos listes d’autorisation afin de redéclarer l’étendue que vous souhaitez réellement.
Garde-fous des commandes destructrices en mode Auto (juin 2026)
Claude Code v2.1.183 a réduit le rayon d’impact du mode auto pour les opérations qui font perdre du travail ou détruisent des environnements sans bruit. Le mode auto bloque désormais fermement, 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é créé par l’agent au cours de cette session ; et la suppression d’infrastructure (terraform destroy, pulumi destroy, cdk destroy) à moins que vous n’ayez nommé la stack précise.65 Sur le plan architectural, cela complète les règles de vérification au lancement et au niveau des paramètres ci-dessus : au lieu de contrôler quel outil ou comment il est lancé, cela contrôle un petit ensemble de commandes irréversibles précises 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 de refus par défaut que seul un signal explicite de l’opérateur lève.
Juillet 2026 : le mode auto passe à l’entreprise, et une demande devient impossible à ignorer. Le mode auto a atteint la disponibilité générale sur Amazon Bedrock, Google Vertex AI et Microsoft Foundry dans v2.1.207, avec un paramètre géré disableAutoMode comme option de désactivation pour les entreprises — la posture du classificateur comme couche de vérification est désormais disponible sur toutes les plateformes d’entreprise first-party, et sa désactivation relève d’une décision de gouvernance explicite plutôt que d’une lacune de plateforme.68 v2.1.208 a ensuite rendu la protection contre les suppressions catastrophiques absolue : les demandes de confirmation pour les suppressions catastrophiques s’appliquent à la fois à --dangerously-skip-permissions et au mode auto.68 C’est un précédent notable — la première confirmation dans Claude Code qu’aucune posture de permission, y compris le flag explicite de contournement, ne peut ignorer. Les conceptions de harness autonome qui supposaient que --dangerously-skip-permissions signifiait littéralement zéro demande devraient tenir compte de cette exception ; elle se déclenche précisément là où une boucle sans surveillance peut causer les dommages les plus irrécupérables.
Garde-fous anti-fabrication (juillet 2026)
Les versions v2.1.203–v2.1.206 ont fermé deux voies par lesquelles un agent pouvait fabriquer sa propre piste d’audit.68 Premièrement, une règle du mode auto bloque désormais la falsification des fichiers de transcription — l’enregistrement de la session n’est plus quelque chose que les propres appels d’outils de la session peuvent réécrire. Deuxièmement, les notifications de tâches en arrière-plan indiquent désormais explicitement qu’aucune entrée humaine n’est survenue pendant l’exécution de la tâche. La seconde vise une défaillance subtile : un modèle résumant une tâche en arrière-plan pouvait auparavant présenter (ou inventer) une « approbation » dans la transcription qui n’avait jamais eu lieu, et rien dans la notification ne le contredisait. Désormais, la notification elle-même constitue la contre-preuve.
La leçon architecturale se généralise à l’Evidence Gate : les transcriptions, notifications et journaux sont des surfaces d’audit, et les surfaces d’audit ne doivent pas être inscriptibles par ce qu’elles auditent. La plateforme l’applique désormais à sa propre transcription ; appliquez la même règle à votre harness — les rapports de preuves, sorties de tests et comptes rendus de délibération doivent se trouver hors du chemin inscriptible du modèle.
Défense contre l’injection de prompt
Les skills et hooks assurent une défense en profondeur contre l’injection de prompt :
Les skills avec restrictions d’outils empêchent qu’un prompt compromis obtienne 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é sollicité :
# 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.
Le niveau minimal de la plateforme a augmenté en juillet 2026. Claude Code v2.1.210 a renforcé l’Agent tool contre l’injection indirecte de prompt transportée dans le contenu lu par un subagent — un fichier, une page web ou un résultat d’outil empoisonné récupéré par un subagent peut moins orienter la surface de délégation elle-même.69 Et v2.1.211 a renforcé le maillon humain de la chaîne : les aperçus de permissions neutralisent désormais les caractères Unicode de remplacement bidirectionnel, de largeur nulle et ressemblants, afin qu’une commande ne puisse plus être conçue pour s’afficher comme anodine dans la boîte de dialogue d’approbation tout en exécutant autre chose.69 Le second correctif est particulièrement important pour les harnesses où un humain approuve des aperçus affichés sous pression temporelle — l’affichage était lui aussi une surface d’injection. Aucun de ces changements ne remplace les défenses au niveau des hooks ci-dessus ; ils élèvent le niveau minimal sous-jacent.
Les journaux d’agents et les garde-fous sont des surfaces de sécurité
Deux avis de mai 2026 renforcent un schéma : l’infrastructure des agents crée de nouveaux endroits où du contenu sensible et des politiques exécutables peuvent fuiter ou s’échapper. L’avis GHSA-f3jg-756w-gm35 de GitHub couvre un problème de filtre de payload Gryph Agents où le contenu sensible des payloads d’outils pouvait rester dans des journaux SQLite locaux avec le comportement de journalisation par défaut.45 OSV GHSA-wxxx-gvqv-xp7p couvre une évasion du sandbox des garde-fous de code personnalisé LiteLLM dans un endpoint proxy protégé par administrateur.46
La règle de production : traitez les transcriptions d’agents, payloads d’outils, journaux SQLite et exécution des garde-fous comme une infrastructure sensible. Supprimez les informations sensibles avant la persistance, appliquez des limites de rétention et maintenez le code personnalisé des garde-fous sandboxé et révisable. Une règle au niveau du prompt telle que « ne pas journaliser les secrets » ne suffit pas ; le chemin de journalisation et de garde-fou nécessite des tests déterministes.
Sécurité des hooks
Les hooks HTTP qui interpolent des variables d’environnement dans les en-têtes nécessitent 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 humains et agents
La sécurité des architectures d’agents exige une répartition claire entre les responsabilités humaines et celles des agents :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 qualité | Application des critères de qualité |
| 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 exigent un contexte organisationnel, un jugement éthique ou une orientation stratégique. Les agents possèdent les décisions qui exigent une recherche computationnelle dans de vastes espaces de possibilités. Les hooks appliquent cette 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 termine.
Ce n’est pas facultatif. Un agent qui lance un subagent sans vos hooks de sécurité est un agent qui peut effectuer un force-push vers main, lire des fichiers d’identifiants ou exécuter des commandes destructrices pendant que vos garde-fous regardent la conversation principale sans 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 des tokens. Compression du prompt système. Supprimez les exemples de code tutoriels (le modèle connaît les APIs), regroupez les règles dupliquées entre les fichiers et remplacez les explications par des contraintes. « Refuser les appels d’outils correspondant à des chemins sensibles » accomplit le même travail qu’une explication de 15 lignes expliquant pourquoi les identifiants ne doivent pas être lus.
Niveau des agents. Lancements neufs plutôt que 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 à zéro. Briefing plutôt que mémoire : les modèles exécutent mieux un briefing clair qu’ils ne naviguent dans 30 étapes de contexte accumulé.
Niveau de l’architecture. CLI-first 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 a du sens lorsque l’outil nécessite un état persistant ou du streaming.
Cadre décisionnel
Quand utiliser chaque mécanisme :
| Problème | Utiliser | Pourquoi |
|---|---|---|
| Formater le code après chaque modification | hook PostToolUse | Doit s’exécuter à chaque fois, de manière déterministe |
| Bloquer les commandes Bash dangereuses | hook PreToolUse | 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 | subagent Explore | Contexte isolé, renvoie uniquement un résumé |
| Exécuter un refactoring expérimental en toute sécurité | subagent isolé dans un worktree | Les modifications peuvent être supprimées en cas d’échec |
| Réviser le code sous plusieurs angles | subagents parallèles ou Agent Team | Une évaluation indépendante évite les angles morts |
| Décider d’une architecture irréversible | Délibération multi-agent | Déclencheur de confiance + validation par consensus |
| Conserver les décisions entre les sessions | MEMORY.md | Le système de fichiers survit aux limites de contexte |
| Partager les standards d’équipe | CLAUDE.md + .claude/rules/ du projet | Distribué via 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 long développement autonome | Boucle Ralph (itération avec nouveau contexte) | Budget de contexte complet par itération, état dans le système de fichiers |
| Notifier Slack à la fin de la session | hook Stop asynchrone | Non bloquant, ne ralentit pas la session |
| Valider la qualité avant un commit | hook PreToolUse sur git commit | Bloque le commit si lint/tests échouent |
| Imposer les critères de finalisation | hook Stop | Empêche 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 de LLM) | Déterministe (pilotée par les événements) | 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 distincte |
| 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 des politiques | Travail ciblé, exploration |
FAQ
Combien de hooks est-ce trop ?
La contrainte 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 les paramètres utilisateur et projet s’exécutent sans latence perceptible lorsque chacun se termine en moins de 200 ms. Le seuil à surveiller : si un hook PostToolUse ajoute plus de 500 ms à chaque modification de fichier, la session devient lente. Analysez 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 hooks PreToolUse 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 rejet et propose une alternative plus sûre. Le code de sortie 1 correspond à un avertissement non bloquant, l’action se poursuit donc.3
Où placer les fichiers de configuration des hooks ?
Les configurations de hooks se placent dans .claude/settings.json pour les hooks au niveau projet (committés dans votre dépôt et partagés avec votre équipe) ou dans ~/.claude/settings.json pour les hooks au niveau utilisateur (personnels, appliqués à chaque projet). Les hooks au niveau projet sont prioritaires lorsque les deux existent. Utilisez des chemins absolus pour les fichiers de script 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 évalue les décisions selon quatre dimensions (ambiguïté, complexité, enjeux, dépendance au contexte). Seules les décisions dont le score de confiance global est inférieur à 0,70 déclenchent une délibération, soit environ 10 % de l’ensemble des décisions. Les corrections de documentation, les renommages de variables et les modifications de routine 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 des désaccords ?
Testez à la fois les parcours de réussite et les parcours d’échec. Réussite : les agents sont en désaccord de manière productive et atteignent un consensus. Échec : les agents convergent trop vite, ne convergent jamais ou dépassent les budgets de lancement. Les tests de bout en bout simulent chaque scénario avec des réponses déterministes des agents, en vérifiant que les deux portes de validation détectent chaque mode d’échec documenté. Un système de délibération de production exécute 141 tests répartis 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 écoulé (cette conception de délibération exécute ses agents séquentiellement via l’Agent tool ; la plateforme elle-même exécute les subagents simultanément en arrière-plan depuis la v2.1.198). 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 de LLM par agent, et non la surcharge d’orchestration.7
Quelle doit être la longueur d’un fichier CLAUDE.md ?
Limitez chaque section à moins de 50 lignes et le fichier total à moins de 150 lignes. Les fichiers longs sont tronqués par les fenêtres de contexte ; placez donc les instructions les plus essentielles en tête : les commandes et les 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 modèles de correspondance et l’Agent tool de Claude Code. AGENTS.md transpose 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.
Fiche 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 | Utiliser pour |
|---|---|---|
| 0 | Succès | Autoriser l’opération |
| 2 | Bloquer | 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 |
Afficher l’allocation de contexte et les skills actifs |
edit .claude/agents/ |
Gérer les subagents — l’assistant /agents a été supprimé dans la v2.1.198 ; créez ou modifiez directement les définitions, ou demandez à Claude de le faire |
/goal <condition> |
Maintenir Claude au travail vers une condition de finalisation |
claude agents |
Ouvrir Agent View pour les sessions en cours, bloquées et terminées |
CLAUDE_CODE_WORKFLOWS=1 |
Historique : activait l’aperçu de Workflow-tool de la v2.1.147 ; les workflows dynamiques sont disponibles par défaut via /workflows depuis la v2.1.154 |
claude -c |
Reprendre la session la plus récente |
claude --print |
Invocation ponctuelle de CLI (sans conversation) |
# <note> |
Ajouter une note au fichier mémoire |
/memory |
Afficher et gérer l’auto-mémoire |
Emplacements des fichiers
| Chemin | Objectif |
|---|---|
~/.claude/CLAUDE.md |
Instructions globales personnelles |
.claude/CLAUDE.md |
Instructions du projet (partagées via Git) |
.claude/settings.json |
Hooks et autorisations du projet |
~/.claude/settings.json |
Hooks et autorisations utilisateur |
~/.claude/skills/<name>/SKILL.md |
Skills personnels |
.claude/skills/<name>/SKILL.md |
Skills du projet (partagés via Git) |
~/.claude/agents/<name>.md |
Définitions de subagent personnelles |
.claude/agents/<name>.md |
Définitions de subagent 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-mémoire |
Journal des modifications
| Date | Modification | Source |
|---|---|---|
| 2026-08-18 | Intégration des subagents fork (v2.1.232), accompagnée d’un examen des écarts des versions v2.1.233/234. Le tableau des types de subagents accueille fork : « hérite de l’intégralité de la conversation jusqu’à présent au lieu de repartir de zéro… un fork reçoit les mêmes system prompt, outils, modèle et historique des messages que la session principale », le cache du prompt étant partagé tandis que ses appels d’outils restent isolés — activé par défaut dans les sessions interactives depuis la v2.1.232, désactivé avec -p/SDK ; l’affirmation selon laquelle « les subagents démarrent avec un contexte vierge » mentionne désormais cette exception liée au fork. Écarts regroupés, consignés uniquement dans le journal des modifications : la v2.1.233 désactive par défaut les outils de tâches (TaskCreate/Get/Update/List, TodoWrite) sur les modèles de génération actuelle (CLAUDE_CODE_ENABLE_TODO_TOOLS=1 les réactive), ce qui rend également les hooks TaskCreated/TaskCompleted inactifs dans les configurations par défaut et, selon la documentation relative aux équipes d’agents, oblige les coéquipiers dépourvus d’outils de tâches à se coordonner « par messages plutôt que par la liste de tâches partagée » ; la v2.1.234 supprime le paramètre teammateDefaultModel (les coéquipiers utilisent le modèle du responsable, sauf si le prompt de lancement ou CLAUDE_CODE_SUBAGENT_MODEL en désigne un) et transmet les notifications de tâches en arrière-plan entre les tours dans des balises <system-reminder>. |
88 |
| 2026-08-12 | Premier audit global de l’evidence gate — lecture de l’intégralité du guide par l’évaluateur ; R1 a obtenu 8,83 avec six constats MAJEURS, tous corrigés dans cette ligne. Classe de défauts touchant l’ensemble du guide (chaque ligne de version reste exacte, sans jamais réécrire les strates antérieures) : le nombre d’événements de hooks indiqué était de 30, alors que le tableau omettait MessageDisplay — précisément l’événement cité dans le corps du texte comme jalon de stabilité (désormais 31, avec ajout de la ligne) ; le tableau des types de subagents intégrés enseignait encore qu’Explore utilisait Haiku, en contradiction avec la propre ligne v2.1.198 de ce journal, qui indique l’héritage du modèle de la session ; les coûts de deliberation présentés comme « actuels » étaient calculés selon l’ancien tarif d’Opus 4.x, soit 15 $/75 $ — une surestimation d’un facteur 3 par rapport aux 5 $/25 $ d’Opus 5 (recalcul effectué, anciens chiffres signalés) ; xhigh portait encore la mention « (Opus-4.7 uniquement) » plusieurs mois après son arrivée sur Opus 4.8 avec la v2.1.154 ; la révision stateless de MCP était toujours indiquée comme « prévue pour le 28 juillet 2026 », deux semaines après sa publication comme révision Current de la spécification (passage réécrit au passé, note de bas de page vérifiée à nouveau) ; la section Workflow s’ouvrait encore sur la variable d’environnement désactivée par défaut de la v2.1.147, alors que les workflows dynamiques sont disponibles par défaut via /workflows depuis la v2.1.154 (section, TL;DR et ligne du tableau des variables d’environnement harmonisés). Actualisation des éléments ayant dérivé : versions de SDK vérifiées à nouveau en direct (Python 0.2.137, TS 0.3.229, dates des références actualisées) ; ajout d’une présentation des sessions en tant que pairs (v2.1.224 SendMessage/ListAgents, runners auto-hébergés, activation par défaut du mode auto le 14 août et conseil d’épingler defaultMode) ; mention d’Agent Plugins 1.0.0 à la convergence entre skills et plugins, avec la réserve concernant l’absence de Anthropic ; diagrammes Ralph réétiquetés pour indiquer un contexte vierge (les modèles prennent désormais nativement en charge 1M) ; réponse de la FAQ sur la latence limitée au design de deliberation ; méta-description ramenée à 155 caractères. Titre délibérément conservé à 61 caractères — un atout pour le classement, malgré un caractère de plus que la largeur d’affichage. |
86 87 89 |
| 2026-08-01 | Correction d’une information obsolète : une version indiquée « en juillet 2026 » que le reste du guide avait déjà dépassée. Le paragraphe consacré à Python SDK affirmait que le paquet avait « atteint la v0.2.111 sur PyPI (incluant Claude CLI v2.1.202), et TypeScript SDK la v0.3.203 » — soit 17 versions de retard dans les deux cas, alors que d’autres sections de ce même guide documentaient correctement les versions 0.2.128 et 0.3.220. Il indique désormais la v0.2.128 (incluant CLI v2.1.220, version minimale de mcp relevée à >=1.23.0) et la v0.3.220, avec la date d’une vérification effective plutôt qu’un mois sans borne précise. La nouvelle note 90 cite PyPI, npm et le journal des modifications de Python SDK. Aucune nouvelle version en amont pendant cette période : Claude Code v2.1.220, Codex v0.146.0 stable (uniquement des versions alpha de la v0.147.0), FastAPI 0.141.1, XcodeBuildMCP 2.7.0, MCPVault 0.12.4, hermes-agent 0.19.0, Midjourney Version 8.2, Suno V5.5 et Apple 26.6 stable sont tous restés inchangés. |
90 |
| 2026-07-29 | Correction d’exhaustivité : trois champs de TS SDK v0.3.216 omis dans l’entrée du 21 juillet. Une nouvelle analyse du journal des modifications de claude-agent-sdk-typescript par rapport à ce guide a révélé qu’il manquait trois champs à la liste de la v0.3.216 : les réponses rewindFiles comportent un nombre facultatif skippedLinks pour les chemins que les protections de sécurité du rembobinage ont refusé de restaurer ou de supprimer, tandis que le message de résultat positif comporte les champs facultatifs user_message_uuid et request_sent_wall_ms pour corréler la latence des requêtes entre les hôtes. Ajoutés à la liste du corps du texte et à 75 ; aucune nouvelle note de bas de page. Tout le reste de la plage v0.3.215-v0.3.220 était déjà couvert, notamment l’historique de la profondeur d’imbrication des subagents (initialement fixée à 5, réduite à 1 dans la v2.1.217, puis stabilisée à 3 dans la v2.1.219) et la limite de concurrence de 20 — la ligne « limite de profondeur réduite de 5 à 1 » du journal des modifications de SDK constitue un instantané obsolète d’une valeur dont ce guide retrace déjà l’évolution ultérieure. Dernière version npm d’Agent SDK confirmée : 0.3.220 (24 juillet), et version PyPI : 0.2.128 ; aucune version plus récente pendant cette période. |
75 |
| 2026-07-27 | Correction du rendu, sans modification du contenu. L’en-tête de ce journal des modifications déclarait deux colonnes alors que ses lignes en comportaient trois ; python-markdown tronquait donc chaque ligne aux colonnes Date et Change et supprimait silencieusement la cellule Source — entraînant avec elle neuf citations de notes de bas de page ([^83], [^84], [^85], [^103], [^105], [^107], [^108], [^110], [^111]). Comme ces neuf notes n’étaient citées nulle part ailleurs, chacune apparaissait dans la liste des références avec une flèche de retour pointant vers une ancre inexistante sur la page. L’en-tête est désormais Date \| Change \| Source, ce qui rétablit les neuf citations. Vérification effectuée en générant le rendu du guide avec la propre configuration markdown du site, puis en comparant id="fn:N" à id="fnref:N" : 77 références actives avant, 86 après, aucune orpheline. Le même défaut a été découvert et corrigé dans les guides FastAPI + HTMX et Obsidian lors de cette passe ; ios-agent-development présente une autre lacune de citation, non corrigée et signalée dans son propre rapport. |
– |
| 2026-07-25 | Guide v1.27 : Correction de la profondeur d’imbrication par défaut (3, et non 1), Claude Opus 5 et ajout d’un quatrième axe de protection. Correction — la profondeur de création des subagents repasse à 3 (v2.1.219) : « Les subagents peuvent désormais créer par défaut des subagents imbriqués jusqu’à une profondeur de 3 (contre 1 auparavant) ; définissez CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1 pour désactiver l’imbrication. » La valeur par défaut, initialement fixée à 5 (v2.1.172), a été réduite à 1 (v2.1.217), puis stabilisée à 3 (v2.1.219) — ces deux derniers changements ayant eu lieu en l’espace de trois jours. La sous-section Recursion Guard ne présente désormais plus aucune valeur par défaut comme définitive ; elle explique que la profondeur est un paramètre de plateforme instable qui doit être fixé explicitement via CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH, plutôt qu’hérité. Correctif associé : --forward-subagent-text transmet désormais aussi le texte des subagents de profondeur 2 ou supérieure, en l’associant à l’identifiant tool_use de l’Agent qui les a créés — regroupez le texte transmis selon cet identifiant au lieu de supposer que chaque ligne provient d’un enfant direct. Hook DirectoryAdded (CC v2.1.219 + TS SDK v0.3.219) : premier nouvel événement de cycle de vie depuis MessageDisplay (v2.1.152), déclenché après que /add-dir ou la requête de contrôle register_repo_root de SDK a enregistré un répertoire de travail en cours de session — les vérifications de l’espace de travail effectuées au démarrage (contrôles de confiance, analyses de secrets, règles limitées à certains chemins, politiques propres à chaque dépôt) doivent alors être relancées ; le tableau des événements en compte désormais 30. sandbox.network.strictAllowlist (v2.1.219) : refuse les hôtes absents de la liste d’autorisation pour les commandes exécutées dans la sandbox, sans demander de confirmation — un blocage déterministe des sorties réseau qui se combine avec sandbox.filesystem.disabled, introduit dans la v2.1.216 ; ajouté à la sous-section consacrée aux modèles de confinement, car les paramètres rattrapent désormais le principe « confiner d’abord au niveau de l’environnement ». La largeur d’orchestration devient un quatrième axe de protection (v2.1.219) : les workflows dynamiques appliquent par défaut une recommandation de taille moyenne (« visez moins de 15 agents »), configurable depuis n’importe quel fichier de paramètres à l’aide de la nouvelle clé workflowSizeGuideline (également présente dans les types de paramètres de TS SDK) et affichée dans la ligne d’état du workflow en cours — le modèle à trois axes (nombre de créations, profondeur et concurrence) en compte désormais quatre, et la limite de 15 est enfin du même ordre de grandeur que le budget de délibération de 12 agents préconisé par ce guide, plutôt qu’un fusible excessivement permissif. Claude Opus 5 (claude-opus-5, 24 juillet) : le nouvel Opus par défaut — contexte de 1M, 5 $/25 $ par MTok (même tarif qu’Opus 4.8), mode rapide à 10 $/50 $ pour une vitesse environ 2,5× supérieure ; il fait plus que doubler le score d’Opus 4.8 sur Frontier-Bench v0.1 et se place à moins de 0,5 % du score de Fable 5 sur CursorBench 3.2, pour moitié moins cher. Le modèle agentique recommandé par défaut dans ce guide passe d’Opus 4.8 à Opus 5 ; Opus 4.7 quitte le mode rapide (/fast s’applique désormais à Opus 5 et Opus 4.8), tandis que le modèle de repli Fable-5 du classificateur du mode automatique devient Opus 5. Uniquement dans le changelog : Py SDK v0.2.127 — les tâches en arrière-plan contournaient silencieusement les hooks PreToolUse : query() fermait stdin dès la première trame result, alors que des subagents s’exécutaient encore en arrière-plan ; leurs appels d’outils SDK-MCP échouaient donc avec "Stream closed" et ignoraient le hook (#1103). Il s’agit du deuxième contournement des mécanismes d’application des hooks en un mois, après le cas abort→hook-success de TS v0.3.208 ; ce schéma est désormais explicitement décrit dans la mise en garde sur le streaming des hooks de SDK — aux limites du cycle de vie, les contrôles appliqués côté SDK échouent en mode ouvert et silencieusement, puisqu’un hook contourné ressemble à un hook qui a donné son autorisation. TS SDK v0.3.219 : option facultative cancel_queued pour la requête de contrôle d’interruption (capacité interrupt_cancel_queued_v1) ; fast_mode_disabled_reason dans le résultat et l’initialisation ; après un changement, la réponse d’initialisation ne rapporte plus le fast_mode_state du modèle utilisé lors de la création. Diagnostics MCP de CC v2.1.219 : mcp_server_errors dans l’événement d’initialisation stream-json en mode headless ; état HTTP et texte de l’erreur dans claude mcp list / /mcp en cas d’échec de connexion ; avertissement concernant les espaces invisibles dans les valeurs de configuration de MCP. Portée des paramètres gérés : les entrées ${VAR} des listes d’autorisation et de refus MCP gérées sont désormais résolues à partir de l’environnement de démarrage et de celui des paramètres gérés, plutôt qu’à partir de l’environnement du fichier de paramètres — un changement de l’ordre de résolution qui concerne directement la gouvernance. Divers : claude -p ne supprime plus le texte déjà produit lorsqu’un tour échoue en cours de streaming ; CLAUDE_CODE_GIT_BASH_PATH est ignoré avec un avertissement lorsqu’il ne désigne pas un binaire bash/sh ; le skill claude-api inclus utilise désormais Opus 5 par défaut. CC v2.1.220 / TS v0.3.220 / Py v0.2.128 (25 juillet) : uniquement des correctifs et des mises à niveau de parité. MCP : aucune fusion normative ; la spécification stateless reste prévue pour le 28 juillet 2026. |
84 85 91 |
| 2026-07-24 | Guide v1.26 : intégration de l’article de Anthropic sur les modèles de confinement + Claude Code v2.1.218. Ajout de la sous-section « Trois modèles de confinement communs aux différents produits » dans les considérations de sécurité, à partir de l’article d’ingénierie de Anthropic, « Comment nous confinons Claude dans nos différents produits » (25 mai 2026) : conteneurs gVisor éphémères côté serveur (claude.ai), sandboxing du système d’exploitation avec intervention humaine (Claude Code : Seatbelt/bubblewrap et le projet open source sandbox-runtime) et machines virtuelles scellées sur les hyperviseurs de la plateforme (Claude Cowork : framework Apple Virtualization / Windows HCS, identifiants conservés dans le trousseau de l’hôte avec des jetons de session révocables et à portée limitée, contrôlés par un proxy MITM défensif au sein de la machine virtuelle) — ainsi que les principes de conception du harness énoncés dans l’article : confinement prioritaire au niveau de l’environnement, isolation adaptée à la capacité de supervision de l’utilisateur, composants éprouvés plutôt que code d’isolation sur mesure, configuration locale du projet et sorties des outils considérées comme des entrées non fiables, identifiants conservés hors de la sandbox. Uniquement dans le changelog : CC v2.1.218 (22 juillet) — le classificateur du mode automatique tranche désormais les contrôles concernant les commandes rm dangereuses, l’exécution en arrière-plan avec & et les chemins Windows suspects, au lieu d’ouvrir des boîtes de dialogue d’autorisation ; en mode plan avec le mode automatique, les commandes Bash que l’analyseur statique ne peut pas certifier comme étant en lecture seule sont soumises au classificateur ; les hooks définis dans le frontmatter d’un agent exigent que le dossier du fichier de cet agent ait lui-même reçu l’autorisation de confiance de l’espace de travail ; les skills context: fork s’exécutent par défaut en arrière-plan (background: false permet de désactiver ce comportement) ; /code-review s’exécute comme subagent en arrière-plan ; /deep-research ne s’invoque plus lui-même ; la filiation des sessions forkées est préservée après la compaction dans les sessions headless/SDK ; le passage en arrière-plan avec Ctrl+B respecte les limites imposées aux shells en arrière-plan. TS SDK v0.3.218 (22 juillet) : indicateur SkillToolOutput.background ; api_error_status signale les erreurs 429/529 en cours de streaming ; canonicalModel + provider dans modelUsage. Py SDK v0.2.126 (22 juillet) : ResultMessage.terminal_reason ; model_usage typé avec canonicalModel/provider ; inclut CLI v2.1.218. MCP : aucune fusion normative ; la spécification stateless reste prévue pour le 28 juillet 2026. |
81 82 83 |
| 2026-07-22 | Guide v1.25 : Claude Code v2.1.217 — retour en arrière sur les subagents récursifs + limite de concurrence. Création imbriquée désactivée par défaut : les subagents ne créent plus leurs propres subagents — la profondeur de récursion par défaut de cinq niveaux introduite dans la v2.1.172 est restée en vigueur jusqu’à la v2.1.216 ; une imbrication plus profonde nécessite désormais l’activation explicite de CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH (sous-section Recursion Guard réécrite). Limite de concurrence : le nombre de subagents exécutés simultanément est plafonné à 20 par défaut (CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS), afin qu’un seul message ne puisse pas déclencher une prolifération illimitée d’agents en arrière-plan. L’ensemble des protections natives couvre désormais les trois axes suivis par le budget de création en userland : nombre total de créations par session (v2.1.212, plafond de 200), profondeur d’imbrication (v2.1.217, un niveau par défaut) et largeur concurrente (v2.1.217, valeur par défaut de 20). Uniquement dans le changelog : dans CC v2.1.217, --max-budget-usd arrête désormais réellement les subagents en arrière-plan (une fois le plafond atteint, les nouvelles créations sont refusées et les agents déjà actifs en arrière-plan sont interrompus) ; l’isolation des sessions en arrière-plan canonicalise les répertoires de travail accessibles par des liens symboliques. Py SDK v0.2.125 inclut CLI v2.1.217 sans modification de l’interface de SDK ; TS SDK v0.3.217 est publié en parallèle. PR MCP #3092 (fusionnée le 21 juillet) : correction normative alignant les codes d’erreur de SEP-2575 sur le schéma renuméroté du brouillon et la suite de conformité — les préparatifs de la publication du 28 juillet se poursuivent. |
78 79 80 |
| 2026-07-21 | Guide v1.24 : durcissement du périmètre des chemins et de l’application des worktrees dans Claude Code v2.1.214–v2.1.216, multi-agent V2 de Codex v0.145.0 et importation entre harness. Les règles limitées à un chemin s’ancrent dans le cwd (v2.1.214) : les règles allow dir/** à segment unique (par exemple Edit(src/**)) approuvaient automatiquement les écritures dans tout dossier dir/ imbriqué, où qu’il se trouve dans l’arborescence — elles sont désormais limitées à <cwd>/dir ; de même, les conditions if: des hooks comportant un dir/** à segment unique ne s’appliquent désormais qu’au cwd (écrivez **/dir/** pour cibler n’importe quelle profondeur) ; les règles deny/ask conservent délibérément la correspondance à toute profondeur (sécurité asymétrique : en cas d’échec, les autorisations doivent déclencher une demande de confirmation, tandis que les refus ne doivent jamais laisser passer l’opération). L’isolation des worktrees est désormais appliquée de manière stricte (v2.1.216) : les subagents exécutés dans un worktree pouvaient rediriger git vers le checkout partagé au moyen de git -C, --git-dir ou GIT_DIR/GIT_WORK_TREE — cette faille est corrigée ; les sessions de worktree n’aboutissent plus dans un ancien worktree appartenant à un autre projet ; les écritures issues de workflows ou de tâches planifiées ne suivent plus un lien symbolique placé dans .claude ; /rewind refuse les liens symboliques et les liens physiques. Retour en arrière sur l’activation automatique des skills (v2.1.215) : Claude n’invoque plus de lui-même les skills /verify et /code-review inclus — leur invocation doit être explicite. Codex v0.145.0 : stabilisation du multi-agent V2 optionnel (modèles de subagents, niveaux de raisonnement et concurrence configurables, rôles rétablis) ; /import migre désormais les paramètres de Claude Code et de Cursor, ainsi que les serveurs MCP, les plugins, les sessions, les commandes et les mémoires propres au projet — une migration complète entre harness qui étend celle de la v0.140.0. Éléments figurant uniquement dans le changelog : outil EndConversation de CC v2.1.214 ; série de durcissements Bash/PowerShell en mode fail-closed (les redirections de descripteurs de fichiers échouent en mode fermé, les commandes de plus de 10 000 caractères demandent toujours une confirmation, les indices zsh déclenchent une demande de confirmation, l’autorisation automatique de help/man est supprimée, les options de redirection du daemon docker/Podman déclenchent une demande de confirmation, file -m/-f nécessite une autorisation, correction du contournement sous PowerShell 5.1) ; le code de sortie 2 d’un hook bloque l’opération même lorsque le JSON de stdout échoue à la validation du schéma ; le frontmatter de la mémoire gagne un horodatage ISO modified, sans troncature silencieuse au niveau d’un # en ligne ; ajout de message.uuid/client_request_id/tool_source dans OTel et de CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH. CC v2.1.216 : sandbox.filesystem.disabled (contrôle du trafic réseau sortant sans isolation du système de fichiers) ; les sessions d’agents en arrière-plan reprises restaurent les restrictions de prompt et d’outils de l’agent ; les modifications apportées aux skills et aux commandes en cours de session apparaissent dans le menu des commandes slash sans redémarrage. TS SDK v0.3.214/v0.3.216 : set_permission_mode rejette les modes inconnus ; aborted: true sur les messages tronqués par une interruption ; subagent_type/subagent_retry dans tool_progress ; sous-type scheduled-trigger pour les notifications de tâches ; source "fork" pour SessionStart ; sidecar tool_result_meta (non_execution_kind, user_feedback) ; rewindFiles signale dans skippedLinks les chemins que les protections de sécurité du rewind ont refusé de restaurer ou de supprimer ; les résultats réussis incluent user_message_uuid et request_sent_wall_ms pour corréler la latence des requêtes entre différents hôtes. Py SDK v0.2.124 : correction sous Windows d’une vulnérabilité de la classe BatBadBut (refus de lancer .bat/.cmd ; les métacaractères de cmd.exe dans resume/session_id lèvent une ValueError ; les extra_args commençant par un tiret sont liés sous la forme --flag=value). Durcissement de Codex v0.145.0 : délais d’expiration au démarrage de MCP, actualisations de OAuth sérialisées, découverte de OAuth non bloquante, détection renforcée des suppressions forcées, motifs de rejet conservés, historique paginé expérimental des threads. Préparation de la version MCP du 28 juillet 2026 (PR de documentation #3064/#3066/#3098, fusionnées le 21 juillet) : finalisation de la spécification présentant Tasks comme une extension facultative io.modelcontextprotocol/tasks ; HTTP+SSE est déprécié au profit de Streamable HTTP. |
74 75 76 77 |
| 2026-07-17 | Guide v1.23 : garde-fous contre les boucles incontrôlées et durcissement contre les injections dans Claude Code v2.1.203–v2.1.212, surfaces de protocole de TS SDK, brouillon relatif à l’identité sans état de MCP, parité Codex/OpenAI. Garde-fous natifs contre les boucles incontrôlées (v2.1.212) : plafond de création de subagents par session (200 par défaut, CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION, réinitialisé par /clear) et plafond WebSearch (200, CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) — le modèle de budget de création en espace utilisateur dispose désormais d’un filet de sécurité natif ; le paramètre mode de l’outil Task est déprécié (les subagents héritent du mode d’autorisation de la session parente) ; /fork crée désormais une nouvelle session en arrière-plan (la variante interne à la session a été renommée /subtask) ; les appels à MCP de plus de 2 minutes basculent automatiquement en arrière-plan (CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS). Priorité entre hook et mode automatique (v2.1.211) : ask dans PreToolUse impose au minimum une demande de confirmation (le mode automatique ne peut pas la contourner pour une commande Bash hors sandbox) ; --forward-subagent-text / CLAUDE_CODE_FORWARD_SUBAGENT_TEXT pour stream-json ; les règles « toujours autoriser » sont conservées à la racine du dépôt entre les worktrees ; les aperçus d’autorisation neutralisent les usurpations par caractères bidirectionnels, caractères de largeur nulle ou caractères similaires. v2.1.210 : correction des subagents isolés dans un worktree qui modifiaient le checkout principal ; durcissement de l’Agent tool contre les injections indirectes provenant de contenus lus par les subagents ; le classificateur du mode automatique utilise par défaut Sonnet 5, épinglé pour toute la session ; les écritures dépassant la limite de MEMORY.md produisent une erreur au lieu d’être silencieusement tronquées. v2.1.207/v2.1.208 : disponibilité générale du mode automatique sur Bedrock/Vertex/Foundry (désactivation avec disableAutoMode) ; les demandes de confirmation pour les suppressions catastrophiques s’imposent même avec --dangerously-skip-permissions et le mode automatique ; lanceur d’entreprise CLAUDE_CODE_PROCESS_WRAPPER ; tours d’outils jusqu’à 7× plus rapides lorsque le nombre d’outils MCP est élevé, avec des transcriptions 79× plus petites. v2.1.203–v2.1.206 : protection contre les fabrications (modification des fichiers de transcription bloquée ; les notifications de tâches en arrière-plan indiquent explicitement qu’aucune intervention humaine n’a eu lieu) ; roots/list de MCP inclut les répertoires de travail supplémentaires avec roots/list_changed ; /doctor propose d’alléger le contenu de CLAUDE.md pouvant être déduit de la base de code. TS SDK v0.3.205–v0.3.208 : accusés de réception d’interruption typés (still_queued, interrupt_receipt_v1), trames command_lifecycle, AgentToolCompletedOutput, canUseTool {behavior:'allow'} sans updatedInput ; correctif de sécurité de la v0.3.208 — l’abandon par l’appelant pendant l’attente d’un hook était converti en réussite du hook, ce qui permettait aux outils soumis à PreToolUse de s’exécuter après l’abandon. Brouillon de la spécification MCP (PR #3002, fusionnée le 16 juillet) : _meta facultatif et autodéclaré dans la réponse io.modelcontextprotocol/serverInfo, ainsi que clientInfo facultatif — uniquement pour l’affichage et la journalisation, et NE DEVRAIT PAS orienter les décisions de sécurité ; la spécification finale sans état paraîtra le 28 juillet 2026. Codex : v0.143.0, outils MCP accessibles par défaut via la recherche d’outils (chargement différé des outils) ; v0.144.0, mode d’approbation des applications writes et disponibilité générale de l’authentification interactive MCP ; v0.144.5, détection étendue des commandes dangereuses. Bêta multi-agent hébergée d’OpenAI : openai-agents-python v0.18.2 (11 juillet) et openai-agents-js v0.13.2 (10 juillet). Éléments figurant uniquement dans le changelog : correctifs des injections d’options argv dans SDK (TS 0.3.212 / Py 0.2.121 — les valeurs resume/session_id commençant par un tiret sont désormais transmises sous forme d’égalité) ; BashToolOutput.timedOutAfterMs ; SDKAssistantMessage.timestamp ; correction du streaming de SessionStart en mode headless dans CC v2.1.204 ; GPT-5.6 par défaut dans openai-agents ; recommandations de nouvelle tentative après rejet de Mcp-Param-* dans MCP. |
68 69 70 71 72 73 |
| 2026-07-07 | Guide v1.22 : Claude Code v2.1.196–v2.1.202. Sonnet 5 est le modèle fourni par défaut (v2.1.197) — reformulation de la remarque sur les niveaux de modèles (ce guide recommande toujours Opus 4.8 comme modèle agentic par défaut pour les harness autonomes). Les subagents s’exécutent par défaut en arrière-plan (v2.1.198) : le champ background sert désormais à fixer ce comportement plutôt qu’à l’activer ; l’agent Explore hérite du modèle de la session (avec Opus comme plafond) ; les subagents et la compaction héritent de la configuration de la réflexion étendue ; les sessions claude agents en arrière-plan créent automatiquement un commit, le poussent, ouvrent une PR en brouillon et déclenchent le hook Notification avec agent_needs_input/agent_completed ; l’assistant /agents a été supprimé (modifiez directement .claude/agents/). v2.1.199 : les hooks SessionStart/Setup/SubagentStart exposent stderr lorsque le code de sortie est 2 ; la détection des erreurs d’acheminement dues à la réutilisation d’un nom dans SendMessage a été ajoutée à la remarque sur l’autorité entre sessions ; jusqu’à 5 slash-skills empilés peuvent être chargés. v2.1.200 : le mode d’autorisation default est intitulé « Manuel » (alias manual) dans la liste permissionMode des subagents. v2.1.196 : les modèles par défaut définis à l’échelle de l’organisation sont mentionnés dans la section consacrée à la gouvernance ; l’auto-approbation de MCP est supprimée. Versions actuelles de SDK : claude-agent-sdk v0.2.111 (Python, inclut CLI v2.1.202) / @anthropic-ai/claude-agent-sdk v0.3.203 (TS), évolutions incrémentales par rapport à la surface 0.1.x documentée. |
67 |
| 2026-07-02 | Guide v1.21 : mises à jour de la gouvernance des matchers de hooks et du classificateur. Claude Code v2.1.195 : les matchers d’identifiants comportant des traits d’union utilisent une correspondance exacte au lieu d’une correspondance par sous-chaîne (voir Architecture des hooks — sémantique des matchers). Claude Code v2.1.193 : autoMode.classifyAllShell fait passer toutes les commandes shell par le classificateur du mode automatique, les motifs de refus étant affichés dans la transcription, la notification toast et /permissions (voir Considérations de sécurité). Codex v0.142.2 : les commandes PowerShell comportant des régions AST impossibles à inspecter nécessitent désormais une approbation. Tous les éléments ont été vérifiés par rapport aux changelogs canoniques au cours de ce cycle de mise à jour. |
66 |
| 2026-06-20 | Guide v1.20 : Claude Code v2.1.183 + Codex v0.141.0 — gouvernance et sécurité de l’exécution à distance. Ajout aux considérations de sécurité de garde-fous en mode automatique contre les commandes destructrices (CC v2.1.183 bloque catégoriquement git reset --hard/checkout -- ./clean -fd/stash drop, git commit --amend sur les commits qui ne proviennent pas de l’agent, ainsi que terraform/pulumi/cdk destroy sans stack nommée, sauf si vous en avez fait la demande), présentés comme le complément au niveau de l’intention des règles au niveau des paramètres et de la validation avant lancement ; et ajout aux notes de parité de Codex des exécuteurs distants reposant sur un relais Noise chiffré (Codex v0.141.0 : canaux d’exécution chiffrés de bout en bout, préservation multiplateforme du cwd et du shell, TLS P-521). |
65 |
| 2026-06-16 | Guide v1.19 : primitives de gouvernance et de délimitation du périmètre de Claude Code v2.1.173–v2.1.179, ainsi qu’importation inter-outils de 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 le caractère générique * (par exemple, Agent(model:opus) pour bloquer un niveau de modèle), ainsi que le paramètre administré enforceAvailableModels (v2.1.175), tous deux dans Sécurité → Limites des autorisations ; le mode automatique valide désormais les lancements de subagents avant leur exécution, comblant la faille qui permettait de contourner les contrôles par lancement (Modèles de subagents) ; chargement imbriqué de .claude/skills + résolution donnant priorité au plus proche pour les skills/agents/workflows/output-styles dans les arborescences .claude/ imbriquées (Système de skills) ; et correction de la correspondance avec les spécifications de serveur MCP de disallowedTools (Champs de configuration des subagents). Ajout de la portabilité inter-outils /import de Codex et de la suppression définitive des sessions (v0.140.0) à la note sur la parité de Codex. |
63 64 |
| 2026-06-10 | Guide v1.18 : subagents récursifs (Claude Code v2.1.172). Ajout d’une note à la sous-section sur la protection contre la récursion : les subagents de Claude Code peuvent désormais lancer leurs propres subagents, avec une imbrication maximale de 5 niveaux — alors que la délégation était auparavant limitée, dans les faits, à un seul niveau (v2.1.172, 10 juin). Le modèle de budget de lancement et de limite de profondeur géré dans l’espace utilisateur est désormais présenté comme le mécanisme empêchant une arborescence à 5 niveaux de se ramifier de façon incontrôlée, ces 5 niveaux étant considérés comme un plafond de la plateforme, et non comme une valeur par défaut. | 62 |
| 2026-06-09 | Guide v1.17 : Claude Code v2.1.169–v2.1.170 + Codex v0.138.0–v0.139.0 — gouvernance et renforcement de multi-agent-v2. Intégration dans le corps du guide de cinq évolutions vérifiées de l’architecture du harness. Le Système de skills s’enrichit d’une sous-section « Masquer la surface intégrée comme mesure de gouvernance » : le paramètre disableBundledSkills (et la variable d’environnement CLAUDE_CODE_DISABLE_BUNDLED_SKILLS) masque au modèle les skills, workflows et commandes slash intégrés afin de réduire délibérément la surface d’attaque (v2.1.169). La sous-section de juin sur l’architecture des hooks ajoute le flag --safe-mode (ainsi que CLAUDE_CODE_SAFE_MODE), qui démarre une session en désactivant toutes les personnalisations — CLAUDE.md, plugins, skills, hooks, MCP — pour le dépannage en environnement isolé et la gouvernance (v2.1.169), ainsi qu’une note sur le niveau du modèle : Claude Fable 5 (claude-fable-5) de Anthropic a été lancé le 9 juin comme niveau de classe Mythos supérieur à Opus, sélectionnable avec /model claude-fable-5 dans la v2.1.170, tandis qu’Opus 4.8 reste le modèle agentique par défaut de Claude Code. La section Mémoire et contexte ajoute la commande /cd (v2.1.169), qui déplace une session vers un nouveau répertoire de travail sans interrompre le cache des prompts en cours de session. Orchestration multi-agent / Parité de Codex a été renforcée pour la production : close_agent a été renommé interrupt_agent (v0.139.0), ajout du chiffrement des charges utiles des messages inter-agents, d’un catalogue v2 de configurations d’agents, d’un LRU de résidence des agents et d’un calcul de la concurrence fondé sur les exécutions actives (v0.138.0), découverte d’AGENTS.md acheminée par les systèmes de fichiers des environnements avec conservation des chemins logiques afin de sélectionner correctement les fichiers dans les espaces de travail distants ou utilisant des liens symboliques (v0.138.0/v0.139.0), et avertissements de démarrage de MCP des subagents limités au thread propriétaire au lieu d’être également affichés dans le parent (v0.139.0). |
60 61 |
| 2026-06-08 | Guide v1.16 : modèles d’architecture d’agents de juin issus de Claude Code v2.1.162–v2.1.166 + Codex v0.137.0. Ajout de la sous-section « Pilotage par les hooks d’arrêt, autorité intersessions et multi-agent v2 », qui couvre quatre changements concernant le harness : (1) les hooks Stop/SubagentStop peuvent renvoyer hookSpecificOutput.additionalContext pour injecter un retour du type « ce n’est pas encore terminé, voici pourquoi » et poursuivre le tour sans bloc d’erreur de hook (v2.1.163) ; (2) la messagerie intersessions a été renforcée afin que les messages d’une autre session relayés par SendMessage ne transmettent 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 permet d’enchaîner jusqu’à trois modèles de secours avec une seule nouvelle tentative de repli en cas d’erreurs API non réessayables, tandis que claude agents --json ajoute un champ waitingFor pour assurer l’observabilité de la 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 sur true par défaut, propage les événements parents aux écouteurs enfants et ajoute une extension v1 des skills avec résolution du catalogue à chaque tour ainsi que des événements contributeurs de cycle de vie au démarrage du thread et en cas d’erreur du tour. Aucun changement de spécification pour AGENTS.md (toujours administré par Agentic-AI-Foundation, sans changelog versionné). |
59 |
| 2026-05-31 | Guide v1.15 : correctifs Claude Code v2.1.157 + Hermes v0.15.1/v0.15.2. Ajout de la sous-section « Convergence des plugins et des skills dans .claude/skills/ » : avec Claude Code v2.1.157, tout dossier du répertoire .claude/skills/ d’un projet est automatiquement chargé comme plugin sans inscription sur une marketplace, tandis que claude plugin init <name> y génère la structure d’un nouveau plugin avec son manifeste et son fichier SKILL.md. La conséquence pour le harness est concrète : les outils de projet à périmètre restreint n’ont plus à supporter le coût d’un manifeste pour résider dans le contrôle de version ; les plugins conservent toutefois la structure ZIP groupée et installable. La même version fournit EnterWorktree, qui permet de basculer en cours de session entre les worktrees gérés par Claude, et laisse les worktrees d’arrière-plan déverrouillés une fois le travail de l’agent terminé afin que git worktree remove/prune s’exécutent correctement. Hermes Agent v0.15.1 (29 mai) est le correctif Velocity publié le même jour : correction de la boucle de rechargement avec erreur 401 du tableau de bord en mode loopback, Docker exige désormais explicitement HERMES_DASHBOARD_INSECURE=1, les commandes nues MCP (npx, npm, node) sont résolues dans Docker, la page Skills est restaurée, les workers Kanban répondent proprement à SIGTERM et le catalogue Skills.sh est passé de 858 à 19 932 entrées grâce au sitemap. Hermes v0.15.2 (29 mai) est un correctif exclusivement consacré au packaging, qui inclut les manifestes plugin.yaml dans les distributions wheel et sdist. |
58 |
| 2026-05-28 | Guide v1.14 : mise à jour des modèles d’architecture pour Claude Code v2.1.152-v2.1.154 + Codex v0.134.0-v0.135.0 + Hermes v0.15.0. Claude Code a modifié ses valeurs par défaut et ajouté des primitives d’orchestration : Opus 4.8 est désormais le modèle par défaut, avec un effort élevé par défaut et une nouvelle commande /effort xhigh ; les dynamic workflows orchestrent des dizaines, voire des centaines d’agents en arrière-plan via /workflows ; le lean system prompt est désormais utilisé par défaut pour tous les modèles, à l’exception de Haiku/Sonnet/Opus 4.7 et versions antérieures ; le nouvel événement de hook MessageDisplay permet aux hooks de transformer ou de masquer le texte de l’assistant lors de son affichage ; disallowed-tools dans le frontmatter d’un skill ou d’une commande retire des outils tant que le skill est actif ; /reload-skills analyse à nouveau les dossiers de skills sans redémarrage ; les hooks SessionStart peuvent renvoyer reloadSkills: true et définir hookSpecificOutput.sessionTitle ; --fallback-model change de modèle en cours de session lorsque le modèle principal est indisponible ; le mode auto ne nécessite plus de consentement préalable ; le paramètre administré pluginSuggestionMarketplaces établit une liste d’autorisation des marketplaces de l’organisation pour des suggestions tenant compte du contexte ; claude agents accepte les sessions shell en arrière-plan ! <command> ; les plugins peuvent déclarer defaultEnabled: false ; l’environnement des sous-processus stdio MCP inclut désormais CLAUDE_CODE_SESSION_ID et CLAUDECODE=1. Codex v0.134.0 a fait de --profile le principal sélecteur de profil dans les flux CLI, d’autorisations TUI et de sandbox (les anciennes configurations sont rejetées avec des instructions de migration), ajouté la recherche locale dans l’historique des conversations, amélioré la configuration de MCP grâce au ciblage de l’environnement par serveur et à OAuth pour les serveurs HTTP streamable, et permis l’exécution simultanée des outils MCP en lecture seule lorsqu’ils annoncent readOnlyHint ; la v0.135.0 a ajouté des diagnostics codex doctor plus détaillés, des informations distantes dans /status, l’édition des objets textuels de vim, des profils d’autorisation nommés dans /permissions et des préréglages Sandbox dans le Python SDK. Hermes Agent v0.15.0 (28 mai) livre la version Velocity : refactorisation à 76 % de run_agent.py dans 14 modules, Kanban multi-agent v2 avec décomposition automatique et topologie en essaim, remplacement des clés propres à chaque fournisseur par Bitwarden Secrets Manager et un unique jeton d’amorçage, défense Promptware contre les injections de prompt de classe Brainworm à trois points de contrôle de sécurité, bundles de skills, orchestrateur de sessions TUI pour gérer plusieurs sessions dans un seul terminal et session_search 4 500 fois plus rapide après la suppression de la dépendance LLM. Conséquences pour l’architecture des harness : le modèle des profils nommés (Codex --profile, Claude Code pluginSuggestionMarketplaces) devient la primitive de configuration standard des environnements d’exécution d’agents mutualisés ; les outils MCP simultanés en lecture seule (Codex readOnlyHint) constituent le bon modèle pour répartir les récupérations de contexte sans mutation ; le hook MessageDisplay offre aux opérateurs une surface de transformation de première classe, auparavant inaccessible depuis PostToolUse ou Stop ; enfin, l’utilisation par défaut du lean system prompt élimine le compromis historique entre le contexte défini par l’opérateur et l’infrastructure fournie par le prestataire. |
55 56 57 |
| 2026-05-24 | Guide v1.13 : mise à jour de sécurité et d’actualité pour Claude Code v2.1.150 + OpenAI Agents SDK v0.17.3. La commande locale claude --version a renvoyé 2.1.144 (Claude Code), tandis que la dernière version npm de @anthropic-ai/claude-code et la dernière version publiée sur GitHub ont respectivement renvoyé 2.1.150 et v2.1.150. Ajout des recommandations de la v2.1.149 pour les harness concernant les correctifs du contournement des autorisations PowerShell, les correctifs de l’analyse des autorisations liés aux règles d’autorisation et aux variables obsolètes de PowerShell, ainsi que le correctif de la liste d’autorisation d’écriture du sandbox pour les worktrees git ; précision que la v2.1.150 ne concerne que l’infrastructure interne, sans changement annoncé pour les utilisateurs. La dernière version PyPI de openai-agents étant 0.17.3, la section consacrée au sandbox OpenAI mentionne désormais le renforcement apporté par les versions 0.17.1 à 0.17.3 à l’extraction d’archives, aux sous-chemins GitRepo, aux identifiants du sandbox, aux racines relatives de l’espace de travail et à la gestion de l’état terminal des fournisseurs.5354 |
|
| 2026-05-21 | Guide v1.12 : mise à jour Workflow pour Claude Code v2.1.147. La commande locale claude --version 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 de l’outil Workflow, désactivé par défaut, en tant que primitive propriétaire d’orchestration multi-agent déterministe, avec la précision que les hooks, les tests, les barrières de revue, les budgets de création et les rapports de preuves restent la frontière de la correction.52 |
|
| 2026-05-15 | Guide v1.11 : mise à jour des sessions en arrière-plan et de la fiabilité des plugins pour Claude Code v2.1.142. La commande locale claude --version 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 recommandations pour les opérateurs concernant les nouveaux flags de répartition de claude agents, l’utilisation par défaut du mode Fast d’Opus 4.7, la découverte des fichiers SKILL.md à la racine des plugins, la visibilité LSP des plugins, le comportement HTTP/SSE distant de MCP_TOOL_TIMEOUT, ainsi que les correctifs de fiabilité des sessions en arrière-plan, des daemons et du cache des plugins.51 |
|
| 2026-05-14 | Guide v1.10 : mise à jour de la signalisation destinée aux opérateurs et du périmètre pour Claude Code v2.1.141. La commande locale claude --version et la dernière version npm de @anthropic-ai/claude-code ont toutes deux renvoyé 2.1.141 (Claude Code) et 2.1.141, respectivement. Ajout de recommandations sur les hooks pour utiliser terminalSequence comme signal destiné aux opérateurs plutôt que comme mécanisme d’application, mention de claude agents --cwd <path> pour limiter Agent View à un dossier, et documentation de l’incidence architecturale de CLAUDE_CODE_PLUGIN_PREFER_HTTPS et ANTHROPIC_WORKSPACE_ID sur l’installation des plugins et le périmètre de la fédération d’identités de charge de travail.50 |
|
| 2026-05-13 | Guide v1.9 : mise à jour de fiabilité pour Claude Code v2.1.140. La commande locale claude --version a renvoyé 2.1.140 (Claude Code). Ajout de subagent_type aux recommandations relatives aux hooks d’agents et actualisation de la section sur la gouvernance des hooks pour intégrer les correctifs de la v2.1.140 concernant ConfigChange, disableAllHooks, allowManagedHooksOnly, l’affichage des variables d’environnement dans la boîte de dialogue des autorisations, la réinitialisation du style personnalisé après la synchronisation des paramètres, le repli vers le package natif sous Windows Git Bash et le comportement de /scroll-speed.49 |
|
| 2026-05-11 | Guide v1.8 : mise à jour d’actualité pour Claude Code v2.1.139 + analyse ciblée de la sécurité et de la mémoire des agents. Vérification locale de claude --version à la version 2.1.139 et ajout des changements opérationnels de la v2.1.139 : Agent View via claude agents, boucles d’achèvement /goal, args pour les hooks de commande, PostToolUse continueOnBlock, MCP CLAUDE_PROJECT_DIR et correctif du temps d’activité OpenTelemetry.424344 Ajout d’un avertissement sur la curation de la mémoire tiré de la prépublication arXiv « The Memory Curse », de recommandations sur l’autorité humaine de fusion issues de la prépublication arXiv sur le cycle de vie des PR, ainsi que de recommandations sur la sécurité des journaux d’agents et des garde-fous tirées des avis Gryph Agents et LiteLLM.45464748 Correction, dans le tableau Skills vs Hooks vs Subagents, de la ligne obsolète relative au budget de tokens, qui passe de 2 % au budget actuel de 1 % / 8 000 caractères pour la description d’un skill. |
|
| 2026-05-09 | Guide v1.7 : suivi du 3e jour pour Claude Code v2.1.136 + openai-agents-python v0.17.0. Ajout à l’architecture des hooks d’une sous-section sur autoMode.hard_deny et les correctifs de hooks/plugins de la v2.1.136, couvrant le nouveau niveau de blocage inconditionnel, le correctif de disparition de MCP après /clear dans VS Code/JetBrains/Agent SDK, la perte du jeton d’actualisation OAuth de MCP lors d’actualisations simultanées, le correctif du blocage des écritures en mode plan lorsqu’une règle d’autorisation Edit(...) correspondait, la condition de concurrence lors du nettoyage du cache des plugins Stop/UserPromptSubmit, le masquage du dossier skills/ par défaut par l’entrée skills et l’obsolescence des variables d’environnement du hook SessionStart dans CLAUDE_ENV_FILE après /resume//clear.40 Ajout à la section sur les modèles de production d’une sous-section consacrée à l’enquête de satisfaction OTel et à CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL.40 Extension de la sous-section consacrée au sandbox avec le verrouillage d’openai-agents-python v0.17.0 : LocalFile.src / LocalDir.src sont limités à base_dir, sauf autorisation accordée via Manifest.extra_path_grants avec SandboxPathGrant.41 Ajout aux harness administrés ou auto-hébergés d’une note sur le modèle par défaut de RealtimeAgent (gpt-realtime-2).41 Changelog uniquement : Claude Code v2.1.137 (correctif d’activation de 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 du 2e jour pour Claude Code v2.1.132/v2.1.133 + SDK v0.1.77. Ajout au système de skills d’une sous-section consacrée à la surface Skill de SDK, couvrant l’option skills de ClaudeAgentOptions et l’obsolescence de "Skill" dans allowed_tools.37 Ajout à l’architecture des hooks d’une sous-section consacrée à l’effort et à la provenance des sessions, couvrant le nouveau champ JSON effort.level + la variable d’environnement $CLAUDE_EFFORT dans les entrées de hook, ainsi que la variable d’environnement CLAUDE_CODE_SESSION_ID dans les sous-processus Bash.3839 Ajout au tableau des champs de configuration des subagents du correctif de découverte des skills par les subagents (ceux-ci découvrent désormais les skills du projet, de l’utilisateur et des plugins via l’outil Skill, alors qu’ils étaient ignorés silencieusement avant la v2.1.133).39 Ajout aux modèles de production d’une sous-section consacrée à la base des worktrees, aux chemins du sandbox et aux paramètres d’administration, couvrant worktree.baseRef (rétablissement de la valeur par défaut avec rupture à origin/<default> au lieu du HEAD local), sandbox.bwrapPath, sandbox.socatPath et parentSettingsBehavior.39 |
|
| 2026-05-07 | Guide v1.5 : Agents gérés Claude, extension du 6 mai à San Francisco. Ajout de la stratégie 5 (Curation gérée de la mémoire : Dreaming, Research Preview) à la section Mémoire et contexte, avec un tableau comparant le système de fichiers comme mémoire à Dreaming.35 Ajout de l’orchestration multiagent gérée (bêta publique) et des résultats (bêta publique) au début de la section Orchestration multiagent, avec des citations verbatim de Anthropic sur les spécialistes partageant un système de fichiers et le traçage dans la console Claude, ainsi qu’un tableau comparatif avec la délibération auto-hébergée. Ajout d’une sous-section sur la diffusion des événements de hooks côté SDK, couvrant include_hook_events et HookEventMessage dans claude-agent-sdk-python v0.1.74.36 Changelog uniquement : Claude Code v2.1.124-v2.1.131 (claude project purge, --dangerously-skip-permissions pour les dossiers de projet, skill_activated invocation_trigger, correctif du formatage à l’enregistrement avec PostToolUse, correctif du blocage PreToolUse avec JSON+code de sortie 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 la v0.16.0 (7 mai) utilisant gpt-5.4-mini par défaut, supprimant la limite implicite de max_turns et ajoutant l’exécution concurrente des outils côté SDK. |
|
| 2026-05-07 | Guide v1.4 : Actualisation des mécanismes de hooks et de skills de 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 des hooks, passée de 22/26+ à 29 événements documentés ; correction du budget des descriptions de skills, passé de 2 %/16 000 à 1 %/8 000 ; passage du nombre de types de hooks de quatre à cinq avec mcp_tool ; suppression de l’affirmation non étayée d’une limite fixe de « 10 subagents en parallèle » ; et ajout d’une section publique et sûre sur la parité avec Codex, couvrant AGENTS.md, skills, hooks, plugins et les workflows explicites de subagents. |
|
| 2026-04-29 | Guide v1.3 : Extension de la couverture d’OpenAI Agents SDK dans la section Harnesses gérés ou auto-hébergés, avec la surface SDK nommée d’openai-agents Python v0.14.0 (15 avril) — SandboxAgent, Manifest, SandboxRunConfig, mémoire de sandbox avec divulgation progressive, montages d’espaces de travail (S3/R2/GCS/Azure), instantanés portables et backends clients locaux/Docker/hébergés (Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop, Vercel). Remplacement de la citation secondaire de Help Net Security par la citation principale des notes de version 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égration du runtime Claude Code en tant que bibliothèque Python) : mise à niveau de la version groupée de Claude CLI vers la v2.1.123, relèvement de la version minimale de la dépendance mcp à >=1.19.0 (les versions antérieures omettaient silencieusement CallToolResult des outils MCP intégrés au processus), correctif de l’annulation des nurseries Trio et alignement des champs de liste d’autorisation de SandboxNetworkConfig sur le SDK TS. Les améliorations SDK des v0.14.7-v0.14.8 sont documentées dans [^58]. |
|
| 2026-04-25 | Guide v1.2 : Google Cloud Next 2026 (22-24 avril) — Vertex AI rebaptisé Gemini Enterprise Agent Platform ; Agentspace intégré à Gemini Enterprise unifié ; Workspace Studio (outil sans code de création d’agents) ; plus de 200 modèles dans Model Garden, dont Anthropic Claude ; agents partenaires de Box, Workday, Salesforce et ServiceNow ; ADK v1.0 stable dans quatre langages ; Project Mariner (agent de navigation web) ; serveurs MCP gérés avec Apigee comme passerelle entre API et les agents ; 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 de MCP, .NET + Python. DevUI, l’interface accessible dans le navigateur qui visualise en temps réel l’exécution des agents et les appels d’outils, est proposée en preview aux côtés de la surface stable 1.0. Salesforce Headless 360 (15 avril, TDX) : chaque fonctionnalité de Salesforce (CRM, service, marketing, e-commerce) est exposée sous forme de commande API/outil MCP/CLI, afin que des agents comme Claude Code, Cursor et Codex puissent s’appuyer sur la plateforme sans navigateur. (TDX 2026 s’est tenu les 15 et 16 avril ; l’annonce de Headless 360 est datée du 15 avril.) MetaComp StableX KYA (21 avril) : cadre de gouvernance Know Your Agent destiné aux services financiers réglementés (paiements, conformité, gestion de patrimoine) — le premier du genre provenant d’un établissement financier agréé ; disponible sur Claude, Claude Code, OpenClaw et d’autres plateformes d’IA compatibles. Tarification des agents gérés Claude : 0,08 $ par heure de session tant qu’une session est active, sans frais d’exécution lorsqu’elle est inactive — en plus des tarifs habituels de Claude fondés sur les tokens du modèle. (D’après la page de tarification de Claude de Anthropic ; la bêta publique a été lancée le 8 avril 2026.) Memory for Managed Agents est entrée en bêta publique le 23 avril 2026 sous l’en-tête bêta managed-agents-2026-04-01. Tous les endpoints de Managed Agents nécessitent désormais cet en-tête bêta. |
|
| 2026-04-16 | Guide v1.1 : Ajout de la section Harnesses gérés ou auto-hébergés, couvrant les agents gérés Claude (bêta du 8 avril) et la séparation entre harness et calcul dans OpenAI Agents SDK (16 avril). Ajout de Scion, hyperviseur multiagent interoutils (7 avril, Google). Présentation du constat de M3MAD-Bench concernant le plafonnement des gains issus du débat. Ajout des cinq principes des agents dignes de confiance (Anthropic, 9 avril) et de la gouvernance MCP/AGENTS.md par la Linux Foundation. Référence au sandbox de skills Permiso SandyClaw. Nouveaux modèles à long terme d’Opus 4.7 : résilience aux défaillances d’outils, niveau d’effort xhigh, plafond du budget de tokens (bêta task_budget), meilleure compréhension des besoins implicites réduisant l’échafaudage CLAUDE.md. |
|
| 2026-03-24 | Publication initiale | |
| — |
Références
-
Andrej Karpathy à propos des « claws », une nouvelle couche ajoutée aux agents LLM. Discussion sur HN (406 points, 917 commentaires). ↩
-
Implémentation de l’auteur. 84 hooks, 48 skills, 19 agents, environ 15 000 lignes d’orchestration. Présentée dans Claude Code comme infrastructure. ↩↩↩↩↩↩↩↩
-
Anthropic, « Claude Code Hooks : codes de sortie ». code.claude.com/docs/en/hooks. Le code de sortie 0 autorise l’action, le code 2 la bloque et le code 1 déclenche un avertissement pour la plupart des événements ;
WorktreeCreateapplique des règles plus strictes. ↩↩↩↩↩ -
Anthropic, « Étendre Claude avec des Skills ». code.claude.com/docs/en/skills. Structure des skills, champs du frontmatter, mise en correspondance fondée sur LLM et budget de description de 1 % / 8 000 caractères. ↩↩↩↩↩↩↩
-
Anthropic, « Claude Code Sub-agents ». code.claude.com/docs/en/sub-agents. Contexte isolé, prise en charge des worktrees, équipes d’agents. ↩↩↩↩↩
-
Anthropic, « Documentation de 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-agents de l’auteur. 10 profils de recherche, machine à états en 7 phases, 141 tests. Présenté dans Délibération multi-agents. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Simon Willison, « Écrire du code ne coûte désormais presque plus rien ». Modèles d’ingénierie agentique. ↩
-
Laban, Philippe, et al., « Les LLMs se perdent dans les conversations à plusieurs tours », arXiv:2505.06120, mai 2025. Microsoft Research et Salesforce. 15 LLMs, plus de 200 000 conversations, baisse moyenne des performances de 39 %. ↩↩↩
-
Mikhail Shilkov, « Au cœur des Skills de Claude Code : structure, prompts et invocation ». mikhail.io. Analyse indépendante de la découverte des skills, de l’injection de contexte et de la section
available_skillsdu prompt. ↩ -
Code source de 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 complémentaires, conventions de nommage. ↩
-
Anthropic, « Claude Code Hooks : événements du cycle de vie ». code.claude.com/docs/en/hooks. 31 événements du cycle de vie documentés, types de hooks, comportement des matchers, hooks asynchrones, hooks HTTP, hooks de prompt, hooks d’agent et hooks d’outils MCP. ↩↩↩↩↩↩↩
-
Tutoriel de l’auteur sur les hooks de Claude Code. Création de 5 hooks de production à partir de zéro. Présenté dans Tutoriel sur les Hooks de Claude Code. ↩↩↩↩↩
-
Gestion par l’auteur de la fenêtre de contexte sur 50 sessions. Présentée dans Gestion de la fenêtre de contexte. ↩↩↩↩↩
-
Implémentation de Ralph Loop par l’auteur. Itérations avec un contexte neuf, état conservé dans le système de fichiers et budgets de spawn. Présentée dans La Ralph Loop. ↩↩↩↩↩↩↩
-
Architecture du système de délibération de l’auteur. 3 500 lignes de Python, 12 modules, déclencheur fondé sur la confiance, validation du consensus. Présentée dans Construire des systèmes d’IA : de RAG aux agents. ↩↩↩
-
Nemeth, Charlan, Défense des fauteurs de troubles : le pouvoir de la dissidence dans la vie et les affaires, 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-agents », EMNLP 2024. ↩
-
Analyse par l’auteur des fichiers AGENTS.md dans des dépôts réels. Présentée dans Modèles AGENTS.md. Voir également : blog de GitHub, « Comment rédiger un excellent agents.md : enseignements tirés de plus de 2 500 dépôts ». ↩↩↩↩↩↩↩↩
-
Méthodologie de l’auteur fondée sur la quality loop et l’evidence gate. Fait partie du système de savoir-faire Jiro. ↩
-
Anthropic, « Présentation des agents gérés de Claude ». Bêta publique lancée le 8 avril 2026. Harness en tant que service avec points de contrôle de session, sandbox intégrée et API REST. Tarification : jetons standard + 0,08 $ par heure de session. En-tête de bêta
managed-agents-2026-04-01. ↩↩ -
OpenAI, « Notes de version d’openai-agents Python v0.14.0 ». Publiée le 15 avril 2026 ; annonce relayée le 16 avril. Introduit l’interface SDK Sandbox Agents en version bêta, par-dessus le flux
Agent/Runnerexistant :SandboxAgent,Manifest(contrat de l’espace de travail),SandboxRunConfig, fonctionnalités (shell, modification du système de fichiers, inspection d’images, skills, mémoire de la sandbox, compaction), montages d’espaces de travail (local, Git, distant : S3, R2, GCS, Azure Blob, S3 Files), instantanés portables avec normalisation des chemins et préservation des liens symboliques, ainsi que sérialisation de l’état d’exécution pour la reprise. Backends :UnixLocalSandboxClient,DockerSandboxClientet clients hébergés pour Blaxel, Cloudflare, Daytona, E2B, Modal, Runloop et Vercel au moyen d’extensions facultatives. L’annonce du 16 avril est résumée par Help Net Security. ↩↩ -
Google Cloud, « Scion : hyperviseur multi-agents ». Publié en open source le 7 avril 2026. Orchestre Claude Code, Gemini CLI et d’autres agents avancés sous forme de processus isolés, chacun disposant de son propre conteneur, git worktree et identifiants. Modes de déploiement local, hub et Kubernetes. Article d’InfoQ. ↩
-
Ensemble de travaux de recherche sur le débat multi-agents, T1–T2 2026. Wu et al., « Les agents LLM peuvent-ils vraiment débattre ? » (arXiv 2511.07784) ; M3MAD-Bench — benchmark de débats multi-agents et multi-modèles montrant des plafonds de performance et une vulnérabilité aux consensus trompeurs ; Tool-MAD — attribution hétérogène d’outils à chaque agent + scores d’évaluation de fidélité et de pertinence. ↩
-
Anthropic, « Notre cadre pour développer des agents sûrs et dignes de confiance ». 9 avril 2026. Cinq principes : contrôle humain, alignement sur les valeurs, sécurité, transparence, confidentialité. Don de MCP à l’Agentic AI Foundation de la Linux Foundation. ↩↩
-
Permiso Security, « SandyClaw : première sandbox dynamique pour les Skills d’agents d’IA ». 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 apportées aux agents pour les tâches de longue durée : résolution de tâches de production SWE-Bench 3 fois supérieure à celle d’Opus 4.6, résilience aux défaillances des outils, niveau d’effort
xhigh, budgets de tâches (bêta), détection des besoins implicites. Consultez également Nouveautés d’Opus 4.7 pour connaître les changements incompatibles 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 forts de la v0.14.7 : propriétés pratiquestool_name/call_idsur les éléments d’outils, relèvement de la limite du nombre de tours pour la consolidation de la mémoire en phase 2, alias GPT-5.5 pour la compaction du sandbox, renforcement de la validation des membres tar/zip, rejet des liens symboliques dans les sourcesLocalFile, suppression des champs non définis dans les appels Responses API. Points forts de la v0.14.8 : conservation des erreurs d’importation lors de la réexportation de MCP, délimitation des sections d’instructions du prompt du sandbox. claude-agent-sdk-python v0.1.69 a ajouté des docstrings aux champs deClaudeAgentOptionset fait passer la version de CLI intégrée à la v2.1.121 ; la v0.1.70 a relevé la version minimale de la dépendancemcpà>=1.19.0(les versions antérieures ignoraient silencieusement les valeursCallToolResultrenvoyées par les gestionnaires d’outils MCP exécutés dans le processus), corrigé une corruption de la nursery Trio lors d’une annulation précoce pendant l’itération dequery()avecoptions.stderrdéfini (spawn_detached()est désormais utilisé pour le lecteur stderr), et fait passer la version de CLI intégrée à la v2.1.122 ; la v0.1.71 a ajouté des champs de liste d’autorisation de domaines (allowedDomains,deniedDomains,allowManagedDomainsOnly,allowMachLookup) àSandboxNetworkConfigafin d’assurer la parité avec le schéma TypeScript, et fait passer la version de CLI intégrée à la v2.1.123. ↩ -
OpenAI, « Instructions personnalisées avec AGENTS.md ». Codex lit les fichiers globaux et propres au projet
AGENTS.md/AGENTS.override.mdavant de commencer son travail, fusionne les directives depuis la racine jusqu’au répertoire courant et limite la taille des documents du projet selonproject_doc_max_bytes. ↩ -
OpenAI, « Agent Skills ». Les skills de Codex utilisent
SKILL.md, la divulgation progressive, l’invocation explicite par$skillet l’activation implicite à partir des descriptions. ↩ -
OpenAI, « Codex Hooks ». Les hooks de Codex prennent en charge les hooks de commande dans la configuration, les hooks de plugins, les hooks gérés, les matchers pour les événements compatibles, l’entrée JSON via stdin et les champs de sortie JSON. ↩
-
OpenAI, « Codex Subagents » et « Journal des modifications de Codex CLI 0.128.0 ». Codex prend en charge les workflows parallèles explicites de subagents, les agents intégrés
default,workeretexplorer, les agents TOML personnalisés, la stratégie de sandbox héritée, les hooks fournis avec les plugins, l’état d’activation des hooks et les workflows/goalpersistants dans la version 0.128.0. ↩ -
Anthropic, « Nouveautés de Claude Managed Agents ». 6 mai 2026. Dreaming (Research Preview) : processus planifié en arrière-plan qui examine les sessions des agents et les espaces de stockage de mémoire, en extrait des tendances et organise les souvenirs. Outcomes (Public Beta) : évaluation fondée sur une grille dans laquelle un évaluateur distinct note le résultat par rapport à cette 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 certaines parties d’une tâche à des spécialistes, chacun disposant de son propre modèle, prompt et ensemble d’outils ; les spécialistes travaillent en parallèle sur un système de fichiers partagé et alimentent le contexte global de l’agent principal, avec un traçage complet de chaque étape dans la console Claude. ↩↩↩↩↩↩↩↩
-
Anthropic,
claude-agent-sdk-pythonv0.1.74. 6 mai 2026. Ajouteinclude_hook_eventsàClaudeAgentOptions; lorsque cette option est définie, les événements de hooks (PreToolUse, PostToolUse, Stop et autres) sont émis par CLI et transmis depuis le flux de messages sous forme deHookEventMessage, à l’image deincludeHookEventsdans TypeScript SDK. La version de Claude CLI intégrée passe à la v2.1.129. ↩↩ -
Anthropic,
claude-agent-sdk-pythonv0.1.77. 8 mai 2026. Rend obsolète la valeur"Skill"dansallowed_toolsau profit d’une optionskillsdédiée dansClaudeAgentOptions, fournit à Claude Code des indications plus structurées sur les skills disponibles, améliore les messages d’erreur des 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_IDaux sous-processus de l’outil Bash (elle correspond ausession_iddéjà accessible aux hooks),CLAUDE_CODE_DISABLE_ALTERNATE_SCREENpour conserver la conversation dans l’historique natif du terminal, une bannière de démarrage actualisée pour/tui fullscreen(consommation de mémoire réduite, prise en charge de la souris, copie automatique lors de la sélection), ainsi qu’une vingtaine de corrections de bugs concernant notamment l’arrêt propre avec SIGINT, la corruption des emoji composés de paires de substitution avec--resume, l’indicateur--permission-modeen mode plan, la gestion du curseur avec les écritures indiennes et les séquences ZWJ, les opérations vim en NFD, l’absorption d’un collage commençant par/, la consommation de mémoire non bornée de MCP, la nouvelle tentative detools/listpour MCP, l’erreur 400 deENABLE_PROMPT_CACHING_1Havec Bedrock + Vertex et l’affichage parcontext_windowdans la barre d’état du cumul des tokens. ↩↩ -
Anthropic, Claude Code v2.1.133. 7 mai 2026. Les hooks reçoivent désormais l’entrée JSON
effort.levelainsi que la variable d’environnement$CLAUDE_EFFORT(également accessible depuis les commandes Bash). Les subagents découvrent les skills du projet, de l’utilisateur et des plugins par l’intermédiaire de l’outilSkill(correction d’une régression). Nouveaux paramètres d’administration :worktree.baseRef(fresh|head) rétablit la base du worktree surorigin/<default>après le passage àHEADlocal dans la v2.1.128 ;sandbox.bwrapPathetsandbox.socatPathfixent les binaires du sandbox sous Linux/WSL ;parentSettingsBehavior('first-wins' | 'merge') détermine comment lesmanagedSettingsde SDK se combinent avec les paramètres parents. Autres corrections : erreur 401 dans les sessions parallèles après une condition de concurrence lors de l’actualisation du token, portée des règles d’autorisation à la racine d’un lecteur, prise en charge du proxy/mTLS pour MCP OAuth, achèvement de l’annulation lors de l’arrêt ou de l’interruption de Remote Control, propagation de/effortentre les sessions, ajout de--remote-controldans--help. ↩↩↩↩↩↩ -
Anthropic, Claude Code v2.1.136. 8 mai 2026. Ajoute
settings.autoMode.hard_denypour les règles du classificateur du mode automatique 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 de qualité au sein de la session pour les entreprises qui recueillent les réponses via OpenTelemetry. Corrections importantes pour les opérateurs : disparition silencieuse après/clear, dans VS Code, JetBrains et Agent SDK, des serveurs MCP provenant de.mcp.json, des plugins et des connecteurs claude.ai ; perte des refresh tokens de MCP OAuth lors d’actualisations concurrentes ; mode plan n’empêchant pas les écritures de fichiers lorsqu’une règle d’autorisationEdit(...)correspondante existait ; échec des hooksStop/UserPromptSubmitd’un plugin lorsque le nettoyage du cache supprimait une version encore en cours d’exécution ; entréeskillsdansplugin.jsonmasquant le répertoireskills/par défaut du plugin ; obsolescence des variables d’environnement de hooks SessionStart définies dansCLAUDE_ENV_FILEaprès/resumeou/clear. S’y ajoutent une trentaine de corrections supplémentaires de finition et de fiabilité concernant le TUI, l’autocomplétion et le rendu du terminal. Versions associées : v2.1.137 (9 mai, correction de l’activation sous 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 fait passer la version de Claude CLI intégrée respectivement aux v2.1.136, v2.1.137 et v2.1.138. ↩↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.0. 8 mai 2026.RealtimeAgentutilise désormaisgpt-realtime-2par défaut. La matérialisation des sources locales du sandbox limite désormaisLocalFile.srcetLocalDir.srcà l’intérieur dubase_dirdu manifeste (le répertoire de travail courant du processus SDK au moment de l’application du manifeste), sauf si l’accès à la source est explicitement accordé viaManifest.extra_path_grantsavecSandboxPathGrant. Les sources locales relatives sont résolues à partir debase_dir; les sources absolues doivent déjà se trouver à l’intérieur de celui-ci ou sous un accès explicitement accordé. Migration : déclarez les racines hôtes de confiance au niveau du manifeste, de préférence en lecture seule. Considérezextra_path_grantscomme une configuration applicative de confiance ; ne la renseignez pas à partir de la sortie du modèle ou d’une entrée de manifeste non fiable. Inclut également une correction de collision avecextra_argsdans la gestion du contexte de Responses. ↩↩↩↩ -
Anthropic, Claude Code v2.1.139. Mai 2026. Preuve locale issue de la session en cours au 11 mai 2026 :
claude --versiona renvoyé2.1.139 (Claude Code). Les notes de version ajoutent Agent View (claude agents),/goal,args: string[]pour les hooks,continueOnBlockpourPostToolUse,CLAUDE_PROJECT_DIRpour les serveurs stdio MCP, l’interpolation des commandes de plugin pour${CLAUDE_PROJECT_DIR}, ainsi que des correctifs, notamment pour l’émission OpenTelemetry declaude_code.active_time.totalen mode--print. ↩↩↩↩↩ -
Anthropic, « Gérer plusieurs agents avec Agent View ». La documentation d’Agent View décrit comment répartir et gérer de nombreuses sessions Claude Code depuis un seul écran, suivre l’activité de chaque session et repérer celles qui nécessitent l’intervention d’un opérateur. La page présente Agent View comme une Research Preview et documente les limitations des sessions locales. ↩↩↩
-
Anthropic, « Hooks Claude Code ». Documentation des hooks couvrant les champs des hooks de commande,
PreToolUse,PostToolUse, le comportement des codes de sortie, les entrées et sorties des hooks ainsi que les chemins d’expansion directe des commandes slash. ↩↩ -
Base de données des avis GitHub, GHSA-f3jg-756w-gm35 / CVE-2026-45046. « Le filtre de charge utile de Gryph Agents ne supprime pas la charge utile des outils contenant des données sensibles. » Publié en mai 2026 ; décrit comment le contenu sensible des charges utiles
file-writerestait dans les journaux SQLite locaux avec le comportement de journalisation par défaut, problème corrigé dans Gryph v0.7.0. ↩↩ -
OSV, GHSA-wxxx-gvqv-xp7p / CVE-2026-40217. « LiteLLM présente une faille permettant de s’échapper de la sandbox dans le garde-fou de code personnalisé. » Publié le 11 mai 2026 ; décrit un endpoint
POST /guardrails/test_custom_codeprotégé par des droits d’administrateur, qui exécute du code Python fourni par l’utilisateur dans une sandbox artisanale, et recommande d’effectuer une mise à niveau ou de bloquer cet endpoint si celle-ci est impossible. ↩↩ -
Young Jo (seph) Chung et Safwat Hassan, « Collaborateur ou assistant ? Comment les agents de codage IA répartissent le travail au fil du cycle de vie des pull requests », arXiv:2605.08017v1, mai 2026. Le résumé présente une analyse du cycle de vie de 29 585 PR chez OpenAI, Copilot, Devin, Cursor et Claude Code, en distinguant l’autonomie opérationnelle de la gouvernance des fusions. ↩↩
-
Jiayuan Liu et al., « La malédiction de la mémoire : comment l’élargissement du rappel érode l’intention coopérative des agents LLM », arXiv:2605.08060v1, mai 2026. Le résumé présente des expériences menées sur 7 LLMs et 4 jeux pendant 500 manches, dans lesquelles l’élargissement de l’historique accessible 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_typeaux entrées des hooks d’agents et corrige les hooksConfigChange,disableAllHooks,allowManagedHooksOnly, l’affichage des variables d’environnement dans la boîte de dialogue des autorisations à partir des résultats des hooks, la réinitialisation des styles personnalisés après la mise à jour des paramètres, le mécanisme de repli pour la résolution des paquets natifs sous Windows Git Bash, ainsi que/scroll-speed. ↩↩↩ -
Anthropic, Claude Code v2.1.141. 13 mai 2026. Ajoute
terminalSequenceaux sorties JSON des hooks pour les notifications du bureau, les titres de fenêtre et les alertes sonores ;CLAUDE_CODE_PLUGIN_PREFER_HTTPSpour le clonage des sources de plugins HTTPS ;ANTHROPIC_WORKSPACE_IDpour délimiter l’espace de travail lors de la fédération des identités de charge de travail ;claude agents --cwd <path>pour filtrer les répertoires dans Agent View ; des options permettant de joindre à/feedbackles sessions des dernières 24 heures ou des 7 derniers jours ; ainsi que des correctifs associés concernant les agents, les tâches en arrière-plan, les hooks, MCP, Remote Control, la boîte de dialogue des autorisations et le rendu du terminal. Vérification effectuée pendant la session en cours 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 indiqué que la dernière version était2.1.141. ↩↩↩ -
Anthropic, Claude Code v2.1.142. 14 mai 2026. Ajoute à
claude agentsdes flags permettant de lancer des sessions en arrière-plan (--add-dir,--settings,--mcp-config,--plugin-dir,--permission-mode,--model,--effort,--dangerously-skip-permissions), fait d’Opus 4.7 le modèle par défaut du mode Fast avecCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE=1comme option de verrouillage, expose les fichiersSKILL.mdsitués à la racine des plugins en tant que skills lorsqu’aucun répertoireskills/n’existe, affiche les serveurs LSP fournis par les plugins dans leurs détails, avertit avant de remplacer une connexion d’application GitHub existante et corrige des problèmes liés àMCP_TOOL_TIMEOUT, aux worktrees des sessions en arrière-plan, à la mise en veille et au réveil du daemon, au nettoyage du daemon après une mise à niveau, au cache des plugins et à la fiabilité d’Agent View. Vérification effectuée pendant la session en cours le 15 mai 2026 :claude --versiona renvoyé2.1.141 (Claude Code)et npm a indiqué que la dernière version était2.1.142. ↩↩ -
Anthropic, Claude Code v2.1.147. 21 mai 2026. Ajoute l’outil
Workflow, désactivé par défaut, pour l’orchestration multi-agent déterministe (CLAUDE_CODE_WORKFLOWS=1), les sessions en arrière-plan épinglées,/code-review [effort] --commenten remplacement de/simplify, le renforcement de la sandbox du REPL et de Workflow, des diagnostics de mise à jour automatique, des améliorations du rendu des diffs volumineux, la déduplication de l’historique des prompts, ainsi que des correctifs concernant les restrictions de connexion en entreprise, le comportement de PowerShell, la pagination MCP, Agent View, les plugins, les conditions des hooks, le texte collé et les boucles liées aux images supprimées. Vérification effectuée pendant la session en cours 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 indiqué que la dernière version était2.1.147, avec la valeurtime.modified2026-05-21T20:38:35.053Z. ↩↩↩ -
Anthropic, Claude Code v2.1.148, v2.1.149, v2.1.150 et CHANGELOG de Claude Code. La v2.1.148 corrige une régression des codes de sortie de Bash introduite dans la v2.1.147. La v2.1.149 ajoute l’utilisation des limites par catégorie dans
/usage, le défilement au clavier dans/diff, le rendu des listes de tâches GFM etallowAllClaudeAiMcpspour les entreprises ; les correctifs concernant le harness portent notamment sur le contournement des autorisations aveccddans PowerShell, l’analyse des autorisations relatives aux préfixes, aux caractères génériques et aux variables obsolètes dans PowerShell, la portée de la liste d’autorisation d’écriture de la sandbox pour les worktrees git, l’épuisement des vnodes provoqué parfinddans Bash sous macOS, les blocages lors de l’approbation des paramètres gérés, les diagnostics liés aux espaces dans les chemins deotelHeadersHelperet la synchronisation du renommage des sessions Remote Control. La v2.1.150 concerne uniquement l’infrastructure interne. Vérification effectuée pendant la session en cours le 24 mai 2026 : la commande localeclaude --versiona renvoyé2.1.144 (Claude Code), tandis que npm a indiqué que la dernière version était2.1.150, avec la valeurtime.modified2026-05-23T04:03:10.243Z; la dernière version publiée sur GitHub étaitv2.1.150, publiée le2026-05-23T04:03:51Z. ↩↩↩ -
OpenAI,
openai-agents-pythonv0.17.1, v0.17.2 et v0.17.3. La v0.17.1 ajoute des détails sur les erreurs des fournisseurs de sandbox, des limites d’extraction des archives, la validation des sous-chemins GitRepo ainsi que des correctifs concernant le traçage, les sessions et le temps réel. La v0.17.2 corrige la persistance du raisonnement dans Conversations, les motifs de refus des approbations locales, les paramètres d’AsyncSQLiteSession et le comportement en temps réel face aux outils inconnus. La v0.17.3 évite d’inclure les identifiants des points de montage dans les commandes de sandbox, rejette les racines relatives des espaces de travail de sandbox, gère les états terminaux de la sandbox Vercel et corrige des cas limites liés au schéma de sortie, aux guardrails, au runtime et aux imports de mémoire. Vérification effectuée pendant la session en cours le 24 mai 2026 :python3 -m pip index versions openai-agentsa indiqué que la dernière version était0.17.3; la dernière version publiée sur GitHub étaitv0.17.3, publiée le2026-05-19T01:27:36Z. ↩↩ -
Claude Code Changelog (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 et commandes,/reload-skills, les sortiesreloadSkillsetsessionTitledu hookSessionStart, l’application de/code-review --fixà l’arborescence de travail, le paramètre administrépluginSuggestionMarketplaces, la suppression de l’activation explicite du mode automatique et le changement de modèle en cours de session avec--fallback-model. La v2.1.153 (28 mai) fait en sorte que/modelenregistre le modèle par défaut des nouvelles sessions, avecspour limiter le choix à la session en cours, ajouteskipLfsaux marketplaces de plugins, exposeCOLUMNS/LINESdans l’environnement de la ligne d’état et conserve les autorisations Confidentialité et sécurité accordées aux agents macOS exécutés en arrière-plan. La v2.1.154 (28 mai) adopte Opus 4.8 comme modèle par défaut avec un effort élevé par défaut et une nouvelle option/effort xhigh, introduit des workflows dynamiques via/workflows, rend le mode Fast d’Opus 4.8 disponible à un tarif multiplié par 2 pour une vitesse multipliée par 2,5, utilise par défaut le prompt système allégé pour tous les modèles à l’exception de 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 MCP stdio, et rend obsolèteCLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE(supprimé le 1er juin). ↩ -
Codex Changelog (OpenAI Developers) et versions d’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 parcours CLI/TUI/sandbox avec migration de l’ancienne configuration, amélioré la configuration de MCP grâce au ciblage de l’environnement par serveur ainsi qu’à OAuth pour les serveurs HTTP diffusables, renforcé la fiabilité des schémas d’outils des connecteurs en préservant les$ref/$defslocaux et en compactant les schémas surdimensionnés avant leur exposition, et activé l’exécution simultanée des outils MCP en lecture seule qui déclarentreadOnlyHint. Codex CLI 0.135.0 (28 mai 2026) a enrichi les diagnostics decodex doctor, affiché les détails de la connexion distante et la version du serveur dans/status, ajouté l’édition des objets textuels vim avec un comportement amélioré pour les mots et les fins de ligne ainsi qu’une interruption de tour configurable, permis à/permissionsde reconnaître les profils d’autorisation nommés, intégré un utilitaire zsh corrigé sur les versions prises en charge de macOS et Linux, et ajouté des préréglagesSandboxexplicites à Python SDK pour les APIs de thread et de tour. ↩ -
Notes de version d’Hermes Agent v0.15.0. « La version Velocity. » 1 302 commits, 747 PR fusionnées, 321 contributeurs de la communauté.
run_agent.pyrefactorisé à 76 % (16 083 → 3 821 lignes réparties dans 14 modules). Plateforme Kanban multi-agent avec décomposition automatique, topologie en essaim, choix du modèle par tâche, tâches planifiées et gestion des worktrees.session_searchrepensé pour être 4 500 fois plus rapide, avec suppression de la dépendance LLM. Défense contre les prompt injections de classe Brainworm à trois points de contrôle de sécurité. Intégration de Bitwarden Secrets Manager, qui remplace les clés propres à chaque fournisseur par un unique jeton d’amorçage. Bundles de skills permettant de 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 en amont, détection des modèles retirés, pauses naturelles pour la synthèse vocale). ↩ -
Notes de version de Claude Code v2.1.157 et Claude Code Changelog (canonique). 29 mai 2026. Les plugins placés dans le dossier
.claude/skills/d’un projet se chargent désormais automatiquement, sans marketplace ;claude plugin init <name>crée la structure d’un nouveau plugin dans ce dossier ;/pluginbénéficie désormais de l’autocomplétion des arguments. Autres nouveautés :EnterWorktreepeut basculer entre des worktrees gérés par Claude en cours de session, les worktrees en arrière-plan restent déverrouillés une fois le travail de l’agent terminé afin quegit worktree remove/prunefonctionnent correctement, et les événements de télémétrietool_decisionincluenttool_parameterslorsqueOTEL_LOG_TOOL_DETAILS=1. Cette version corrige également des bugs liés aux images impossibles à traiter (désormais remplacées par des espaces réservés textuels), aux demandes d’autorisation réseau du sandbox en mode automatique/contournement, à l’arrêt des sessions en arrière-plan lors de leur mise en attente et au rendu du terminal dans tmux / VS Code / Cursor / Windsurf. ↩↩ -
Claude Code Changelog (canonique) et notes de version de 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 sans erreur deStop/SubagentStop; la v2.1.166 (6 juin) a renforcé les droits deSendMessageentre sessions (les messages relayés ne transmettent plus les droits de l’utilisateur) et ajouté le paramètrefallbackModel(jusqu’à trois modèles de secours, avec une seule nouvelle tentative en cas d’erreur non réessayable). Codex CLI v0.137.0 (4 juin) a livré multi-agent v2 (runtime avec thread,hide_spawn_agent_metadatadéfini sur true par défaut, propagation des événements du parent vers l’enfant), une extension v1 des skills avec résolution du catalogue à chaque tour, ainsi que des événements de contributeurs liés au cycle de vie lors du démarrage d’un thread et d’une erreur de tour ; la documentation Codex sur les 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 aucune modification de spécification versionnée. Vérification effectuée dans la session en cours le 8 juin 2026. ↩↩ -
Anthropic, notes de version de 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 intégrés, les workflows et les 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 rompre le cache du prompt). La v2.1.170 permet de sélectionner Claude Fable 5 (claude-fable-5) via/model claude-fable-5, Opus 4.8 restant le modèle agentique par défaut de Claude Code. Lancement de cette gamme de modèles : Anthropic, « Claude Fable 5 », 9 juin 2026 — une gamme « de classe Mythos » supérieure à Opus, présentée comme le modèle le plus puissant de Anthropic pouvant être proposé au grand public en toute sécurité. ↩↩↩↩↩ -
OpenAI, notes de version de Codex CLI rust-v0.138.0 (8 juin 2026) et notes de version de rust-v0.139.0 (9 juin 2026). La v0.138.0 renforce multi-agent v2 avec des charges utiles chiffrées pour les messages entre agents, un catalogue v2 de configurations d’agents, un cache LRU de résidence des agents et une concurrence comptabilisée selon les exécutions actives plutôt que selon les threads créés. La v0.139.0 renomme le API de cycle de vie
close_agenteninterrupt_agentet 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 d’AGENTS.md est renforcée dans les deux versions : le chargement passe par les systèmes de fichiers des environnements et conserve les chemins logiques pendant la découverte, garantissant la sélection du bon fichier dans les espaces de travail distants et ceux utilisant des liens symboliques. ↩↩↩↩ -
Anthropic, notes de version de Claude Code v2.1.172 (10 juin 2026). Les subagents peuvent désormais créer leurs propres subagents, avec une délégation récursive jusqu’à 5 niveaux de profondeur ; auparavant, la délégation se limitait en pratique à un seul niveau. ↩↩
-
Anthropic, notes de version de Claude Code v2.1.175 et notes de version v2.1.178, 12–15 juin 2026. La v2.1.175 ajoute le paramètre administré
enforceAvailableModels(verrouille le modèle Default et empêche les paramètres utilisateur/projet d’élargir la liste d’autorisation administréeavailableModels). La v2.1.178 ajoute la syntaxe de règle d’autorisationTool(param:value), qui compare les paramètres d’entrée d’un outil à l’aide du caractère générique*(par ex.Agent(model:opus)) ; charge les skills depuis les répertoires.claude/skillsimbriqués en utilisant<dir>:<name>pour lever les ambiguïtés en cas de conflit de noms ; résout les agents, workflows et styles de sortie des dossiers.claude/imbriqués en privilégiant ceux qui sont les plus proches du répertoire de travail courant en cas de conflit (les workflows enregistrés à l’échelle du projet ciblent le dossier.claude/workflows/existant le plus proche) ; évalue la création des subagents avec le classificateur du mode automatique avant leur lancement ; et corrige la prise en compte des spécifications au niveau du serveur MCP (mcp__server,mcp__server__*,mcp__*) dansdisallowedToolsdes subagents, jusque-là ignorées silencieusement. ↩↩↩↩↩↩↩ -
OpenAI, notes de version de Codex CLI rust-v0.140.0, 15 juin 2026 (version promue comme stable depuis la branche v0.140.0-alpha). Ajoute
/importpour importer sélectivement la configuration initiale, la configuration du projet et les conversations récentes depuis Claude Code ; la suppression définitive des sessions viacodex delete,/deleteet la commande app-serverthread/delete, avec des mécanismes de confirmation ; un menu unifié de mentions@pour les fichiers, les plugins et les skills ; ainsi que des vues de l’activité des tokens dans/usage. ↩↩ -
Anthropic, notes de version de Claude Code v2.1.183, 19 juin 2026 — le mode automatique bloque les commandes git destructrices (
git reset --hard,git checkout -- .,git clean -fd,git stash drop) lorsque vous n’avez pas demandé d’abandonner le travail,git commit --amendsur des commits non créés par l’agent pendant cette session, ainsi queterraform destroy/pulumi destroy/cdk destroy, sauf si vous avez demandé l’opération pour la stack concernée. OpenAI, notes de version de Codex CLI rust-v0.141.0, 18 juin 2026 (version promue comme stable depuis la branche v0.141.0-alpha) — les exécuteurs distants utilisent des canaux de relais Noise authentifiés et chiffrés de bout en bout ; l’exécution distante multiplateforme préserve les répertoires de travail et les shells natifs des exécuteurs ; TLS prend en charge les signatures de certificats P-521 pour les proxys d’entreprise. ↩↩↩ -
Journal des modifications de Claude Code (canonique) — v2.1.193 (25 juin 2026) : paramètre
autoMode.classifyAllShell; motifs de refus du mode automatique dans la transcription, la notification et/permissions. v2.1.195 (26 juin 2026) : les matchers de hooks comportant des identifiants avec traits d’union (p. ex.code-reviewer,mcp__brave-search) utilisent désormais une correspondance exacte plutôt qu’une recherche de sous-chaîne ; utilisezmcp__brave-search__.*pour faire correspondre tous les outils d’un serveur MCP dont le nom contient un trait d’union. Notes de version de Codex CLI v0.142.2 (25 juin 2026) : les commandes PowerShell contenant des régions AST exécutables que le classificateur de sécurité ne peut pas inspecter nécessitent désormais une approbation. Vérifié auprès des deux sources canoniques les 1er et 2 juillet 2026 (PST). ↩↩↩ -
Journal des modifications de Claude Code (canonique) et versions GitHub. v2.1.196 (29 juin 2026) : modèles par défaut à l’échelle de l’organisation (définis par l’administrateur et affichés comme « Org default » dans
/model) ;claude mcp list/getne lancent plus les serveurs.mcp.jsonauto-approuvés par le dépôt dans les espaces de travail non fiables. v2.1.197 (30 juin) : Claude Sonnet 5 devient le modèle fourni par défaut (contexte natif de 1M, tarif promotionnel de 2 $/10 $ jusqu’au 31 août). v2.1.198 (1er juillet) : les subagents s’exécutent en arrière-plan par défaut ; l’agent Explore intégré hérite du modèle de la session (avec Opus comme plafond) ; les subagents et la compaction héritent de la configuration de réflexion étendue de la session ; après un travail sur le code dans une worktree, les sessionsclaude agentsen arrière-plan effectuent un commit, poussent les modifications, ouvrent une PR en brouillon et déclenchent le hookNotificationavecagent_needs_input/agent_completed; l’assistant/agentsa été supprimé (modifiez directement.claude/agents/ou demandez à Claude). v2.1.199 (2 juillet) : les appels empilés de slash-skills chargent jusqu’à 5 skills placés en tête ; les erreurs d’acheminement deSendMessagecausées par la réutilisation du nom d’un agent sont détectées ; les hooksSessionStart/Setup/SubagentStartaffichent stderr lorsque le code de sortie est 2. v2.1.200 (3 juillet) : le mode d’autorisationdefaultest libellé « Manual » dans CLI,--help, VS Code et JetBrains, tandis quemanualest accepté en plus de la valeur de configuration inchangée ; par défaut, les boîtes de dialogueAskUserQuestionne poursuivent plus automatiquement l’exécution. v2.1.202 (6 juillet) : une commande « Dynamic workflow size » dans/config;/review <pr>revient à une revue en une seule passe, tandis que/code-review <level> <pr#>exécute la passe multi-agent. Le paquet Anthropicclaude-agent-sdkest en v0.2.111 (6 juillet 2026 ; inclut Claude CLI v2.1.202) et le paquet TypeScript@anthropic-ai/claude-agent-sdken v0.3.203 ; les branches 0.2.x / 0.3.x apportent des évolutions incrémentales à l’interface 0.1.x documentée (les travaux récents portent sur le nettoyage des sous-processus et la fiabilité du flux NDJSON). Vérification effectuée pendant la session actuelle le 7 juillet 2026 (PST). ↩ -
Journal des modifications de Claude Code (canonique), versions GitHub v2.1.207 et v2.1.208, ainsi que Nouveautés de Claude Code. Juillet 2026. v2.1.203–v2.1.206 (début juillet) : une règle du mode automatique bloque la falsification des fichiers de transcription ; les notifications des tâches en arrière-plan indiquent explicitement qu’aucune intervention humaine n’a eu lieu pendant leur exécution ; MCP
roots/listinclut les répertoires de travail supplémentaires de la session avec des notificationsroots/list_changed;/doctorpropose d’élaguer le contenu de CLAUDE.md pouvant être déduit de la base de code ; la v2.1.204 a également corrigé le streaming deSessionStarten mode headless. v2.1.207 : disponibilité générale du mode automatique sur Amazon Bedrock, Google Vertex AI et Microsoft Foundry, avec le paramètre gérédisableAutoModepour le désactiver ;CLAUDE_CODE_PROCESS_WRAPPERpour les lanceurs de processus d’entreprise ; tours d’utilisation des outils jusqu’à 7 fois plus rapides avec un nombre élevé d’outils MCP et transcriptions de session 79 fois plus petites. v2.1.208 : les demandes de confirmation pour les suppressions catastrophiques restent affichées malgré--dangerously-skip-permissionset le mode automatique. ↩↩↩↩↩↩↩↩ -
Journal des modifications de Claude Code (canonique) et versions GitHub v2.1.210, v2.1.211 et v2.1.212. Juillet 2026. v2.1.210 : les subagents isolés dans une worktree ne peuvent plus modifier le checkout principal ; Agent tool renforcé contre l’injection indirecte de prompts provenant du contenu lu par un subagent ; le classificateur du mode automatique utilise Sonnet 5 par défaut, avec une version fixée pour chaque session ; les écritures dans
MEMORY.mddépassant la limite de taille produisent une erreur au lieu d’être silencieusement tronquées. v2.1.211 : les décisionsaskdu hookPreToolUseimposent au minimum une demande d’autorisation — le mode automatique ne peut pas la remplacer par une autorisation pour Bash hors sandbox ;--forward-subagent-text/CLAUDE_CODE_FORWARD_SUBAGENT_TEXTtransmet le texte des subagents dans la sortie stream-json ; les règles « always allow » sont conservées à la racine du dépôt dans toutes les worktrees ; les aperçus d’autorisation neutralisent les caractères de remplacement bidirectionnel, à chasse nulle et similaires visuellement. v2.1.212 : plafond de création de subagents par session (200 par défaut,CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION, réinitialisé par/clear) ; plafond de WebSearch par session (200,CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION) ; paramètremodede Task tool obsolète au profit de l’héritage du mode d’autorisation de la session parente ;/forkcrée une nouvelle session en arrière-plan et sa variante au sein de la session est renommée/subtask; les appels MCP dépassant 2 minutes basculent automatiquement en arrière-plan (CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS). ↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Anthropic, versions TypeScript v0.3.205–v0.3.208 de
@anthropic-ai/claude-agent-sdk. Juillet 2026. Accusés de réception typés pour les interruptions (UUIDstill_queued; capacitéinterrupt_receipt_v1annoncée danssystem/init) ; framescommand_lifecycleindiquant l’état queued/started/completed/cancelled/discarded de chaque message ; typeAgentToolCompletedOutput;canUseToolpeut renvoyer{behavior: 'allow'}sansupdatedInput. Correctif de sécurité dans la v0.3.208 : l’abandon demandé par un appelant pendant l’exécution d’un hook en attente était converti en réussite du hook, ce qui pouvait permettre l’exécution d’outils contrôlés par un hookPreToolUseaprès l’abandon de l’appelant. ↩↩↩ -
Model Context Protocol, PR nº 3002. Fusionnée le 16 juillet 2026 dans le projet de spécification. Ajoute un objet facultatif
io.modelcontextprotocol/serverInfodans la réponse_metaet rendclientInfofacultatif dans les requêtes, rétablissant l’identité du serveur après la suppression par SEP-2575 du handshake d’initialisation avec état dans le noyau sans état. Cette identité est autodéclarée et non vérifiée : elle est destinée uniquement à l’affichage et à la journalisation et NE DEVRAIT PAS orienter les décisions de sécurité. La révision sans état de la spécification a été publiée le 28 juillet 2026 et constitue la révision actuelle de la spécification (nouvelle vérification le 12 août 2026). ↩↩ -
OpenAI, versions de Codex CLI rust-v0.143.0, rust-v0.144.0 et rust-v0.144.5. Juillet 2026. v0.143.0 : les outils MCP sont chargés par défaut via la recherche d’outils (chargement différé des outils plutôt que chargement préalable des schémas). v0.144.0 : nouveau mode d’approbation des applications
writes— les actions en lecture seule s’exécutent sans demande, tandis que les écritures nécessitent une approbation — et disponibilité générale de l’authentification interactive MCP. v0.144.5 : détection étendue des commandes dangereuses. ↩↩ -
OpenAI,
openai-agents-pythonv0.18.2 (11 juillet 2026) etopenai-agents-jsv0.13.2 (10 juillet 2026). Les deux versions ajoutent la prise en charge multi-agent hébergée en bêta — une orchestration de plusieurs agents gérée par OpenAI sous forme de service hébergé, pendant de la bêta publique Managed Multiagent Orchestration de Anthropic. ↩↩ -
Journal des modifications de Claude Code (canonique), v2.1.214–v2.1.216, juillet 2026. v2.1.214 : les règles d’autorisation et les conditions
if:des hooks utilisant des motifs de chemindir/**à segment unique sont désormais ancrées sur<cwd>/dir(écrivez**/dir/**pour toutes les profondeurs) ; auparavant, les règles d’autorisation commeEdit(src/**)étaient automatiquement approuvées pour tout dossierdir/imbriqué dans l’arborescence ; les règles de refus et de demande conservent la correspondance à toutes les profondeurs. Également : outilEndConversation; série de mesures de renforcement des autorisations Bash/PowerShell avec blocage par défaut en cas d’échec ; le code de sortie 2 d’un hook bloque l’opération même lorsque la validation du schéma de stdout JSON échoue ; horodatages ISOmodifieddans le frontmatter de la mémoire sans troncature silencieuse ; OTelmessage.uuid,client_request_id,tool_sourceetCLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH. v2.1.215 : les skills/verifyet/code-reviewintégrés ne s’invoquent plus eux-mêmes — invocation explicite uniquement. v2.1.216 : les subagents isolés dans un worktree ne peuvent plus rediriger git vers le checkout partagé au moyen degit -C,--git-dirouGIT_DIR/GIT_WORK_TREE; les sessions de worktree ne se résolvent plus vers un ancien worktree résiduel d’un autre projet ; l’écriture de workflows et de tâches planifiées est refusée si un lien symbolique.claudepointe hors du projet ;/rewindne traverse plus les liens symboliques ni les liens physiques ;sandbox.filesystem.disabledpermet un sandboxing limité aux sorties réseau ; les sessions d’agent en arrière-plan reprises restaurent le prompt et les restrictions d’outils de l’agent ; les modifications apportées aux skills et aux commandes en cours de session apparaissent dans le menu des commandes slash sans redémarrage. Vérifié par rapport au journal des modifications canonique le 21 juillet 2026 (PST). ↩↩↩↩↩ -
Anthropic, versions v0.3.214–v0.3.216 de
@anthropic-ai/claude-agent-sdkTypeScript etclaude-agent-sdkPython v0.2.124. Juillet 2026. TypeScript :set_permission_moderejette les modes inconnus ;aborted: truesur les messages tronqués par une interruption ;tool_progresscontientsubagent_typeetsubagent_retry; sous-type de notification de tâchescheduled-trigger; source"fork"deSessionStart; métadonnées annexestool_result_metaavecnon_execution_kindetuser_feedback; nombre facultatifskippedLinksdans les réponsesrewindFiles; champs facultatifsuser_message_uuidetrequest_sent_wall_msdans le message de résultat indiquant la réussite. Python v0.2.124 (Windows, classe BatBadBut) : refuse de lancer les fichiers.bat/.cmd; les métacaractèrescmd.exedans les valeursresume/session_iddéclenchent uneValueError; les valeursextra_argscommençant par un tiret sont liées sous la forme--flag=value. ↩↩↩ -
OpenAI, notes de version de Codex CLI rust-v0.145.0, juillet 2026. Stabilise l’interface multi-agent V2 facultative (modèles des subagents, niveaux de raisonnement et concurrence configurables ; rôles d’agent rétablis) ; étend
/importafin de migrer les paramètres, les serveurs MCP, les plugins, les sessions, les commandes et les mémoires propres au projet depuis Claude Code et Cursor. Renforcement : délais d’expiration au démarrage de MCP, actualisations de OAuth sérialisées, découverte de OAuth non bloquante, détection plus robuste des suppressions forcées par rm, motifs de rejet préservés et historique paginé expérimental des fils de discussion. ↩↩ -
Model Context Protocol, PR de documentation de la version de la spécification #3064, #3066 et #3098, fusionnées le 21 juillet 2026 avant la publication de la spécification le 28 juillet. La révision finalisée présentera Tasks comme une extension facultative
io.modelcontextprotocol/tasksplutôt que comme une fonctionnalité principale, et rend obsolète le transport HTTP+SSE au profit de Streamable HTTP. ↩ -
Journal des modifications de Claude Code (canonique), v2.1.217, 21 juillet 2026. Par défaut, les subagents ne lancent plus de subagents imbriqués — définissez
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTHpour autoriser une imbrication plus profonde ; nouveau plafond du nombre de subagents exécutés simultanément (20 par défaut,CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS), afin qu’un message ne puisse pas créer sans limite des agents en arrière-plan ;--max-budget-usdarrête désormais effectivement les subagents en arrière-plan — une fois le plafond atteint, les nouveaux lancements sont refusés et les agents déjà en arrière-plan sont interrompus ; l’isolation des sessions en arrière-plan canonicalise les dossiers de travail accessibles par des liens symboliques, éliminant ainsi une possibilité de sortie du dossier de l’espace de travail. Vérifié par rapport au journal des modifications canonique le 22 juillet 2026 (PST). ↩↩ -
Anthropic,
claude-agent-sdkPython v0.2.125 et@anthropic-ai/claude-agent-sdkTypeScript v0.3.217, 21 juillet 2026. Python v0.2.125 intègre CLI v2.1.217 sans modification de l’interface SDK ; TS v0.3.217 est publié en parallèle. Les deux héritent des nouvelles valeurs par défaut de CLI pour l’imbrication et la concurrence des subagents. ↩ -
Model Context Protocol, PR #3092, fusionnée le 21 juillet 2026. Correction normative alignant les codes d’erreur de SEP-2575 sur le schéma de brouillon renuméroté et la suite de conformité, dans le cadre de la préparation de la publication de la spécification du 28 juillet 2026. ↩
-
Anthropic Engineering, « Comment nous confinons Claude dans l’ensemble de nos produits », 25 mai 2026. Trois modèles de confinement adaptés aux interfaces des produits : conteneurs gVisor éphémères avec systèmes de fichiers par session côté serveur (claude.ai) ; sandboxing du système d’exploitation avec intervention humaine (Claude Code : Seatbelt sur macOS, bubblewrap sur Linux et
sandbox-runtime, publié en open source) ; machines virtuelles hermétiques sur les hyperviseurs de la plateforme (Claude Cowork : framework Apple Virtualization sur macOS, HCS sur Windows, avec uniquement l’espace de travail et.claudemontés). Principes de conception : confiner d’abord au niveau de l’environnement, puis orienter au niveau du modèle ; adapter la robustesse de l’isolation à la capacité de supervision de l’utilisateur ; préférer des primitives éprouvées (hyperviseurs, seccomp, environnements d’exécution de conteneurs) à du code d’isolation personnalisé ; considérer la configuration locale au projet et les sorties des outils comme non fiables ; conserver les identifiants hors du sandbox grâce à des jetons propres à chaque session, à portée limitée et révocables indépendamment, ce qui est appliqué dans Cowork par un proxy MITM défensif à l’intérieur de la VM, lequel rejette les requêtes ne contenant pas le jeton attribué à cette VM. ↩↩ -
Journal des modifications de Claude Code (canonique), v2.1.218, 22 juillet 2026. Les vérifications concernant les commandes rm dangereuses, l’exécution en arrière-plan avec
&et les chemins Windows suspects n’ouvrent plus de boîtes de dialogue d’autorisation — le classificateur du mode automatique statue à leur sujet ; en mode plan avec le mode automatique, aucune confirmation n’est plus demandée pour les commandes Bash dont l’analyseur statique ne peut prouver qu’elles sont en lecture seule — le classificateur les évalue ; les hooks définis dans le frontmatter d’un agent exigent que la confiance accordée à l’espace de travail ait été acceptée pour le dossier contenant le fichier de cet agent ; les skills aveccontext: forks’exécutent par défaut en arrière-plan (background: falsepermet de désactiver ce comportement pour chaque skill) ;/code-reviews’exécute comme un subagent en arrière-plan ;/deep-researchne démarre que lorsqu’il est invoqué manuellement ; la filiation des sessions fork est préservée après la compaction dans les sessions headless et SDK ; le passage en arrière-plan avecCtrl+Bapplique les mêmes plafonds de shell en arrière-plan que les autres méthodes. Vérifié par rapport au journal des modifications canonique le 24 juillet 2026 (PST). ↩ -
Anthropic,
@anthropic-ai/claude-agent-sdkTypeScript v0.3.218 etclaude-agent-sdkPython v0.2.126, 22 juillet 2026. TypeScript : indicateurSkillToolOutput.background;api_error_statussignale les erreurs 429/529 survenant en cours de flux ;canonicalModeletproviderdansmodelUsage. Python :ResultMessage.terminal_reason; entréesmodel_usagetypées aveccanonicalModel/provider; intègre CLI v2.1.218. ↩ -
Changelog de Claude Code (référence canonique), v2.1.219 (24 juillet 2026) et v2.1.220 (25 juillet 2026). v2.1.219 : « Les subagents peuvent désormais créer des subagents imbriqués jusqu’à une profondeur de 3 par défaut (contre 1 auparavant) ; définissez
CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH=1pour désactiver l’imbrication » ; ajout de Claude Opus 5 (claude-opus-5) comme modèle Opus par défaut — contexte de 1M, mode rapide à 10 $/50 $ par MTok ;sandbox.network.strictAllowlistrefuse les hôtes absents de la liste d’autorisation pour les commandes exécutées dans la sandbox, sans demander de confirmation ; nouveau hookDirectoryAddeddéclenché après que/add-dirou la requête de contrôleregister_repo_rootde SDK enregistre un répertoire de travail en cours de session ; les workflows dynamiques suivent par défaut une recommandation de taille moyenne (« visez moins de 15 agents »), configurable depuis n’importe quel fichier de paramètres viaworkflowSizeGuideline(la ligne/configdisparaît lorsqu’une valeur est définie) et affichée dans la ligne d’état du workflow en cours ; transfert des subagents imbriqués dans stream-json — les subagents de profondeur 2 et plus apparaissent sous--forward-subagent-text, indexés par l’identifianttool_usede l’Agent qui les a créés ;mcp_server_errorsdans l’événement d’initialisation stream-json en mode headless répertorie les entrées--mcp-configignorées lors de la validation de la configuration, avec un avertissement au démarrage dans les exécutions depuis le terminal ; affichage du statut HTTP et du texte d’erreur dansclaude mcp listet/mcpen cas d’échec de connexion, ainsi qu’un avertissement pour les valeurs de configuration MCP comportant des espaces invisibles en début ou en fin ; les entrées${VAR}des listes d’autorisation et de refus MCP gérées sont résolues à partir de l’environnement de démarrage et de celui des paramètres gérés, plutôt que de l’environnement du fichier de paramètres ;claude -pne supprime plus le texte déjà produit lorsqu’un tour échoue à cause d’une erreur API survenant en cours de flux ;CLAUDE_CODE_GIT_BASH_PATHest ignoré avec un avertissement lorsque le chemin ne pointe pas vers un binaire bash/sh ; Opus 4.7 a été retiré du mode rapide (/fasts’applique désormais à Opus 5 et Opus 4.8) ; le skill claude-api intégré utilise Opus 5 par défaut et propose un parcours de migration depuis Opus 4.8. v2.1.220 : uniquement des corrections de bugs et des améliorations de fiabilité. Le repli du mode automatique de Fable-5 vers « le meilleur modèle Opus disponible » remonte à la v2.1.176 et sélectionne désormais Opus 5. Vérifié dans le changelog canonique le 25 juillet 2026. ↩↩↩↩↩↩↩↩↩↩ -
Anthropic,
@anthropic-ai/claude-agent-sdkTypeScript v0.3.219 et v0.3.220 ;claude-agent-sdkPython v0.2.127 et v0.2.128. 24–25 juillet 2026. TypeScript v0.3.219 : ajout de l’événement de hook de cycle de vieDirectoryAddedau protocole de contrôle ; l’option facultativecancel_queuedde la requête de contrôle d’interruption (capacitéinterrupt_cancel_queued_v1) annule les messages en file d’attente et en attente de répartition en plus de l’interruption ; ajout defast_mode_disabled_reasonaux messages de résultat et d’initialisation ; après un changement de modèle, la réponse d’initialisation ne renvoie plus lefast_mode_statedu modèle utilisé lors du lancement ; ajout desandbox.network.strictAllowlistetworkflowSizeGuidelineaux types de paramètres de SDK. Python v0.2.127 : correction de la fermeture prématurée de stdin alors que des tâches d’arrière-plan étaient encore en cours —query()fermait stdin dès la première trameresultalors que des subagents d’arrière-plan étaient toujours actifs, ce qui faisait échouer leurs appels d’outils SDK-MCP avec"Stream closed"et contournait silencieusement les hooksPreToolUse; stdin reste désormais ouvert jusqu’à ce que toutes les tâches en cours soient terminées et que la trame de résultat finale soit arrivée (#1103). v0.3.220 / v0.2.128 : mises à niveau de parité avec CLI v2.1.220. ↩↩↩↩ -
Vérification des registres, 12 août 2026 :
pypi.org/pypi/claude-agent-sdk/jsonrenvoie la version 0.2.137 ;registry.npmjs.org/@anthropic-ai/claude-agent-sdkrenvoie le dist-tag latest 0.3.229. ↩↩ -
Notes de publication de Claude Code v2.1.224, 7 août 2026 (
SendMessage/ListAgentsentre sessions,crossSessionInbound, runners auto-hébergés), avec le contrat de la fonctionnalité sur code.claude.com/docs/en/cross-session-messaging ; et Le mode automatique devient le mode par défaut dans Claude Code pour les offres Pro, Max et Team, Anthropic, 7 août 2026 — prise d’effet le 14 août 2026 ; désactivez-le pour la session avec Maj+Tab, définissez-le avecdefaultModeou désactivez-le dans toute l’organisation avecdisableAutoMode. ↩↩↩↩ -
Documentation sur les subagents et notes de publication de Claude Code v2.1.232. Extrait exact de la documentation : « Un fork est un subagent qui hérite de l’intégralité de la conversation jusqu’à cet instant au lieu de repartir de zéro. Il supprime ainsi l’isolation des entrées que les subagents assurent normalement : un fork voit le même prompt système, les mêmes outils, le même modèle et l’historique des messages que la session principale » ; « Les appels d’outils propres au fork restent néanmoins absents de votre conversation, et seul son résultat final vous est renvoyé » ; « Claude Code active par défaut le mode fork dans les sessions interactives et le laisse désactivé par défaut en mode non interactif avec
-painsi que dans l’Agent SDK. La valeur par défaut interactive nécessite Claude Code v2.1.232 ou une version ultérieure. » Repli du modèle des coéquipiers selon la documentation sur les équipes d’agents : «teammateDefaultModela été supprimé dans la v2.1.234… Indiquez le modèle dans votre prompt ou définissez plutôtCLAUDE_CODE_SUBAGENT_MODEL», les coéquipiers utilisant sinon « le modèle actuel du responsable ». Consulté le 18 août 2026. ↩↩ -
Agent Plugins: The Portable Agent Plugin Standard, version 1.0.0 de la spécification, publiée le 6 août 2026. Autodescription : « le format de paquet portable pour les agents d’IA ». Manifeste
plugin.jsonobligatoire ;skills/facultatif (chaque sous-répertoire immédiat contenant unSKILL.mdconstitue un Agent Skill) ;mcp.jsonfacultatif (stdio, Streamable HTTP, ancien HTTP+SSE) ; espaces de noms clients en domaine inversé. Clients disponibles au lancement : VS Code, Cursor, GitHub Copilot, ChatGPT & Codex, Kiro ; spécification élaborée par Amazon, Anysphere, GitHub, Microsoft, OpenAI et Vercel, Google ayant rejoint les mainteneurs le jour du lancement. Anthropic ne fait pas partie de la coalition. ↩↩ -
claude-agent-sdksur PyPI et son CHANGELOG ;@anthropic-ai/claude-agent-sdksur npm. Vérifié le 1er août 2026 : Python 0.2.128 (changelog : « Mise à jour du CLI Claude intégré vers la version 2.1.220 » ; nécessitemcp<2.0.0,>=1.23.0), TypeScript 0.3.220 (publiée le 24 juillet 2026, « parité avec Claude Code v2.1.220 »). Les chiffres précédemment indiqués dans ce paragraphe (Python v0.2.111 intégrant CLI v2.1.202, TypeScript v0.3.203) accusaient un retard de 17 versions sur chaque ligne, tandis que le reste de ce guide suivait déjà les versions 0.2.128 et 0.3.220. ↩↩↩ -
Anthropic, « Présentation de Claude Opus 5 ». 24 juillet 2026.
claude-opus-5; « 5 $ par million de tokens en entrée et 25 $ par million de tokens en sortie » ; le mode rapide fonctionne « environ 2,5 fois plus vite que la vitesse par défaut » pour « deux fois le prix de base d’Opus 5 » (10 $/50 $ par MTok selon le changelog de Claude Code v2.1.219, qui indique également la fenêtre de contexte de 1M). Benchmarks : « Sur Frontier-Bench v0.1, Opus 5 surpasse tous les autres modèles et fait plus que doubler les performances d’Opus 4.8 » ; sur CursorBench 3.2, il se situe « à moins de 0,5 % du meilleur score de Fable 5, mais pour la moitié du coût » ; « Sur ARC-AGI 3… le score d’Opus 5 est trois fois supérieur à celui du deuxième meilleur modèle » ; sur OSWorld 2.0, il dépasse « le meilleur résultat de Fable 5 pour un peu plus d’un tiers du coût ». Il est décrit comme « un modèle réfléchi et proactif », « bien plus performant pour vérifier son travail et procéder à des itérations minutieuses ». ↩↩