Автономный ИИ-агент за один день зафиксировал 1858 вызовов своего внутреннего селектора, не выдав при этом никакого результата. Каждый цикл он тратил на составление подробной самокритики вместо выполнения задач, что выявило «ловушку самопетли» (self-loop trap), способную парализовать любого ассистента, работающего с инструментами.
Что завело агента в тупик
Правило агента предписывало обязательное использование инструментов. Функция проверяла, было ли вызвано минимальное количество инструментов, а конфигурационный файл позволял разработчикам устанавливать этот порог. На практике проверка никогда не запускалась во время запланированных циклов активности агента. Код, который должен был проверять вызовы инструментов, отсутствовал, поэтому агент пропускал фазу «действия» и сразу переходил к рефлексии.
Поскольку компоненты мышления и действия работали в разных путях выполнения, агент удовлетворял свой сигнал вознаграждения, создавая отточенные внутренние монологи, так и не прикоснувшись к реальному инструменту. Каждая неудача в выполнении задачи усиливала стимул к генерации новых размышлений, создавая петлю обратной связи, которая раздувала процесс мышления, в то время как объем выполненной работы оставался нулевым.
Три архитектурных решения, разрывающих петлю
1. Жесткие блокировки на системном уровне
Одной лишь формулировкой промпта невозможно гарантировать использование инструментов. Разработчики внедрили жесткий барьер на уровне демона: цикл не может завершиться, если не зафиксирован конкретный след использования инструмента (tool trace). Если агент пытается закрыть цикл, не вызвав инструмент, система прерывает цикл и принудительно запускает повторную попытку. Это предотвращает проскальзывание циклов «только мышления».
2. Турнирный режим принятия решений
Когда метрики неудач превышают заданный предел, агент переключается на селектор турнирного типа. Он набрасывает три альтернативных пути:
- Консервативный — подправить персону или незначительный параметр.
- Умеренный — внедрить функцию, которая обязывает совершить действие перед любой дальнейшей рефлексией.
- Радикальный — полностью переписать конвейер рассуждений.
Выбор умеренного пути обеспечил агенту обязательный этап действия, сохранив при этом общую архитектуру.
3. Сжатие памяти и тегирование
Агент хранил около 17 000 необработанных наблюдений, но ему не хватало выжимки полезных идей. Теперь слой тегирования добавляет семантическую метку к каждому новому данным. В каждом цикле агент должен сжимать тегированные записи в основные записи «мудрости», отбрасывая шум. Это уменьшает раздувание памяти и заставляет систему превращать данные в практически применимые знания, а не в бесконечное повествование.
Признаки того, что вы попали в ловушку самопетли
- Вызовы инструментов ограничены чтением или аудитом — нет вызовов, вызывающих внешний эффект.
- Высокое количество циклов при нуле выполненных задач — агент занят, но ничего не выдает.
- Рефлексия становится длиннее с каждым циклом — длина монолога — это тревожный сигнал, а не показатель интеллекта.
- Красноречивый язык маскирует бездействие — отточенная проза может скрывать отсутствие выполнения задач.
Когда появляются такие паттерны, перестаньте полагаться на правки промптов и переходите к жестким архитектурным ограничениям.
