Хуки

Хук agent: виявлення необмежених циклів агентів

Перевірте кодову базу на виклики агентів і LLM без обмеження кроків чи часу або оцініть окремий виклик просто з командного рядка.

Хук agent позначає середовища виконання агентів, що працюють у циклі без обмеження ходів, бюджету чи часу, тобто діру неконтрольованої автономії, через яку підроблені вхідні дані перетворюються на необмежені витрати чи ескалацію через prompt injection. Він враховує мову й охоплює дві екосистеми фреймворків агентів: JavaScript (середовище виконання query з агентного SDK Claude) і Python (LangChain, LangGraph, CrewAI, OpenAI Agents). Це детермінований рушій спеціалізації llm, який ви можете запускати самі в режимі scan або check.

Запуск​

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

Кожен рядок під Uncapped agent loops found у файлі, що імпортує SDK агентів, є або викликом середовища виконання query з агентного SDK Claude без обмеження ходів, бюджету чи часу (JavaScript, без обмежень за замовчуванням), або явним зняттям обмеження фреймворку за замовчуванням, як-от max_iterations=None / max_turns=None (Python, обмежений за замовчуванням). В обох випадках код виходу ненульовий. generateText/streamText з Vercel AI SDK за замовчуванням виконують один крок (stopWhen: stepCountIs(1)), тож простий виклик там не може зациклитися й не позначається, а звичайний db.query(...) ніколи не сприймається як виклик агента. Чистий запуск виводить no uncapped agent loops found.

Як читати вердикт​

ВердиктЗначення
uncappedВиклик середовища виконання query без обмеження (JS) або явне зняття обмеження (=None, Py).
safeВиклик query, що задає обмеження, генерація за один крок або виклик фреймворку, обмеженого за замовчуванням.
invalidФрагмент коду не містить розпізнаваного виклику агента, який можна оцінити.

Параметри CLI​

ПараметрЗначенняОпис
--patternфрагмент кодуПеревірити один виклик. Повторіть, щоб перевірити кілька, по вердикту на рядок.
--langмоваОбов'язковий із --pattern: javascript або python.
--dirкаталогОбмежити перевірку каталогом. Повторюється й поєднується з --file.
--fileфайлОбмежити перевірку одним файлом. Повторюється й поєднується з --dir.

Без параметрів хук перевіряє весь проєкт. --pattern потребує --lang і не поєднується з --dir чи --file.

Найкраще з можливого, але не вичерпно

Власноруч написаний цикл агента будь-якою мовою не під силу статичній перевірці. Сприймайте це як надійний мінімум, а не як повний перелік.

порада

Хук вирішує лише щодо обмеження: обмеження можливостей, змішування рівнів довіри й авторизацію і далі охоплює спеціалізація llm, бо це питання судження.

Часті запитання

Необмеженого агента можна довести до нескінченної рекурсії, витрат чи ескалації через prompt injection. Параметри maxTurns, maxBudgetUsd, stopWhen і signal обмежують його, а хук agent позначає виклик середовища виконання query, який не задає жодного з них.