I cicli ripetuti di chiamate agli strumenti si verificano quando un agente non riesce a riconoscere i progressi, gli errori o il completamento e continua quindi a selezionare la stessa azione.
Un agente self-hosted può cercare ripetutamente nella stessa cartella, rieseguire un comando, riaprire lo stesso file o inviare una richiesta API identica, anche se il risultato non può cambiare. Il ciclo visibile è solo il sintomo. La causa può risiedere nel piano del modello, nello schema dello strumento, nell’osservazione restituita, nello stato memorizzato dell’agente, in un wrapper esterno per i tentativi o nell’assenza di una regola di terminazione. Distinguere questi livelli è importante, perché una finestra di contesto più ampia o un limite di turni più elevato possono prolungare il ciclo senza spiegarlo.
Il segnale del ciclo è un’azione ripetuta senza nuovo stato
Un agente può chiamare legittimamente lo stesso strumento diverse volte con argomenti differenti o dopo aver ricevuto nuove informazioni. Un ciclo patologico ripete una chiamata equivalente mentre lo stato dell’attività, le informazioni disponibili e il passaggio successivo previsto rimangono sostanzialmente invariati.
LangGraph documenta un limite di ricorsione del grafo per i flussi di lavoro che eseguono troppi passaggi prima di raggiungere una condizione di arresto, inclusi i grafi con cicli involontari.
L’osservazione distintiva non è il numero assoluto di chiamate. È capire se ogni chiamata crea un nuovo fatto, modifica una risorsa, restringe il piano o avvicina il grafo a uno stato terminale.
Risultati ambigui degli strumenti lasciano l’agente incerto sul fatto che sia successo qualcosa
Uno strumento può restituire una stringa vuota, un messaggio generico di successo, un payload parziale, un valore memorizzato nella cache ma obsoleto o un errore in linguaggio naturale che non identifica chiaramente il successo, la possibilità di ritentare o l’errore permanente.
Il Model Context Protocol separa gli errori di esecuzione degli strumenti inserendo uno stato di errore esplicito nel risultato dello strumento. Quando un runtime riduce ogni esito a semplice testo, il modello deve dedurre se un’altra chiamata possa essere utile.
Un ciclo causato da questo problema mostra solitamente lo stesso strumento e gli stessi argomenti dopo un’osservazione che non contiene un indicatore stabile di completamento. Lo strumento può funzionare correttamente, mentre il contratto della sua risposta rimane troppo vago perché l’agente possa aggiornare il proprio piano.
Le scritture dello stato possono riuscire all’esterno dell’agente ma fallire nella sua memoria
Un file può essere creato, una riga del database può essere aggiornata o un servizio può essere riavviato mentre lo stato memorizzato dell’agente indica ancora che l’azione è in sospeso. Il turno di ragionamento successivo ripete quindi un’operazione già completata.
Gli agenti in stile ReAct alternano ragionamento, azione e osservazione, in modo che le osservazioni aggiornino il piano d’azione. Se un’osservazione viene eliminata, associata all’ID errato della chiamata allo strumento, troncata o esclusa dal prompt successivo, il ciclo di controllo perde le informazioni necessarie per andare avanti.
Questa causa si distingue dalla confusione del modello perché il sistema esterno mostra progressi, mentre la traccia presentata al modello non li mostra. Ripetere solo il turno del modello con l’osservazione corretta produce spesso un’azione successiva diversa.
I livelli di tentativi possono trasformare un singolo errore in diverse chiamate identiche
Il modello può richiedere una sola chiamata allo strumento, mentre il framework di orchestrazione, il client HTTP, il worker della coda o il task runner la ripete più volte. La traccia finale può sembrare indicare indecisione dell’agente, anche se la ripetizione è avvenuta a un livello inferiore a quello del modello.
I controlli di retry di Tenacity separano la decisione di riprovare dalle condizioni di arresto e dai predicati di retry. Una regola di retry troppo ampia può ripetere errori di convalida deterministici, problemi di autorizzazione o argomenti malformati che non possono avere successo senza modificare l’input.
Cerca ID di richiesta identici, timestamp, classi di eccezione e conteggi dei turni del modello. Diverse esecuzioni all’interno di un singolo turno dell’agente indicano retry del runtime; un’esecuzione per ogni nuovo turno di ragionamento rimanda invece alla pianificazione dell’agente o all’interpretazione dello stato.
Criteri di completamento deboli restituiscono continuamente il controllo al router degli strumenti
Un agente può completare l’effetto collaterale richiesto, ma non disporre di una condizione leggibile dalla macchina che indichi il completamento dell’attività complessiva. Il router vede un altro messaggio del modello in grado di usare strumenti e restituisce il controllo al nodo d’azione.
OpenAI Agents SDK espone un limite massimo dei turni che solleva un’eccezione quando un’esecuzione supera il numero di turni configurato.
Un limite ai turni circoscrive i danni, ma non identifica la causa principale. Se la traccia mostra un output dello strumento riuscito seguito da un’altra chiamata equivalente, di solito manca una transizione di completamento, un percorso verso la risposta finale o un campo di stato che il router controlli effettivamente.
Le descrizioni degli strumenti possono incoraggiare la stessa scelta dopo ogni errore
Strumenti sovrapposti, comportamenti in caso di errore non specificati e descrizioni che enfatizzano le capacità senza indicarne i limiti possono far apparire uno strumento come la scelta ottimale a ogni turno.
CrewAI documenta limiti di iterazione e di retry come controlli distinti dell’agente, riflettendo la differenza tra cicli di ragionamento ripetuti e tentativi di esecuzione ripetuti.
Questa causa è più evidente quando gli argomenti variano leggermente, ma lo strumento scelto non cambia mai, anche dopo che l’osservazione dimostra che lo strumento non dispone dell’accesso, dell’ambito o dei dati necessari. In questo caso il ciclo è un problema di politica di selezione, non di retry del trasporto.
La perdita del contesto può cancellare le informazioni che dimostrano che una chiamata è già fallita
Tracce lunghe, schemi estesi degli strumenti, output prolissi e limiti di contesto dei modelli locali possono spingere i dettagli dei fallimenti precedenti o gli indicatori di completamento fuori dal prompt effettivo.
L’agente vede quindi l’attività originale e l’elenco attuale degli strumenti, ma non l’osservazione che aveva escluso l’azione preferita. Ricostruisce lo stesso piano a partire da una cronologia incompleta e sembra dimenticare il proprio tentativo.
L’articolo di ZimaSpace sugli agenti di automazione self-hosted definisce il confine adiacente: aggiungere altri strumenti amplia le capacità, ma un’orchestrazione affidabile dipende comunque da uno stato compatto, esiti espliciti ed esecuzioni limitate.
Domande frequenti
Ogni chiamata ripetuta a uno strumento è un ciclo infinito?
No. La paginazione, il polling, l’elaborazione a blocchi e la ricerca iterativa possono riutilizzare legittimamente lo stesso strumento. Il test fondamentale è verificare se gli argomenti, le informazioni o lo stato dell’attività cambiano tra una chiamata e l’altra.
Aumentare il numero massimo di turni risolve il problema?
No. Può consentire il completamento di un flusso di lavoro valido ma lungo, tuttavia offre anche a un ciclo senza progressi più tempo per ripetersi. La traccia deve comunque contenere una condizione verificabile di avanzamento o terminazione.
Un modello più potente può eliminare i cicli di chiamate agli strumenti?
Può interpretare meglio le osservazioni ambigue, ma non può recuperare uno stato che non è mai stato restituito, distinguere i retry nascosti del runtime o imporre una condizione di arresto assente nel flusso di lavoro.
Hub Tecnologico e AI
Altro da leggere

Cosa induce il pianificatore di un agente IA a ripetere passaggi già completati?
Traccia i passaggi ripetuti del pianificatore attraverso la persistenza dello stato, le prove di completamento, l’analisi dei risultati degli strumenti, la conservazione del contesto,...

Cosa causa gli errori di autorizzazione solo all'interno dei sottoprocessi degli agenti IA?
Confronta l'identità del processo padre e di quello figlio, la vista del filesystem, l'ambiente, le capacità, i criteri di sicurezza e il percorso dell'eseguibile...

Cosa causa la saturazione della CPU quando la transcodifica hardware e l’IA video vengono eseguite insieme?
Monitora la saturazione della CPU tra offload dei codec, conversione dei pixel, copie dei frame, pre-elaborazione dell’IA, audio, sottotitoli, archiviazione e pianificazione dei processi.

