La maggior parte delle persone cerca di migliorare gli agenti AI al livello sbagliato.
Quando un agente fallisce, riscrivono il prompt.
Quando fallisce di nuovo, aggiungono altre istruzioni.
Prima di iniziare:
Poi cambiano modello, aggiungono più strumenti, aumentano la finestra di contesto e sperano che il prossimo esecuzione si comporti diversamente.
Ma molti fallimenti degli agenti non sono fallimenti di ragionamento.
Sono fallimenti dell'ambiente.
L'agente non sapeva quali file fossero importanti.
Ha usato lo strumento giusto nel posto sbagliato.
Ha perso le decisioni prese nella sessione precedente.
Ha dichiarato il successo senza eseguire i controlli.
Ha ripetuto un'azione dopo un fallimento parziale.
Aveva il permesso di fare qualcosa che avrebbe dovuto richiedere un'approvazione.
Il modello non era necessariamente il problema. Il sistema attorno al modello era incompleto.
Questo sistema è l'imbracatura.
E progettarla sta diventando una disciplina ingegneristica a sé stante.
L'Ingegneria dell'Imbracatura è la pratica di costruire l'ambiente che trasforma l'intelligenza del modello in lavoro affidabile.
Un prompt cambia un singolo tentativo.
Un'imbracatura cambia ogni tentativo.
Questa guida spiega come costruirne una.

1. Il Modello Non È l'Agente
Un modello può ragionare, generare, confrontare e scegliere.
Ma un agente deve anche interagire con un ambiente reale.
Deve:
- comprendere il compito
- trovare il contesto rilevante
- selezionare e usare strumenti
- preservare lo stato
- rispettare i permessi
- ispezionare il risultato
- riprendersi da un fallimento
- dimostrare che il lavoro è completo
Il modello è il motore di ragionamento all'interno di quel sistema.
L'imbracatura è tutto ciò che rende operativo il ragionamento.
1richiesta utente2 |3 v4+-----------------------------+5| IMBRACATURA |6| contratto | contesto | policy|7| strumenti | stato | controlli|8| tracce | recupero |9+-----------------------------+10 |11 v12 modello13 |14 v15ambiente reale
Un modello potente all'interno di un'imbracatura debole è comunque un agente debole.

Può produrre risposte individuali impressionanti, ma si comporterà in modo incoerente in compiti lunghi, ambienti mutevoli e fallimenti parziali.
L'obiettivo dell'ingegneria dell'imbracatura non è rimuovere l'incertezza dal modello.
È contenere quell'incertezza all'interno di un sistema che può osservare, verificare e recuperare.
2. Inizia con un Contratto di Compito
La maggior parte dei compiti degli agenti inizia come un'intenzione vaga:
Migliora il flusso di onboarding.
Quella frase può bastare per una conversazione.
Non è sufficiente per un'esecuzione autonoma.
Prima che l'agente agisca, l'imbracatura dovrebbe convertire la richiesta in un contratto di compito.
Un contratto utile risponde a cinque domande:

- Quale risultato deve esistere?
- Cosa rientra nell'ambito?
- Cosa non deve cambiare?
- Quali prove dimostrano il completamento?
- Quali azioni richiedono l'approvazione umana?
1obiettivo: ridurre l'abbandono dell'onboarding23ambito:4 - flusso di iscrizione5 - analisi dell'onboarding67vincoli:8 - non modificare l'autenticazione9 - preservare il comportamento mobile esistente1011accettazione:12 - test superati13 - evento di analytics emesso14 - screenshot coprono desktop e mobile1516approvazione_richiesta:17 - deploy in produzione18 - migrazione del database
Questo cambia la domanda dell'agente da:
Cosa dovrei fare dopo?
a:
Quale azione muove l'ambiente verso il risultato contrattuale?
Senza un contratto, l'agente ottimizza per un'attività plausibile.
Con un contratto, può ottimizzare per un completamento verificato.
3. Dai all'Agente una Mappa, Non un Manuale
Scaricare l'intero repository, la documentazione e la cronologia della conversazione nel contesto non è una buona ingegneria del contesto.
È un'inondazione di contesto.

L'imbracatura dovrebbe fornire prima una piccola mappa, poi permettere all'agente di recuperare i dettagli quando diventano rilevanti.
1MAPPA DEL PROGETTO23regole del prodotto -> docs/prodotto/4architettura -> docs/architettura.md5frontend -> apps/web/6backend -> services/api/7test -> tests/8comandi -> docs/comandi.md9regole di rilascio -> docs/rilascio.md
Questa è una divulgazione progressiva:
1compito2 -> mappa del progetto3 -> sottosistema rilevante4 -> file esatti5 -> istruzioni locali
Il contesto dovrebbe espandersi perché il compito lo richiede, non perché l'informazione esiste.
Un buon compilatore di contesto decide:
- cosa è sempre necessario
- cosa può essere recuperato dopo
- cosa è diventato obsoleto
- cosa può essere riassunto
- cosa deve rimanere testuale
L'obiettivo non è il contesto massimo.
È il massimo segnale per token.
4. Costruisci un Gateway per Strumenti, Non un Mucchio di Strumenti
Dare a un agente venti strumenti non lo rende capace.
Gli dà venti modi per commettere un errore.

Ogni strumento dovrebbe avere un contratto chiaro:
1STRUMENTO: modifica_file23input:4 percorso5 patch67precondizioni:8 percorso esiste9 percorso è all'interno dell'area di lavoro consentita1011prova di successo:12 patch applicata13 diff risultante restituito1415comportamento in caso di fallimento:16 nessuna sovrascrittura parziale17 errore strutturato restituito1819classe di rischio:20 reversibile
L'imbracatura dovrebbe controllare come gli strumenti vengono esposti e utilizzati.
Può:
- nascondere strumenti irrilevanti
- validare argomenti
- limitare percorsi e domini
- allegare timeout
- rendere i tentativi idempotenti
- normalizzare gli output
- richiedere conferma per azioni rischiose
- restituire prove, non solo "successo"
Questo crea una separazione importante:
1il modello decide l'intento2il gateway valida l'azione3lo strumento modifica l'ambiente4il sensore osserva il risultato
Il modello può proporre un'azione.
Il gateway degli strumenti decide se quell'azione è abbastanza valida per essere eseguita.
5. Separa il Cervello, le Mani e la Storia
Molti agenti fragili mescolano tutto in un'unica trascrizione in crescita.
Ragionamento, chiamate a strumenti, file, decisioni, errori e vecchie osservazioni competono tutte per la stessa finestra di contesto.
Un sistema più solido separa tre responsabilità:

1CERVELLO2pianifica, ragiona, sceglie34MANI5esegue strumenti in un ambiente controllato67STORIA8memorizza fatti durevoli, decisioni e stato dell'esecuzione
Il modello non ha bisogno di ogni evento grezzo nel contesto attivo.
Ha bisogno del giusto stato corrente.
La sandbox non ha bisogno di comprendere l'intero obiettivo.
Deve eseguire in sicurezza un'azione limitata.
Il log della sessione non ha bisogno di ragionare.
Deve preservare ciò che è successo dopo che il contesto corrente scompare.
Questa separazione rende più facile riprendere, ispezionare e riparare gli agenti a lunga esecuzione.
Permette anche di sostituire una parte senza ricostruire l'intero sistema.
6. La Memoria Deve Diventare Stato Durevole
La cronologia della conversazione non è una memoria affidabile.
È un flusso di eventi.
La memoria utile dovrebbe essere convertita in stato esplicito.

Come minimo, preserva quattro categorie:
1FATTI2informazioni stabili scoperte sull'ambiente34DECISIONI5scelte fatte e la ragione dietro di esse67PROGRESSO8lavoro completato, attivo, bloccato e rimanente910LEZIONI11fallimenti che dovrebbero cambiare il comportamento futuro
Per esempio:
1fatti:2 - la validazione del checkout risiede in services/orders34decisioni:5 - riutilizzare la pipeline di validazione esistente6 - motivo: evita una seconda fonte di verità78progresso:9 completato:10 - aggiunta regola lato server11 rimanente:12 - aggiornare test di integrazione1314lezioni:15 - il comando di test locale richiede TEST_DB_URL
Questo è molto più utile che riprodurre cinquanta pagine di trascrizione sperando che il modello noti la riga importante.
Conserva la cronologia grezza per la verificabilità.
Compila lo stato durevole per l'esecuzione.
7. Il Completamento Richiede Prove
Un agente che dice "fatto" non è una prova che il compito sia stato completato.
È solo un altro output del modello.

Il completamento deve essere deciso da cambiamenti osservabili nell'ambiente.
1affermazione prova2--------------------------------------------------3"il bug è stato risolto" il test che falliva ora passa4"la pagina funziona" flusso del browser completato5"la migrazione è sicura" dry run e rollback superati6"il report è corretto" i valori corrispondono ai dati sorgente7"il compito è completo" ogni controllo di accettazione superato
L'imbracatura dovrebbe eseguire prima i controlli deterministici più economici.
1sintassi2 -> tipi3 -> test mirati4 -> test di integrazione5 -> revisione visiva o semantica6 -> approvazione umana
Non usare un altro modello dove un compilatore, uno schema, un checksum, una query o un test possono rispondere alla domanda.
Usa i modelli per l'ambiguità.
Usa il codice per la struttura.
Un modello può proporre che il compito sia completo.
Solo l'ambiente può dimostrarlo.
8. La Verifica Dovrebbe Attaccare il Risultato
Lavoratori e valutatori non dovrebbero condividere lo stesso obiettivo.
Il lavoratore cerca di creare la soluzione più forte.
Il valutatore cerca di trovare il motivo per cui dovrebbe essere respinta.

1lavoratore2 -> produce candidato34verificatore5 -> controlla il contratto6 -> cerca casi mancanti7 -> testa affermazioni non supportate8 -> tenta di rompere il risultato910sopravvive11 -> accetta1213fallisce14 -> restituisce prove mirate
Questa asimmetria è importante.
Se chiedi allo stesso agente, nello stesso contesto, di "ricontrollare il suo lavoro", spesso preserva le ipotesi che hanno creato l'errore.
Una fase di verifica utile dovrebbe avere:
- una rubrica di rifiuto esplicita
- accesso all'artefatto prodotto
- accesso al contratto di accettazione
- strumenti indipendenti o contesto fresco quando necessario
- permesso di rifiutare senza riparare
La verifica non è una seconda opinione.
È un tentativo di confutazione.
9. Il Modello Propone, la Policy Autorizza
Alcune regole non dovrebbero mai dipendere dal fatto che il modello le ricordi.
1mai pubblicare senza approvazione2mai esporre un segreto3mai scrivere fuori dall'area di lavoro4mai superare il limite di spesa5mai segnare test come superati a meno che non siano stati eseguiti
Questi non sono suggerimenti di prompt.
Sono policy.
Il design più sicuro mantiene la policy al di fuori del ciclo di ragionamento.

1BASSO RISCHIO2leggere file, cercare, ispezionare3-> automatico45MODIFICA REVERSIBILE6modificare area di lavoro, eseguire test7-> automatico con traccia89EFFETTO ESTERNO10inviare messaggio, fare deploy, acquistare11-> approvazione esplicita1213IRREVERSIBILE O SENSIBILE14cancellare dati, ruotare credenziali, pubblicare globalmente15-> blocco rigido o vietato
Più forte è la conseguenza, più duro è il blocco.
L'autonomia non è l'assenza di controllo.
È la capacità di operare liberamente all'interno di un confine chiaramente imposto.
10. Il Recupero Dovrebbe Mirare alla Classe di Fallimento
La strategia di recupero più comune è:
Qualcosa è fallito. Riprova.
Questo non è recupero.
È ripetizione.

L'imbracatura dovrebbe classificare il fallimento prima di selezionare l'azione successiva.
1timeout dello strumento2-> riprova con backoff34argomenti non validi5-> ripara la chiamata allo strumento67contesto mancante8-> recupera fonte specifica910test fallito11-> ispeziona il comportamento fallito1213permesso negato14-> richiedi approvazione o scegli percorso sicuro1516requisiti contraddittori17-> passa all'umano1819fallimento ripetuto invariato20-> ferma il ciclo
Un tentativo dovrebbe cambiare almeno una condizione rilevante.
Altrimenti il sistema paga per riprodurre lo stesso fallimento.
Un ciclo di agente limitato assomiglia a questo:
1osserva2 -> decidi3 -> agisci4 -> misura5 -> accetta6 -> ripara7 -> passa all'umano8 -> ferma
Ogni ciclo ha bisogno di un budget:
- tentativi massimi
- tempo massimo
- spesa massima
- portata distruttiva massima
- condizione di escalation
Gli agenti affidabili sanno come continuare.
Sanno anche quando continuare non è più razionale.
11. Le Istruzioni Dovrebbero Diventare Infrastruttura
Le istruzioni per gli agenti sono utili quando spiegano la realtà locale.
Ma le istruzioni da sole sono un'applicazione debole.
Se una regola è importante ripetutamente, spostala più in basso nello stack.
1"usa il formattatore"2-> esegui il formattatore automaticamente34"non importare tra i livelli"5-> aggiungi test di architettura67"includi un rollback della migrazione"8-> richiedi file di rollback in CI910"non modificare file generati"11-> blocca scritture su percorsi generati1213"cita ogni affermazione esterna"14-> valida la copertura delle citazioni
Questo crea una scala di istruzioni:
1spiegazione2 -> checklist3 -> modello4 -> controllo automatizzato5 -> policy applicata
Sposta la conoscenza importante il più in basso possibile su quella scala.
Il prompt dovrebbe spiegare il giudizio.
L'imbracatura dovrebbe applicare gli invarianti.
12. Osserva l'Esecuzione, Non Solo la Risposta Finale
Un artefatto finale pulito può nascondere un processo terribile.
L'agente potrebbe aver:
- acceduto ai dati sbagliati
- ignorato un comando fallito
- ritentato un'azione esterna due volte
- consumato dieci volte il budget previsto
- raggiunto la risposta giusta per il motivo sbagliato
Hai bisogno di tracce che rendano l'esecuzione ricostruibile.
109:14 contratto creato209:15 fonte di contesto caricata: architettura.md309:17 file modificato: checkout.ts409:18 test mirato fallito: coupon duplicato509:21 implementazione riparata609:22 test mirato superato709:24 test di integrazione superato809:25 deploy esterno bloccato: approvazione richiesta
Una traccia utile registra:
- transizioni di stato
- fonti di contesto
- input e output degli strumenti
- cambiamenti dell'ambiente
- risultati della verifica
- motivi dei tentativi
- decisioni di approvazione
- costo e latenza
L'obiettivo non è la sorveglianza.
L'obiettivo è la riparazione locale.
Quando un'esecuzione fallisce al passaggio 18, dovresti essere in grado di ripartire da un checkpoint affidabile invece di riprodurre l'intero compito.
13. Ogni Esecuzione Ha Bisogno di una Ricevuta di Modifica
Le lunghe trascrizioni degli agenti sono difficili da revisionare.
Alla fine di un'esecuzione, l'imbracatura dovrebbe compilare una piccola ricevuta di modifica.
1OBIETTIVO2Risolvere l'applicazione di coupon duplicati durante il checkout.34MODIFICATO5- logica di validazione del checkout6- test di regressione mirato78VERIFICATO9- lint superato10- test unitari superati11- test di integrazione del checkout superato1213NON VERIFICATO14- fornitore di pagamento in produzione1516DECISIONI17- preservato l'ordine di priorità dei coupon esistente1819RISCHI20- il client mobile legacy non era disponibile localmente2122APPROVAZIONE NECESSARIA23- deploy in staging
La ricevuta non è un riassunto di ciò che il modello ha detto.
È un riassunto di ciò che il sistema può dimostrare.
Questo dà agli umani una superficie di revisione compatta e fornisce alla prossima sessione dell'agente un punto di partenza affidabile.
Il miglior passaggio di consegne non è "ecco la conversazione."
È "ecco lo stato, le prove e il rischio irrisolto."
14. Ogni Fallimento Dovrebbe Aggiornare l'Imbracatura
I team più deboli riparano l'output fallito.
I team più forti riparano anche il sistema che lo ha permesso.
Dopo un fallimento, chiedi:
1Il contratto di compito era ambiguo?2Un contesto importante era invisibile?3Lo strumento sbagliato era esposto?4Mancava una precondizione?5Il risultato non era verificabile?6La policy era lasciata dentro il prompt?7Il recupero era troppo ampio?8La traccia era insufficiente?
Poi converti la lezione in un miglioramento riutilizzabile.
1fallimento2 -> diagnosi3 -> nuovo sensore, regola, mappa, test o contratto di strumento4 -> le esecuzioni future migliorano automaticamente
Questo è il volano dell'imbracatura.
Il sistema diventa più affidabile perché i fallimenti lasciano dietro di sé infrastruttura.
Una risposta corretta aiuta un'esecuzione.
Un'imbracatura corretta aiuta ogni esecuzione futura.

15. Anche le Imbracature Degradano
Più imbracatura non è sempre meglio.
I modelli migliorano. Gli strumenti migliorano. I compiti cambiano. Le vecchie salvaguardie possono diventare attriti inutili.
Una soluzione alternativa creata per il modello di ieri potrebbe impedire al modello di oggi di usare una strategia migliore.
Questo crea il degrado dell'imbracatura:
1limitazione del vecchio modello2 -> soluzione alternativa nell'imbracatura3 -> il modello migliora4 -> la soluzione alternativa rimane5 -> il sistema diventa più lento o meno capace
Tratta i componenti dell'imbracatura come codice di produzione.
Misura se forniscono ancora un vantaggio.
Per ogni router, valutatore, livello di memoria e regola di tentativo, chiedi:
- Quale fallimento previene questo?
- Quanto spesso si verifica ancora quel fallimento?
- Quale latenza e complessità aggiunge questo?
- Lo stesso risultato può ora essere ottenuto più semplicemente?
- Cosa succede se lo rimuoviamo?
La migliore imbracatura non è la più grande.
È il sistema più piccolo che colma in modo affidabile il divario tra intento e prova.
Costruisci per eliminare.
16. L'Imbracatura Minima Funzionante
Non hai bisogno di una piattaforma di orchestrazione per iniziare.
Costruisci l'imbracatura a strati.
Livello 1: Un compito limitato
- obiettivo
- ambito
- vincoli
- controlli di accettazione
Livello 2: Un ambiente leggibile
- mappa del progetto
- comandi
- istruzioni locali
- dipendenze note
Livello 3: Azioni controllate
- strumenti tipizzati
- validazione degli argomenti
- limiti di percorso e permessi
- risultati strutturati
Livello 4: Esecuzione durevole
- stato di esecuzione esplicito
- checkpoint
- decisioni
- lezioni
Livello 5: Prove
- controlli deterministici
- verifica avversaria
- ricevuta di modifica
Livello 6: Recupero e apprendimento
- classificazione dei fallimenti
- tentativi limitati
- escalation
- aggiornamenti dell'imbracatura da fallimenti ricorrenti
Costruisci il livello più piccolo che elimina il fallimento che hai effettivamente.
Non iniziare con un'architettura multi-agente perché un singolo prompt occasionalmente ha bisogno di chiarimenti.
La complessità dovrebbe essere guadagnata da fallimenti osservati.
17. Una Specifica di Imbracatura Riutilizzabile
Prima di dare a un agente un'autonomia significativa, definisci questo:
1SPECIFICA IMBRACATURA AGENTE231. CONTRATTO4 obiettivo:5 ambito:6 vincoli:7 prova di accettazione:892. CONTESTO10 mappa sempre caricata:11 fonti di recupero:12 istruzioni locali:13 regole di freschezza:14153. STRUMENTI16 strumenti consentiti:17 precondizioni:18 effetti collaterali:19 prova di successo:20 policy di timeout e tentativi:21224. STATO23 fatti:24 decisioni:25 progresso:26 lezioni:27 formato checkpoint:28295. POLICY30 azioni automatiche:31 azioni che richiedono approvazione:32 azioni vietate:33 limiti di budget:34356. VERIFICA36 controlli deterministici:37 controlli avversari:38 regola di accettazione:39407. RECUPERO41 classi di fallimento:42 limiti di tentativi:43 condizioni di escalation:44 rollback sicuro:45468. OSSERVABILITÀ47 eventi di traccia:48 metriche:49 ricevuta di modifica finale:
Se questi campi non sono definiti, l'agente non è autonomo.
Sta improvvisando.
18. Misura il Sistema al Livello Giusto
Il conteggio dei token non è la metrica finale.
Nemmeno il numero di compiti tentati.
L'unità utile è il lavoro accettato.
Una metrica pratica è:
1output accettati2------------------------------3minuti di revisione umana + costo di esecuzione
Tieni traccia anche di:
- tasso di accettazione al primo passaggio
- tasso di recupero dopo un fallimento dello strumento
- tasso di fallimento ripetuto
- interventi umani per compito
- affermazioni di completamento non supportate
- tempo dalla richiesta al risultato verificato
- overhead dell'imbracatura per componente
Questo previene un'illusione comune:
Un agente può sembrare molto produttivo mentre crea costoso lavoro di revisione.
L'obiettivo non è più attività dell'agente.
Sono più risultati attendibili per unità di attenzione umana.
19. Quando Non Hai Bisogno di un'Imbracatura Pesante
Non ogni chiamata al modello ha bisogno di un sistema operativo.
Usa un prompt semplice quando:
- il compito è breve
- l'output è facile da ispezionare
- il fallimento è economico
- non si verifica alcun effetto collaterale esterno
- l'utente rimane nel ciclo
Aggiungi un'imbracatura quando:
- il lavoro si estende su più strumenti o sessioni
- l'ambiente può cambiare
- le azioni hanno conseguenze reali
- il completamento è difficile da giudicare manualmente
- lo stesso fallimento appare ripetutamente
- la revisione umana diventa il collo di bottiglia
Lo scopo di un'imbracatura non è rendere una demo sofisticata.
È rendere il lavoro reale affidabile.
Il Vero Cambiamento
La prima generazione di prodotti AI è stata costruita attorno ai prompt.
La prossima generazione viene costruita attorno agli ambienti.
La domanda non è più solo:
Come facciamo a far rispondere meglio il modello?
È:
Come costruiamo un sistema in cui le buone azioni sono facili, le azioni pericolose sono controllate, i fallimenti sono visibili e il completamento è dimostrabile?
Questo è il passaggio dall'ingegneria dei prompt all'ingegneria dell'imbracatura.
Il modello fornisce intelligenza.
L'imbracatura fornisce struttura.
Insieme producono un'esecuzione affidabile.
Se il tuo agente continua a cadere a pezzi, smetti di aggiungere aggettivi al prompt.
Costruisci l'ambiente di cui ha bisogno per avere successo.
Se Sei Arrivato Fin Qui
Aggiungi questa guida ai segnalibri.
Invia questo articolo a qualcuno che sta ancora cercando di risolvere ogni fallimento dell'agente con un prompt più lungo.





