Il lato nascosto degli AI Agents che nessuno conosce
L'Architettura Nascosta degli AI Agent: Dove Tutti Sbagliano
Se stai sperimentando con gli AI agent, avrai notato qualcosa di strano: a volte seguono istruzioni complesse alla perfezione, altre volte ignorano le regole base che hai appena scritto.
Non te lo stai immaginando. C'è un'architettura fondamentale sotto ogni AI agent che spiega esattamente perché questo succede.
È Solo un While-True Loop
Ecco un segreto che sembra quasi troppo semplice: un AI agent è fondamentalmente un while-true loop che appende a un array.
while True:
user_input = get_input()
response = llm.complete(user_input)
if response.wants_tool:
result = execute_tool(response.tool_call)
response = llm.complete(result)
print(response)
Fine. Questa è l'architettura core. Tutto il resto—le definizioni degli strumenti, i prompt di sistema, la gestione del contesto—è solo l'infrastruttura che gira intorno a questo loop.
L'"array" di cui parliamo è il context window. Ogni chiamata API invia l'intera conversazione accumulata. Ogni scambio aggiunge. Il modello resta completamente stateless tra una chiamata e l'altra.
Il tuo context window contiene: il system prompt, le definizioni degli strumenti, il messaggio dell'utente, le risposte dell'assistente, i risultati degli strumenti e tutto quello che ci hai messo dentro. Quell'array cresce a ogni scambio.
Il Problema della Smart Zone
Qui le cose si fanno interessanti. La maggior parte degli sviluppatori dà per scontato che il context window sia uniforme—metti dentro informazioni, il modello le elabora allo stesso modo.
Non è così.
Il primo 40% circa del tuo context window è dove il modello ragiona chiaramente. Questa è la "smart zone." Oltre quella soglia, l'attenzione si sfrangia. Le scelte degli strumenti diventano approssimative. Le istruzioni cadono. L'obiettivo inizia a derivare.
Questo spiega perché aggiungere più contesto può effettivamente peggiorare le performance del tuo agent. I modelli frontier seguono in modo affidabile circa 150-200 istruzioni prima che le cose inizino a cadere a pezzi. Oltre quella soglia, anche regole esplicite in cima al tuo prompt vengono ignorate.
Pensaci: se stai impilando system prompt, definizioni di strumenti multiple, cronologia della conversazione e documenti di riferimento, potresti stare spingendo le tue istruzioni utili oltre il punto in cui il modello può seguirle in modo affidabile.
Il Problema di Allocazione di Cui Nessuno Parla
I contenuti statici sono il killer silenzioso delle performance degli agent.
Prima ancora che la tua conversazione inizi, probabilmente stai riempiendo il context window con cose che sembrano necessarie: system prompt completi, definizioni di strumenti estese, memory bank, configurazioni MCP, riferimenti alla documentazione.
Tutto quel contenuto statico mangia la tua smart zone prima ancora che arrivi il primo messaggio dell'utente.
Il risultato? Le tue istruzioni più importanti—quelle che definiscono il comportamento del tuo agent per questo task specifico—competono per spazio in una smart zone che si restringe.
È per questo che i migliori agent partono da zero. Una nuova sessione significa un context window vuoto. Nessuna accumulazione marcia. Nessuna istruzione competitiva da task precedenti. Solo quello che ti serve per il lavoro in corso.
Context Rot: La Modalità di Fallimento Silenziosa
Ecco cosa rende tricky la gestione del contesto: niente fallisce.
Nel software tradizionale, ottieni errori. Eccezioni. Fallimenti che puoi rilevare e gestire. Ma con i context window, ogni chiamata ha successo. Il modello risponde. Solo che... diventa peggiore.
Stessa finestra. Stesso modello. Si riempie e basta.
Questo è il "context rot"—il degrado graduale delle performance dell'agent man mano che il context window si riempie di cronologia conversazionale accumulata, risultati degli strumenti e riferimenti alla documentazione. Non vedrai un messaggio di errore. Noterai solo che il tuo agent diventa meno affidabile, meno focalizzato, meno allineato con le tue istruzioni.
Questo è fondamentalmente diverso dai typical software bug. Non è un fallimento—è un problema di capacità. E ti coglie di sorpresa.
Come Far Funzionare la Smart Zone per Te
Capire questi principi porta a strategie pratiche:
Parti da zero per ogni task. Non riutilizzare una finestra stanca da un progetto precedente. I nuovi task ottengono nuove sessioni. Lavagna pulita, smart zone al massimo.
Includi solo quello che questo task richiede. Quell'integrazione MCP che è utile per altri lavori? Lasciala fuori. Quelle note da un progetto diverso? Stanno solo occupando spazio. Filtra ruthless quello che entra nel tuo context.
Scarica su disco. I file grossi restano su disco. I riassunti vanno nella finestra. Puoi sempre leggere un file quando ti serve—una volta che l'hai riassunto per il context window.
Usa sub-agent per le deviazioni. Quando il tuo agent deve esplorare qualcosa di tangenziale al task principale, attiva un sub-agent. Lascialo investigare e tornare con un paragrafo. Non lasciare che l'esplorazione ingombri il tuo contesto principale.
Lascia spazio sotto la linea. Quando il tuo agent finisce il lavoro principale, devi ancora finalizzare le cose—scrivere test, committare codice, lanciare linter. Se il tuo context è pieno, non c'è spazio per questo cruciale passaggio finale.
Dividi i lavori grossi tra sessioni. Quando un task non entra in una finestra, planificalo prima. Scrivi la spec su disco. Lascia che agent multipli la raccolgano dove il precedente l'ha lasciata.
Il Vero Messaggio
Ogni sessione parte da zero. Il contesto non si gestisce da solo.
Qualcuno deve occuparsi di allocazione del contesto, rotazione, compaction e recovery. Qualcuno deve decidere cosa vale la pena tenere nella smart zone e cosa scaricare su disco.
Anthropic spedisce il harness dell'agent—il while-true loop, l'esecuzione degli strumenti, l'integrazione core del LLM. Tu spedisci lo strato intorno. La gestione del contesto. Il framing del task. Il design del system prompt.
Capire questa architettura non ti renderà un esperto di AI dall'oggi al domani. Ma ti darà un framework per diagnosticare quando i tuoi agent si comportano male e un vocabolario per pensare sistematicamente alla gestione del contesto.
La prossima volta che il tuo agent inizia a ignorare istruzioni, saprai esattamente cosa controllare: quanta della tua smart zone è ancora disponibile e cosa la sta riempiendo.
Questa è l'architettura nascosta. Ora vai a costruire qualcosa.