Хук 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
npx lagune read agent --lang javascript --pattern 'query({ prompt })' # => uncapped
npx lagune read agent --lang javascript --pattern 'query({ prompt, options: { maxTurns: 5 } })' # => safe
npx lagune read agent --lang python --pattern 'AgentExecutor(agent=a, max_iterations=None)' # => uncapped
Кожен рядок під 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, який не задає жодного з них.
