Agent Harnesses: l'infrastruttura dietro agenti IA affidabili
Molte demo di agenti IA sembrano simili all'inizio: colleghi un buon modello, aggiungi alcuni strumenti, scrivi un buon prompt e lasci che il sistema lavori su un compito. Questo puo bastare per una demo. Non basta per la produzione. Gli agenti di produzione devono ricordare il contesto rilevante, usare strumenti in modo sicuro, recuperare dagli errori, rispettare i permessi, verificare il proprio lavoro e continuare a operare quando un compito dura piu di una singola risposta pulita del modello. Il modello conta, ma il sistema attorno al modello decide se l'agente e davvero utile ogni giorno. Questo sistema viene spesso chiamato agent harness, agent runtime, orchestration layer, execution environment o agent scaffolding. In questo articolo usiamo "agent harness" per indicare il runtime e il livello di orchestrazione attorno al modello. Altri team possono chiamare lo stesso livello agent framework, orchestration layer, execution runtime o agent scaffolding.Che cos'e un agent harness
Un agent harness e l'infrastruttura software che trasforma un modello linguistico senza stato in un agente operativo. Il modello predice, pianifica ed esegue un'inferenza simile al ragionamento. Il harness gli fornisce un ambiente controllato nel quale puo agire. Un harness di produzione include di solito:- loop di orchestrazione
- registrazione ed esecuzione degli strumenti
- gestione del contesto
- memoria a breve e lungo termine
- persistenza dello stato
- controlli sui permessi
- esecuzione in sandbox
- retry e gestione degli errori
- loop di verifica
- tracing e osservabilita
- instradamento dei modelli
- delega a subagenti
Perche il harness conta sempre di piu
I team AI stanno imparando che due prodotti che usano lo stesso modello possono ottenere risultati molto diversi. La ragione e l'infrastruttura. I modelli frontier stanno migliorando rapidamente. Man mano che capacita come tool use, structured output, long context, code generation e inferenza simile al ragionamento diventano disponibili presso piu provider, una parte maggiore del vantaggio competitivo si sposta nell'ambiente attorno al modello. Anche il lavoro sul harness si accumula. Ogni errore puo diventare un miglioramento permanente del sistema:- Argomenti errati verso gli strumenti portano a schemi e validazioni piu rigidi.
- Decisioni dimenticate portano a migliorare contesto e memoria.
- Modifiche rischiose portano ad aggiungere permission gate.
- Chiusure premature portano ad aggiungere verifica.
- Chiamate costose ripetute portano a migliorare cache o routing.
- Prestazioni peggiori con contesto lungo portano a compaction e retrieval.
Prompt engineering, context engineering e harness engineering
Questi termini sono collegati, ma non sono la stessa cosa. Prompt engineering e il livello delle istruzioni. Dice al modello quale ruolo seguire, quali vincoli contano e come rispondere. Context engineering e il livello informativo. Decide cosa vede il modello, quando lo vede e quanta parte di quell'informazione appartiene alla finestra corrente. Harness engineering e il livello completo di esecuzione. Include prompt e contesto, ma anche strumenti, stato, sicurezza, memoria, verifica, code, osservabilita e gestione del ciclo di vita. Questa distinzione conta perche i prompt chiedono un comportamento, mentre gli harness lo impongono. Un prompt puo dire: "Non cancellare file senza permesso." Un harness puo bloccare i comandi distruttivi finche l'utente non li approva. Un prompt puo dire: "Controlla il tuo lavoro." Un harness puo eseguire la suite di test, ispezionare l'output e impedire la chiusura se la verifica fallisce.Come funziona un agent harness
La maggior parte degli agent harness segue un loop. Per prima cosa, il harness compone l'input del modello. Questo input puo includere il prompt di sistema, le istruzioni dello sviluppatore, la richiesta dell'utente, le definizioni degli strumenti, la memoria, lo stato corrente del task e il contesto selezionato da file o database. Poi il modello risponde. Puo restituire testo, dati strutturati, tool call o una richiesta di delegare il lavoro a un altro agente. Il harness classifica quindi l'output. Se il modello ha prodotto una risposta finale, il loop puo fermarsi. Se ha richiesto uno strumento, il harness valida la chiamata. La validazione e critica. Il harness verifica se gli argomenti rispettano lo schema, se lo strumento e disponibile, se l'azione e sicura e se utente o sistema hanno concesso il permesso necessario. Dopo parte lo strumento. Puo leggere file, interrogare un database, cercare documenti, chiamare API, eseguire codice, aprire un browser o scrivere una patch. Il risultato torna al modello come osservazione. Se lo strumento fallisce, l'errore deve essere confezionato in modo abbastanza chiaro da permettere al modello di recuperare. Il loop continua finche l'agente non raggiunge un punto di arresto verificato, incontra un limite di budget, richiede input umano o viene interrotto. Sembra semplice. La qualita di produzione vive nei dettagli attorno a questo loop.Parti centrali di un harness di produzione
1. Loop di orchestrazione
Il loop di orchestrazione controlla i turni dell'agente. Pattern comuni:- ReAct: ragiona, agisci, osserva, ripeti
- plan and execute: crea un piano e poi eseguilo
- generate, test, repair: produci output, verificalo, correggi i problemi
- gather, act, verify: raccogli contesto, agisci, verifica il risultato
2. Livello strumenti
Gli strumenti sono il modo in cui l'agente tocca il mondo. Buoni strumenti sono progettati per i modelli, non solo per gli umani. Un umano puo interpretare output CLI rumoroso, default nascosti, flag ambigui e fallimenti parziali. Un agente ha bisogno di confini piu chiari. Il livello strumenti dovrebbe gestire:- nomi e descrizioni
- schemi degli argomenti
- controlli dei permessi
- sandboxing
- esecuzione
- formattazione dell'output
- retry
- audit log
3. Gestione del contesto
Il contesto non e storage. E una superficie di lavoro scarsa. Finestre di contesto grandi aiutano, ma non eliminano il bisogno di selezione. Quando log irrilevanti, output vecchi, piani obsoleti e contenuto ripetuto riempiono la finestra, il modello diventa meno affidabile. Gli harness di produzione usano strategie come:- caricare prima piccoli indici
- recuperare file o record esatti on demand
- riassumere turni precedenti
- nascondere vecchi output degli strumenti
- mantenere decisioni e problemi aperti eliminando il rumore
- delegare l'esplorazione a subagenti che restituiscono riassunti compatti
4. Memoria
La memoria consente a un agente di portare con se informazioni utili tra turni e sessioni. La memoria a breve termine copre il task attivo. La memoria a lungo termine conserva fatti duraturi, preferenze, regole di progetto e decisioni ricorrenti. La memoria di lavoro puo includere file di avanzamento, todo list o scratchpad strutturati. La memoria non va trattata come verita. Va trattata come un indizio. Se la memoria dice che un progetto usa un certo framework, l'agente dovrebbe comunque ispezionare il progetto prima di applicare modifiche specifiche per quel framework. Questo evita che memoria vecchia diventi falsa certezza. La memoria richiede anche isolamento e revisione, perche fatti cattivi o malevoli memorizzati possono influenzare esecuzioni future. Un sistema di produzione deve evitare fughe di memoria tra utenti, team, tenant o confini di permesso.5. Persistenza dello stato
I task di produzione spesso sopravvivono a una singola risposta del modello. Il harness dovrebbe tracciare:- ID di sessione
- ID di esecuzione
- stato corrente
- tool call in sospeso
- file toccati
- agenti figli
- approvazioni concesse
- costo e uso di token
- risultato finale
- stato di consegna
6. Gestione degli errori
Gli errori sono normali nei workflow con agenti. Un harness solido separa i tipi di errore:- errori transitori dovrebbero essere ritentati con backoff
- errori di argomenti dovrebbero restituire feedback chiaro al modello
- errori di permesso dovrebbero richiedere approvazione o scegliere un percorso sicuro
- errori imprevisti dovrebbero fermarsi con diagnostica utile
7. Guardrail e permessi
Il modello puo decidere cosa vuole fare. Il harness deve decidere cosa gli e permesso fare. Confini utili dei permessi:- accesso in sola lettura contro scrittura
- scope del workspace
- approvazione per comandi distruttivi
- approvazione per mutazioni di database
- limiti per API esterne
- restrizioni di accesso alle credenziali
- revisione umana prima di un'azione rivolta all'utente
8. Loop di verifica
La verifica e il punto in cui gli agenti diventano affidabili. Per i task software, la verifica puo includere test, type check, linters, build, screenshot, browser check e revisione del diff. Per i workflow di business, puo includere validazione di schemi, vincoli di database, revisione umana, soglie di confidenza, citazioni di documenti e ispezione delle trace. Una parte della verifica e deterministica. Un'altra usa un modello come giudice. I controlli deterministici dovrebbero essere preferiti quando esiste una ground truth oggettiva.9. Osservabilita
I team devono vedere come si comportano gli agenti. Un harness di produzione dovrebbe tracciare:- prompt e output del modello
- tool call
- risultati degli strumenti
- errori
- retry
- approvazioni
- uso di token
- latenza
- risultati della verifica
- risultati finali
Subagenti e gestione del ciclo di vita multi-agente
Quando un agente puo creare altri agenti, il problema cambia. I subagenti sono utili quando il lavoro puo essere diviso. Un agente puo ispezionare documentazione mentre un altro fa review del codice. Uno puo testare la UI mentre un altro corregge la logica backend. Uno puo ricercare fonti mentre un altro scrive la bozza. Ma creare subagenti non equivale a gestirli. La gestione del ciclo di vita multi-agente inizia quando il runtime deve possedere molti agenti in esecuzione nel tempo. Un sistema multi-agente serio ha bisogno di:- ID durevoli per gli agenti figli
- lineage padre-figlio
- ID di esecuzione
- ruoli e limiti di profondita
- code
- cancellazione
- steering
- eventi di completamento
- policy di cleanup
- recupero dopo riavvio
Managed agents contro harness personalizzati
Le piattaforme di managed agents stanno diventando piu comuni. Impacchettano harness e infrastruttura di produzione per permettere ai team di muoversi piu rapidamente. Questo puo essere utile quando un team vuole:- lanciare piu velocemente
- un runtime ospitato
- scaling integrato
- esecuzione gestita degli strumenti
- osservabilita standard
- meno responsabilita infrastrutturale
- la qualita del workflow e valore centrale del prodotto
- gli strumenti di dominio sono molto specifici
- permessi e audit trail sono rigidi
- conta il costo per task
- agenti di lunga durata hanno bisogno di regole di ciclo di vita proprie
- il vendor lock-in e un rischio rilevante
- il comportamento dell'agente standard va male nelle eval interne
Quando il tuo team dovrebbe interessarsene
Dovresti prendere sul serio il design del harness quando un workflow AI va oltre il prototipo. Segnali chiari:- gli utenti dipendono dall'output
- gli errori generano costo operativo
- il workflow tocca dati privati o regolati
- l'agente ha bisogno di strumenti con effetti collaterali
- il compito richiede molti passaggi
- l'output necessita verifica
- la revisione umana richiede audit trail
- il costo dei token diventa visibile
- il comportamento dell'agente cambia in modo imprevedibile tra un run e l'altro