Contexte et mise en œuvre
Claude Code 2.1.277 a introduit la prise en charge du fichier AGENTS.md comme source d’instructions pour les agents. Le chargeur est implémenté sous forme de plugin intégré nommé agents‑md. Dans le bundle 2.1.280, l’enregistrement du plugin se présente ainsi :
var W = !1; var B = () => Oa("tengu_agents_md_mod", W); var H = "AGENTS.md as project instructions: by default loaded where the project has no CLAUDE.md; ...";Le drapeau W représente isOnByDefault et vaut false. La fonction B interroge le flag distant tengu_agents_md_mod, dont la valeur de secours est également false. Si le client ne parvient pas à récupérer ce flag, le plugin est considéré comme indisponible et le fichier local n’est jamais lu, même si aucune connexion réseau n’est requise pour accéder à AGENTS.md.
Méthodologie de test
L’auteur a créé un répertoire vierge contenant uniquement AGENTS.md avec la phrase « The canary word is PERIWINKLE. ». En lançant claude -p avec la requête « What is the canary word … », il a observé le comportement en deux sessions : la première récupère le flag, la seconde utilise le résultat. Les variables d’environnement CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 et DISABLE_TELEMETRY=1 désactivent toutes deux le flag, empêchant le chargement du fichier. Mettre ces variables à 0 n’a aucun effet, et un blocage persiste même lorsqu’un fichier .claude/settings.json les réinitialise.
Résultats et analyse
Lorsque l’une des deux variables est active, aucune lecture d’AGENTS.md ne se produit et aucune alerte n’est affichée. Le modèle répond simplement sans tenir compte des instructions du fichier, ce qui conduit les utilisateurs à croire à une mauvaise formulation de leur prompt. Le problème se reproduit sur les passerelles tierces (Bedrock, Vertex) car le flag ne peut pas être résolu dans ces environnements. Cette dépendance à un flag distant pour une opération purement locale introduit un point de défaillance inutile : la désactivation volontaire de la télémétrie, souvent imposée par les politiques de confidentialité, supprime une fonctionnalité annoncée sans explication.
Contournement et recommandations
Le contournement proposé consiste à créer un fichier CLAUDE.md contenant une importation de type @AGENTS.md. Cette ligne unique force la lecture du fichier même avec la télémétrie désactivée :
echo '@AGENTS.md' > CLAUDE.mdCette solution ajoute toutefois un fichier supplémentaire, contrecarrant l’objectif initial d’AGENTS.md. L’auteur suggère deux améliorations : (1) que le flag, lorsqu’il ne peut être récupéré, retombe sur le comportement documenté (lecture du fichier) ou, au minimum, affiche un avertissement explicite ; (2) l’introduction d’un AGENTS.md global (par ex. ~/.claude/AGENTS.md) similaire à la prise en charge existante dans Codex, afin d’éviter la duplication de fichiers dans chaque dépôt. En attendant, l’utilisation d’un CLAUDE.md avec import et d’un lien symbolique pour les compétences partagées constitue la meilleure pratique.