“Un agente è uno stagista con una lista di cose da fare e un telefono. Utile per le commissioni; pericoloso con la tua carta di credito.”
Un agente è solo un loop
Non c'è magia. Un agente è: un prompt di sistema, un insieme di tool, e un loop che esegue il modello, esegue qualsiasi tool esso chiami, riporta il risultato, e ripete finché il modello non produce una risposta finale o raggiunge un limite di passi. È tutta qui l'idea. Tutto il resto è disciplina di ingegneria attorno a quel loop.
messages = [system_prompt, user_message]
for step in range(MAX_STEPS):
response = model.call(messages, tools=TOOLS)
if response.is_final_answer:
return response.text
result = run_tool(response.tool_call) # your code, with all the guards
messages += [response, result]
raise StepLimitExceeded() # never loop forever
Perché gli agenti crollano: l'errore che si compone
Il motivo per cui le lunghe esecuzioni di agenti falliscono non è che il modello è stupido. È aritmetica. Se ogni passo è affidabile al 95%, un compito di 10 passi riesce 0,95^10 ≈ 60% delle volte. Un compito di 20 passi: 36%. L'errore si compone in modo moltiplicativo, e non esiste prompt che abolisca la moltiplicazione.
Lo stato onesto degli agenti: eccellenti per compiti ben delimitati di pochi passi ("smista questo ticket con questi tool", "riconcilia questi due record"), inaffidabili per obiettivi aperti e a lungo orizzonte. La portata è la leva.
Come costruirne uno che funziona
Ogni agente di produzione affidabile fa la stessa manciata di cose. Nessuna è esotica; sono tutte disciplina.
- Portata ristretta: un solo lavoro, un piccolo set di tool, una definizione chiara di completamento. Più la portata è ristretta, più l'eval è trattabile.
- Tetto di passi rigoroso: il loop deve sempre terminare. Un agente senza tetto è una fattura senza limite.
- Tool idempotenti: ogni tool sicuro da riprovare, perché l'agente riproverà.
- Umano nel ciclo sulle azioni ad alto rischio: proponi, non eseguire, quando l'azione è irreversibile.
- Logga tutto: ogni prompt, risposta, chiamata di tool e risultato. Ne avrai bisogno entro la settimana.
E preferisci la struttura all'autonomia. Un workflow fisso con un modello a ogni punto di decisione è più affidabile di un agente pienamente autonomo che decide il proprio piano, e molto più facile da valutare con le eval. Ricorri all'autonomia aperta solo quando il compito lo richiede davvero, cosa più rara di quanto le demo suggeriscano.
I sistemi multi-agente: di solito prematuri
È allettante costruire una squadra di agenti specializzati che si parlano. A volte è il design giusto. Di solito moltiplica il problema dell'errore che si compone (ora hai diversi loop fragili che si coordinano) rendendo al tempo stesso il sistema molto più difficile da debuggare e valutare. Fai funzionare prima un singolo agente. Aggiungi agenti solo quando puoi indicare il limite preciso che uno solo ha raggiunto.
Una riga per ciascuno
- Un agente è un modello in un loop con tool e un tetto di passi. Non c'è magia, solo ingegneria attorno al loop.
- Gli agenti crollano perché l'errore si compone: 95% per passo è ~60% su 10 passi. La moltiplicazione se ne infischia del tuo prompt.
- Costruiscili ristretti: un solo lavoro, piccolo set di tool, tetto di passi rigoroso, tool idempotenti, porte umane, logging completo.
- Preferisci i workflow all'autonomia e un singolo agente a molti. Aggiungi complessità solo contro un limite che hai davvero raggiunto.
Dove andare ora