Hook

Hook agent: rileva i loop di agenti senza limiti

Analizza una codebase alla ricerca di chiamate ad agenti e LLM senza limite di passi o di tempo, oppure valuta una singola chiamata, dalla riga di comando.

L'hook agent segnala i runtime di agenti che girano in loop senza limite di turni, di budget o di tempo, la falla di autonomia fuori controllo che trasforma un input costruito ad arte in costi illimitati o in un'escalation di prompt injection. È consapevole del linguaggio e copre i due ecosistemi di framework per agenti: JavaScript (il runtime query dell'SDK per agenti di Claude) e Python (LangChain, LangGraph, CrewAI, OpenAI Agents). È il motore deterministico dietro la specializzazione llm, e puoi eseguirlo tu stesso in modalità scan o check.

Come eseguirlo​

npx lagune read agent # scans the whole project
npx lagune read agent --dir src/ai # scans a directory
npx lagune read agent --file chat.ts # scans a single file

Ogni riga sotto Uncapped agent loops found è, in un file che importa un SDK per agenti, o il runtime query dell'SDK per agenti di Claude chiamato senza limite di turni, di budget o di tempo (JavaScript, illimitato per impostazione predefinita), o la rimozione esplicita del limite predefinito di un framework, come max_iterations=None / max_turns=None (Python, limitato per impostazione predefinita). In entrambi i casi esce con un codice diverso da zero. generateText/streamText dell'SDK AI di Vercel eseguono per impostazione predefinita un solo passo (stopWhen: stepCountIs(1)), quindi una chiamata semplice non può andare in loop e non viene segnalata, e un normale db.query(...) non viene mai scambiato per una chiamata a un agente. Un'esecuzione pulita stampa no uncapped agent loops found.

Come leggere il verdetto​

VerdettoSignificato
uncappedUna chiamata al runtime query senza limite (JS), o una rimozione esplicita del limite (=None, Py).
safeUna chiamata query che imposta un limite, una generazione a passo singolo o la chiamata a un framework limitato per impostazione predefinita.
invalidIl frammento non contiene alcuna chiamata ad agenti riconoscibile da giudicare.

Opzioni della CLI​

OpzioneValoreDescrizione
--patternun frammento di codiceControlla una chiamata. Ripetila per controllarne diverse, un verdetto per riga.
--langun linguaggioObbligatoria con --pattern: javascript o python.
--diruna directoryLimita l'analisi a una directory. Si ripete e si combina con --file.
--fileun fileLimita l'analisi a un singolo file. Si ripete e si combina con --dir.

Senza opzioni analizza l'intero progetto. --pattern richiede --lang e non si può combinare con --dir o --file.

Al meglio delle possibilità, non esaustivo

Un loop di agente scritto a mano, in qualsiasi linguaggio, va oltre un'analisi statica. Consideralo una base solida, non un inventario completo.

suggerimento

L'hook decide solo il limite: la delimitazione delle capacità, la commistione di livelli di fiducia e l'autorizzazione restano valutazioni coperte dalla specializzazione llm.

Domande frequenti

Un agente senza limiti può essere spinto in una ricorsione, in costi o in un'escalation di prompt injection senza fine. Impostare maxTurns/maxBudgetUsd/stopWhen/signal lo delimita, e l'hook agent segnala una chiamata al runtime query che non ne imposta nessuno.