Audit di contesto agente: Quando la propria governance diventa il problema—e come ripararla senza perdere nulla
Publié le 27 April 2026
Hai passato settimane a costruire una governance dell’agente impeccabile. Eager/Lazy, procedura di fine sessione, backup rotativi. Il sistema è operativo. Poi un giorno, l’agente diventa lento. Le risposte sono diluite. Misuri: 1414 linee caricate automaticamente. E il peggio è che il colpevole non è il codice, né il backlog, né gli archivi delle sessioni. Il colpevole è il file che documenta il tuo metodo.
- toc
-
[]
La scena: sessione 051, qualcosa non va
30 aprile 2026, 16:00. Sono in piena sessione su`magic-stick`, il mio progetto di build di ISO Linux live. L’agente Opencode ha caricato automaticamente i miei file Eager come di consueto —AGENT.adoc, PROMPT_REPRISE.adoc, .agents/INDEX.adoc`Comandi CLI di JBake `` # Initialize a new JBake project jbake -i
Bake (generate) the site jbake -b
Bake and serve locally jbake -b -s
Bake and watch for changes jbake -b --reset
Specify source and destination jbake source_folder output_folder
Clear the output directory before baking jbake -b . output --reset `
-
Tutto è normale.
Eccetto che le risposte sono molli. L’agente impiega due secondi in più a ragionare. Dimentica un dettaglio che aveva sotto gli occhi tre messaggi prima. Non è un crash, non è un errore — è un degrado lento, il tipo di cosa che non si nota subito.
Avevo già vissuto questo alla sessione 048, quando avevo scoperto che i file di governance pesavano complessivamente 5200 linee. Allora avevo concepito il meccanismo Hot/Warm/Cold con la sua finestra scorrevole di 10 sessioni, le sue ondate fredde identiche e il suo sensore a due trigger. Il problema era stato risolto. In teoria.
Ma ora siamo alla sessione 051. La rotazione del backup è avvenuta correttamente — i file EAGER sono passati da 2087 a 500 righe. Tuttavia, il contesto resta pesante. Qualcosa mi sfugge.
Apro un terminale e digito :
wc -l AGENT.adoc AGENT_MODUS_OPERANDI.adoc PROMPT_REPRISE.adoc \
.agents/INDEX.adoc .agents/SESSIONS_HISTORY.adoc \
.agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
287 AGENT.adoc
627 AGENT_MODUS_OPERANDI.adoc
51 PROMPT_REPRISE.adoc
218 .agents/INDEX.adoc
18 .agents/SESSIONS_HISTORY.adoc
213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
1414 total
1414 righe. La rotazione di backup ha ben tagliato in INDEX, SESSIONS_HISTORY e COMPLETED_TASKS — sono puliti. Ma c’è un elefante nella stanza che non avevo visto:627 lineein un unico file.AGENT_MODUS_OPERANDI.adoc.
Questo file è quello che ho scritto alla sessione 1 per documentare la strategia Eager/Lazy. È il manuale del metodo. Ed è diventato, da solo, il 44% del contesto EAGER.
Failed to generate image: PlantUML preprocessing failed: [From <input> (line 8) ] @startuml skinparam backgroundColor #FEFEFE title Contesto EAGER — 1414 righe rectangle "AGENT_MODUS_OPERANDI\n**627 righe (44%)**" as MOD #FFCDD2 rectangle "AGENT.adoc\n287 righe (20%)" as AG #BBDEFB rectangle "INDEX.adoc 218 righe (15%)" as IDX #C8E6C9 ^^^^^ Syntax Error? (Assumed diagram type: activity) @startuml skinparam backgroundColor #FEFEFE title Contesto EAGER — 1414 righe rectangle "AGENT_MODUS_OPERANDI\n**627 righe (44%)**" as MOD #FFCDD2 rectangle "AGENT.adoc\n287 righe (20%)" as AG #BBDEFB rectangle "INDEX.adoc 218 righe (15%)" as IDX #C8E6C9 rectangle "COMPLETED_TASKS 213 righe (15%)" as ARC #FFF9C4 rectangle "PROMPT_REPRISE 51 righe (4%)" as PRO #E1BEE7 rectangle "SESSIONS_HISTORY 18 righe (1%)" as HIS #FFE0B2 note bottom of MOD Le fichier qui documente la méthode est devenu le plus gros poste de dépense end note @enduml
L’ironia è totale. Il file progettato per risparmiare contesto è diventato il principale consumatore di contesto. È come se il manuale d’uso della tua auto pesasse più del motore.
L’audit: analizzare le 627 righe
Decido di fare un audit sezione per sezione. Non per rimuovere — per comprendere ciò che merita di essere in EAGER e ciò che potrebbe vivere altrove senza perdita di conoscenza.
Ecco la struttura esatta di`AGENT_MODUS_OPERANDI.adoc`e quello che ci trovo :
sezione |
Righe |
Contenuto |
Già presente in… |
P1 — Panoramica |
64 |
Problema risolto, principi fondamentali, analogia cruscotto vs manuale |
[No output - empty string] |
P2 — Structure des fichiers |
97 |
Alberatura, politica di caricamento, quando caricare cosa |
— |
P3 — Regole assolute |
34 |
Git vietato, comandi distruttivi vietati, segreti vietati |
|
P4 — Ciclo di vita della sessione |
133 |
Template apertura, regole di lavoro, 6 passaggi fine sessione, checklist |
|
P5 — Metriche e soglie |
49 |
Sessione ideale (15-30 min, 1-3 file), segnali di allarme |
(No content) |
P6 — Tipi di sessioni |
72 |
Tabella di rilevamento, formato di proposta, eccezioni |
(No output as there is no French text provided to translate) |
P7 — Miglioramento continuo |
39 |
Metriche di monitoraggio, revisione settimanale |
— |
P8 — Checklist di avvio |
13 |
Bootstrap nuovo progetto |
— |
P9 — Riferimenti |
30 |
File di riferimento, risorse esterne |
|
Allegati A+B |
42 |
Glossario, cronologia versioni |
(no output) |
Il verdetto è senza appello :
-
duplicati integrali# Comandi CLI di JBake
----
# Initialize a new JBake project
jbake -i
# Bake (generate) the site
jbake -b
# Bake and serve locally
jbake -b -s
# Bake and watch for changes
jbake -b --reset
# Specify source and destination
jbake source_folder output_folder
# Clear the output directory before baking
jbake -b . output --reset
----
(167 linee) : P3, P4, P9 — tutto è già dentro`AGENT.adoc` ou `INDEX.adoc`, spesso parola per parola
* **Mai consultato nella pratica**(215 linee) : P5, P6, P7, P8, Allegati — della meta-governance che non è mai stata utilizzata in alcuna sessione
* **Conoscenza unica**(161 righe) : P1 e P2 — il vocabolario LAZY/EAGER, l'analogia, la politica di caricamento
Su 627 righe,**382 sono rumore**. E queste 382 linee vengono caricate *all'inizio di ogni sessione*, consumate dall'agente, diluendo la sua attenzione prima ancora che io dica buongiorno.
[plantuml, format=svg, id=diag-audit-result, alt="Résultat de l'audit — 627 lignes réparties en doublons, jamais consulté, connaissance unique"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
title Audit di AGENT_MODUS_OPERANDI.adoc — 627 righe
left to right direction
rectangle "🟡 **Duplicati**\n167 righe (27%)" as DUP #FFF9C4 {
card "P3 — Regole assolute
(34 linee)" as D1
card "P4 — Ciclo di vita
(133 righe)" as D2
card "P9 — Riferimenti
(30 righe)" as D3
}
rectangle "🔴 **Mai consultato**\n215 righe (34%)" as JAM #FFCDD2 {
card "P5 — Metriche\n(49 righe)" as J1
card "P6 — Rilevamento
(72 righe)" as J2
card "P7 — Miglioramento
(39 righe)" as J3
card "P8 — Bootstrap
(13 righe)" as J4
card "Allegati — Glossario\n(42 righe)" as J5
}
rectangle "🟢 **Conoscenza unica**\n161 righe (26%)" as UNI #C8E6C9 {
card "P1 — Panoramica
(64 righe)" as U1
card "P2 — Structure fichiers\n(97 lignes)" as U2
}
note bottom of UNI
C'est ÇA qu'il faut garder en EAGER.
Le reste → cold storage.
end note
@enduml
----
Questo diagramma è la chiave di tutto. I duplicati (giallo) sono puro rumore — l'agente li legge due volte, in due file diversi. Il mai consultato (rosso) è documentazione morta — scritta con cura, mai utilizzata. Solo il verde contiene la conoscenza che l'agente non può trovare altrove.
== La paura di perdere l'ingegneria
A questo punto, ho l'evidenza davanti agli occhi: devo ridurre.`AGENT_MODUS_OPERANDI.adoc`. Ma esito.
# Initialize a new JBake project jbake -i
# Bake (generate) the site jbake -b
# Bake and serve locally jbake -b -s
# Bake and watch for changes jbake -b --reset
# Specify source and destination jbake source_folder output_folder
# Clear the output directory before baking jbake -b . output --reset ``` Questo file, l'ho scritto a mano. Ogni sezione è il risultato di una lezione appresa in una sessione reale. La parte P3 è nata da un`rm -rf`accidentale su`bakery-plugin`che mi è costato dei token Firebase reali. La parte P4 è il risultato di quindici sessioni in cui dimenticavo di archiviare e perdevo il filo. La procedura in 6 passaggi non è uscita da un libro — è uscita dal dolore.
Eliminare queste sezioni sarebbe buttare via la storia della mia ingegneria. Le lezioni che le hanno prodotte, le sessioni durante le quali le ho scoperte, gli errori che non voglio più ripetere. Non è testo — è esperienza cristallizzata.
È lì che formulo il principio che guiderà la soluzione :
____ **Non eliminare mai. Sempre ricollocare.**La conoscenza non deve scomparire dal progetto. Deve semplicemente evitare di essere caricata automaticamente quando non è necessaria. ____
== La soluzione : split enciclopedico
Il modello che propongo è semplice e si ispira al modo in cui Wikipedia è cresciuta: quando un articolo diventa troppo lungo, non lo si taglia — si crea un articolo dettagliato e si mantiene un riassunto nell'articolo principale.
per`AGENT_MODUS_OPERANDI.adoc`, questo dà :
1. **Estrarre**le 161 righe di conoscenza unica (P1 + P2) in un nuovo file`LAZY_EAGER_ESSENTIALS.adoc`— compresso a circa 50 righe, rigorosamente EAGER
2. **Rinomina** `AGENT_MODUS_OPERANDI.adoc` en `.agents/encyclopedies/LAZY_EAGER_ENCYCLOPEDIE.adoc`— il file originale di 627 righe, preservato *intatto*, in cold storage
3. **Non caricare mai**il file dell'enciclopedia automaticamente — è lì per l'uomo, per la distillazione futura, per l'agente che invocheremo tra sei mesi con un modello migliore
[plantuml, format=svg, id=diag-split-solution, alt="Architecture du split encyclopédique — ESSENTIALS EAGER + ENCYCLOPEDIE cold storage"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
title Split Enciclopedica — AGENT_MODUS_OPERANDI
left to right direction
rectangle "**AGENT_MODUS_OPERANDI.adoc**
627 righe
(prima dello split)" as BEFORE #FFCDD2 {
}
rectangle " " as ARROW1
rectangle " " as ARROW2
rectangle "**LAZY_EAGER_ESSENTIALS.adoc**
**~50 righe — EAGER**" as ESS #C8E6C9 {
card "P1 condensata\n(15 righe)" as E1
card "P2 condensata\n(35 righe)" as E2
}
rectangle "**.agents/encyclopedies/**
**LAZY_EAGER_ENCYCLOPEDIE.adoc**
627 linee — COLD" as ENC #BBDEFB {
card "P1 agli Allegati
(integrale, intatto)" as C1
}
BEFORE -[#4CAF50]-> ESS : "Estrazione della\nconoscenza critica"
BEFORE -[#2196F3]-> ENC : "Preservazione integrale\ndell'ingegneria"
note bottom of ESS
Chargé automatiquement
en début de session
→ L'agent comprend le vocabulaire
end note
note bottom of ENC
Jamais chargé automatiquement
Consultable par l'humain
Matériau brut pour distillation future
end note
@enduml
----
Il nome`encyclopedies/`non è insignificante. Un'enciclopedia, non è un dossier d'archivi — è una collezione di conoscenze organizzata, consultabile ma non portatile. Non si legge l'Enciclopedia Universalis in metropolitana. La si tiene nella biblioteca, e vi si va quando si ha una domanda precisa.
Questo è precisamente il ruolo di questa cartella: una biblioteca di riferimento fredda, strutturata, esaustiva — che l'agente non tocca automaticamente.
== Il contenuto del file ESSENTIALS
Ecco com'è effettivamente il nuovo file`LAZY_EAGER_ESSENTIALS.adoc`, estratto e compattato a partire da P1 e P2 :
[source,asciidoc]
----
= Stratégie LAZY/EAGER — Principes Essentiels
[abstract]
Ce fichier définit la stratégie de gestion du contexte agent.
Chargé automatiquement (EAGER) en début de session.
== Principes
|===
| EAGER | LAZY
| Tableau de bord | Manuel du propriétaire
| Chargé automatiquement | Chargé sur demande
| <= 100 lignes, <= 10k tokens | Illimité, détaillé
| Règles absolues, mission courante | Archives, historique, références
|===
== Politique de Chargement
|===
| Fichier | Type | Quand charger
| PROMPT_REPRISE.adoc | EAGER | Début session (auto)
| *_ESSENTIALS.adoc | EAGER | Début session si EPIC active
| .agents/INDEX.adoc | EAGER | Début session (auto)
| *_REFERENCE.adoc | LAZY | Sur besoin (détails architecture)
| .agents/sessions/N-*.adoc | LAZY | Sur demande (détails session)
| .agents/encyclopedies/*.adoc | COLD | Jamais auto (humain seulement)
|===
== Comment l'Agent Sait Quoi Charger
Début session → PROMPT_REPRISE + INDEX + ESSENTIALS actifs.
Besoin de détails → charger les *_REFERENCE et sessions/ en LAZY.
Connaissance froide → encyclopedies/, jamais automatique.
----
Cinquanta linee. Questo è tutto ciò di cui l'agente ha bisogno per comprendere la meccanica. Tutto il resto — la storia delle lezioni, le analogie dettagliate, le procedure passo passo, gli allegati — vive nell'enciclopedia.
E il più importante:**Niente è stato cancellato.**. Le 627 linee di ingegneria sono ancora lì, in`.agents/encyclopedies/LAZY_EAGER_ENCYCLOPEDIE.adoc`. Sono semplicemente sistemate nella biblioteca anziché sul piano di lavoro.
== Il risultato: -50% di contesto EAGER
Prima della separazione:
[source]
----
287 AGENT.adoc
627 AGENT_MODUS_OPERANDI.adoc
51 PROMPT_REPRISE.adoc
218 .agents/INDEX.adoc
18 .agents/SESSIONS_HISTORY.adoc
213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
1414 total
----
Dopo lo split :
[source]
----
287 AGENT.adoc
50 LAZY_EAGER_ESSENTIALS.adoc ← remplace 627 lignes
51 PROMPT_REPRISE.adoc
218 .agents/INDEX.adoc
18 .agents/SESSIONS_HISTORY.adoc
213 .agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
837 total ← -41%
----
[plantuml, format=svg, id=diag-after-audit, alt="Répartition des 837 lignes EAGER après audit — gain de 41%"]
----
@startuml
skinparam backgroundColor #FEFEFE
title Contesto EAGER dopo split enciclopedico — 837 righe (-41%)
rectangle "AGENT.adoc
287 righe (34%)" as AG #BBDEFB
rectangle "INDEX.adoc
218 righe (26%)" as IDX #C8E6C9
rectangle "COMPLETED_TASKS\n213 righe (25%)" as ARC #FFF9C4
rectangle "PROMPT_REPRISE
51 linee (6%)" as PRO #E1BEE7
rectangle "ESSENTIALS
50 righe (6%)" as ESS #A5D6A7
rectangle "SESSIONS_HISTORY\n18 righe (2%)" as HIS #FFE0B2
note bottom of ESS
De 627 → 50 lignes
577 lignes d'ingénierie
préservées en cold storage
Rien de perdu. Tout de relocalisé.
end note
@enduml
----
Il maggior consumatore (AGENT_MODUS_OPERANDI, 627 linee) è stato sostituito da un file di 50 linee. Il guadagno è immediato: 577 linee di contesto liberate. L'agente respira.
E dentro`.agents/encyclopedies/`, il file originale di 627 linee attende. Intatto. Con tutte le sue sezioni — compresi quelli che sono duplicati, compresi quelli che non sono mai stati utilizzati. Perché un giorno, un modello migliore o un data scientist umano vorrà incrociare questi angoli, queste ridondanze assunte, queste lezioni apprese. E quel giorno, la materia prima sarà lì.
== Perché la cartella si chiama `encyclopedies/
La scelta del nome non è cosmetica. Codifica la filosofia del meccanismo.
Una *archive* (`archives/`) contiene dati storici organizzati cronologicamente — come i COMPLETED_TASKS mensili. Un *backup* (`backup/`) è uno snapshot datato — una copia di sicurezza di uno stato passato.
Un' *enciclopedia*, è un'altra cosa. È una raccolta di conoscenza tematica, strutturata per argomento, esaustiva ma non lineare. Non si legge un'enciclopedia dall'inizio alla fine. Vi si immerge per rispondere a una domanda precisa.
È esattamente il contratto di questo dossier:
|===
|fascicolo |Ruolo |accesso |granularità |`archives/` |Dati storici (attività completate per mese) |pigro, strutturato |Cronologico |`backup/` |Snapshots freddi (ondate di 10 sessioni) |COLD, copia integrale |Cronologico |`encyclopedies/` |Conoscenza tematica esaustiva (metodologia, patterns) |COLD, mai auto |tematica
|===
Questa distinzione evita il caos. Ogni file sa dove deve vivere secondo *ciò che contiene*, non secondo *quando è stato creato*.
== Il seguito logico della serie
Se avete letto i primi due articoli, ecco come i tre pezzi si incastrano :
[plantuml, format=svg, id=diag-trilogie, alt="Les trois articles de la série gouvernance — progression logique"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 220
title Trilogia della Governance dell'Agente
left to right direction
package "📖 **Articolo 0108**\nStrategia Eager/Lazy" as A1 #E8F5E9 {
card "agente di memoria
tra sessioni" as M1
card "File EAGER
(auto-caricati)" as M2
card "File LAZY\n(su richiesta)" as M3
card "Procedura a 6 fasi" as M4
}
package "🧊 **Articolo 0110**
Meccanismo Hot/Warm/Cold" as A2 #FFF9C4 {
card "Invecchiamento
del contesto" as V1
card "Finestra scorrevole
10 sessioni" as V2
card "ondata di freddo
identico" as V3
card "Sensore con
due trigger" as V4
}
package "�🔍 **Articolo 0111**
Audit + Soluzione Enciclopedica" as A3 #BBDEFB {
card "Audit des fichiers\nEAGER" as E1
card "Identificazione
dello spreco" as E2
card "Split
ESSENTIALS/enciclopedia" as E3
card "Conservazione
dell'ingegneria" as E4
}
A1 --> A2 : "La memoria cresce
→ serve un meccanismo
di invecchiamento"
A2 --> A3 : "L'invecchiamento non è sufficiente
→ bisogna auditare ciò che
merita di essere in EAGER"
note bottom of A3
✅ Les trois couches sont en place
sur 6 projets actifs
end note
@enduml
----
* **0108**risponde a: « Come dare una memoria all'agente tra due sessioni ?
* **0110** risponde a : « Come impedire che questa memoria soffochi l'agente ? »
* **0111**risponde : « E se il problema non fosse la dimensione degli archivi, ma ciò che abbiamo *scelto* di mettere in EAGER ?
Il primo articolo ha costruito la struttura. Il secondo ha aggiunto il meccanismo di invecchiamento. Il terzo audita il contenuto — e scopre che la metodologia stessa è diventata il problema.
== Cosa avrei fatto diversamente
Con il senno di poi, vedo l'errore di progettazione iniziale.`AGENT_MODUS_OPERANDI.adoc`è stato creato come un documento unico — un manifesto. Era l'approccio giusto per formalizzare il pensiero. Ma una volta formalizzato il pensiero, il documento avrebbe dovuto essere diviso immediatamente : l'essenziale in EAGER, l'esauriente in cold.
Non l'ho fatto perché ero fiero del documento. 627 righe di pura ingegneria, scritte a mano, ogni sezione risultato di una lezione di sessione. Era la mia opera. E, come ogni autore, ho avuto difficoltà a tagliarla.
La lezione:**Non è perché un documento è buono che deve essere caricato automaticamente**. La qualità del contenuto non ha alcun rapporto con la sua pertinenza per il contesto immediato dell'agente.
Oggi, la regola è semplice: qualsiasi documento di oltre 100 righe nel contesto EAGER è un sospetto. Merita un audit. Non una condanna — un audit. E la domanda non è mai « dovremmo eliminarlo ? » ma « dovremmo caricarlo ad ogni sessione ?».
== La guida per auditare il tuo contesto
Se hai seguito i primi due articoli e hai impostato la tua governance Eager/Lazy, ecco una procedura di audit in cinque fasi:
1. **Misurare**:`wc -l`su tutti i tuoi file EAGER. Il totale dovrebbe essere inferiore a 1000 linee.
2. **Identificare il più grande**: il file che pesa più del 20% del totale è il sospetto numero uno.
3. **Auditare sezione per sezione** : pour chaque section, demandez-vous « Est-ce que cette information est déjà ailleurs ? Est-ce que l'agent l'a déjà lue dans un autre fichier ? Est-ce qu'elle a servi dans les 5 dernières sessions ? »
4. **classificatore**: duplicato, mai usato, conoscenza unica
5. **Splitter o relocalizzare**: ciò che è unico e critico → ESSENTIALS compatto. Il resto →`encyclopedies/`.
[plantuml, format=svg, id=diag-audit-checklist, alt="Procédure d'audit en 5 étapes"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
title Procedura di Audit del Contesto dell'Agente — 5 Passi
start
:1. **Mesurer**\n`wc -l *.adoc .agents/*.adoc`;
if (Total > 1000 lignes ?) then (oui)
:⚠️ Contexte trop lourd;
else (non)
:✅ Contexte OK;
stop
endif
:2. **Identifier le suspect**\nLe fichier > 20% du total;
:3. **Auditer section par section**\nPour chaque section :\n• Déjà ailleurs ? → doublon\n• Jamais servi ? → mort\n• Information unique ? → critique;
:4. **Classifier**\n🟡 Doublons → à retirer de l'EAGER\n🔴 Jamais utilisé → cold storage\n🟢 Connaissance unique → à garder;
:5. **Splitter**\n🟢 → ESSENTIALS (~50 lignes, EAGER)\n🟡🔴 → encyclopedies/ (cold storage);
:✅ Contexte optimisé\nsans perte d'ingénierie;
stop
@enduml
----
Questa procedura richiede 15 minuti. In un progetto di 50 sessioni, risparmia centinaia di token per sessione futura. Il ROI è immediato.
== Una governance vivace
Ciò che questa serie di tre articoli mi ha insegnato è che la governance agent non è un prodotto finito. È un**organismo vivente**. Cresce con il progetto. Contrae malattie della crescita. Richiede controlli regolari.
La sessione 048 ha rivelato che gli archivi si gonfiano. La sessione 051 ha rivelato che la metodologia stessa si gonfia. La sessione 060 probabilmente rivelerà qualcos'altro. È normale. È sano. Una governance che non si mette mai in discussione è una governance morta.
Le tre meccanismi messi in atto — Eager/Lazy, Hot/Warm/Cold, split enciclopedico — formano un sistema di difesa in profondità contro la saturazione del contesto. Nessuno è sufficiente da solo. Insieme, si completano :
* **Eager/Lazy** structure l'information *par disponibilité*
* **Caldo/Tiepido/Freddo**struttura l'informazione *per freschezza*
* **Audit enciclopedico**struttura le informazioni *per densità*
[plantuml, format=svg, id=diag-defense-in-depth, alt="Les trois couches de défense contre la saturation du contexte"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam nodeBackgroundColor #E3F2FD
title Difesa in profondità contro la saturazione del contesto
node "**Contesto Agente**
~800 linee
sano" as CTX #C8E6C9
node "Livello 1\n**EAGER / LAZY**" as C1 #BBDEFB
node "Strato 2
**HOT / WARM / COLD**" as C2 #BBDEFB
node "Strato 3
**ESSENZIALI / ENCICLOPEDIA**" as C3 #BBDEFB
CTX --> C1 : "Struttura per\n**disponibilità**"
CTX --> C2 : "Struttura per
**freschezza**"
CTX --> C3 : "Struttura per\n**densità**"
note bottom of C3
Les trois couches sont nécessaires.
Aucune n'est suffisante seule.
end note
@enduml
----
Con questi tre strati, il contesto agente su`magic-stick`è passato da 2087 linee (prima di qualsiasi ottimizzazione) a circa 800 linee — una divisione per 2,6. Senza aver perso una sola linea di documentazione, un solo archivio di sessione, una sola lezione appresa.
Tutto è lì. Solo meglio organizzato.
== Link
* Article 0108 — Strategia Eager/Lazy :link:/blog/2026/0108_gouvernance_agent_opencode_eager_lazy_post.html[Gestire un agente IA con AsciiDoc]
* Article 0110 — Mécanisme Hot/Warm/Cold : link:/blog/2026/0110_mecanisme_backup_contexte_agent_post.html[Sliding Window e Onda Fredda]
* Il mio sito: https://cheroliv.com
* Il progetto`magic-stick`: https://github.com/cheroliv/magic-stick
---
*La conoscenza non deve scomparire. Lei deve semplicemente non essere caricata quando non è necessaria.*
Articoli correlati
14 May 2026