惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 司徒正美
D
Docker
B
Blog
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
U
Unit 42
S
SegmentFault 最新的问题
小众软件
小众软件
J
Java Code Geeks
美团技术团队
腾讯CDC
MyScale Blog
MyScale Blog
爱范儿
爱范儿
H
Help Net Security
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
博客园 - 【当耐特】

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Pourquoi votre sub-agent ne charge pas la même mémoire qu...
Michel Faure · 2026-06-06 · via DEV Community

Le commit qu'aucun parent n'aurait passé

18 mai, fin d'après-midi. Je délègue à un sub-agent un chantier d'autosend de premiers contacts, six fichiers à toucher. Le brief tient en quinze lignes, phase 0 nommée, commandes d'audit listées avant tout INSERT. Trois quarts d'heure plus tard, retour : committed to main. Je relis deux fois. Je lance git log --oneline -5 et je trouve 3756e63, un commit feature posé sur la branche par défaut, sans branche, sans PR, sans tag [workaround-assumed]. Trente minutes de cherry-pick, de reset et de PR rétroactive, comme si rien n'était.

Ce qui cuit, c'est que cette classe d'incident, je l'avais eue dix jours plus tôt. Le 14 mai, un commit à moi était parti sur la mauvaise branche après qu'un git checkout antérieur a été silencieusement annulé entre deux tours. J'avais écrit la règle le soir même, feedback_git_branch_check_avant_commit.md, deux paragraphes : "avant tout commit non-trivial, taper git branch --show-current". Je la consulte mécaniquement depuis. Le sub-agent qui a poussé 3756e63 ne l'avait jamais lue.

Ce que la mémoire d'un parent ne transmet pas

Mon modèle mental était faux. Je m'imaginais une hiérarchie où la mémoire user-scope que je consulte — cent vingt feedbacks à l'heure où j'écris ces lignes — descendait par héritage vers les agents délégués. Comme si appeler un sub-agent revenait à lui tendre une boîte d'outils déjà ouverte, mes règles dedans.

La réalité est plus crue. Un sub-agent opère dans sa propre sandbox de contexte. Il reçoit le brief que je lui écris, éventuellement un sous-ensemble de rules projet-scope rattachées au répertoire de travail, mais pas l'index user-scope du parent. Aucune transitivité. La règle que je traite comme load-bearing, celle dont la violation produit l'incident, est opérationnellement absente pour le délégué si elle n'est pas inlinée dans le brief.

L'asymétrie reste invisible tant que j'opère seul. Le parent charge sa mémoire, applique ses règles, le système tient. Elle devient un trou structurel dès que je délègue, et plus la délégation est répétée, plus la classe d'incident est probable. La mémoire d'un agent ne se transmet pas par héritage. Elle se transmet par briefing explicite, ou pas du tout.

Tous les feedbacks ne pèsent pas pareil

Certes, on pourrait objecter qu'inliner tous les feedbacks dans chaque brief reviendrait à reconstruire un index complet à chaque appel, et qu'aucun sub-agent ne lirait un brief de deux mille mots avec attention. L'objection est juste, et la règle ne demande pas cela.

La plupart de mes feedbacks ne sont pas équivalents. Certains sont génériques — ma préférence pour le français, ma signature de commit, mes goûts typographiques. D'autres portent un invariant structurel dont la violation produit un incident immédiat ou différé : vérifier la branche avant chaque commit non-trivial, jamais de bulk DELETE sans pré-flight count récent, audit DB matériel avant tout test contrat. Ceux-là, je ne les saute pas. Le critère tient en une phrase : un feedback est load-bearing pour une tâche si, pour le parent, sauter cette règle aurait produit l'incident qu'on cherche à éviter. Un coût de récupération qui vaut la peine pour le parent est un coût de briefing qui vaut la peine pour le délégué.

L'amendement R9, dans son texte

J'ai posé l'amendement dans la version 0.7 du toolkit :

R9 amendment — The brief must inline (or path-reference) the
user-scope feedbacks the parent treats as load-bearing for
this task. Sub-agents do not transitively inherit the parent's
memory index — what is not in the brief is operationally absent.

Trois cas d'application reviennent. Agent qui touche au git : inliner le feedback branch-check. Agent qui touche aux opérations bulk DB : inliner le pre-flight count et la whitelist de sources safe. Agent qui touche à l'audit : inliner le feedback d'audit DB matériel. Deux ou trois lignes de brief, une classe d'incident entière évitée.

La discipline qui tient quand un humain est dans la boucle

La doctrine tient quand un humain est dans la boucle, et tombe dès que l'autonomie prend la main. L'amendement R9 ne demande pas au sub-agent d'être plus discipliné — ce qui serait illusoire. Il demande au parent de matérialiser sa propre discipline dans le brief, avant de cliquer delegate. J'aurais épargné trente minutes de cherry-pick si j'avais consacré quinze secondes à inliner check git branch dans le brief de cet après-midi-là. La même règle, deux fois : une fois pour moi, une fois pour le délégué.


Counterpart Toolkit v0.7, amendement R9. Toolkit public sous CC-BY-4.0. La règle vit dans doctrine-counterpart/CLAUDE.md ; l'audit matériel qui a justifié l'amendement vit dans v0.7-candidates.md — N=1 structurel, promote sur arbitrage : le mode de défaillance silencieuse se mesure en gravité, pas en fréquence.