Агентный цикл и критерий остановки
Агент — это LLM, запущенная в цикле «думай → действуй → наблюдай». Звучит просто, но два вопроса определяют, будет ли агент работать: как он решает, что делать дальше, и как понимает, что пора остановиться. Второй вопрос на собеседованиях любят особенно.
Интуиция
Чат-бот отвечает на сообщение и умолкает. Пайплайн выполняет заранее заданную цепочку шагов. Агент (agent) — другое: модель сама решает, какие шаги нужны и сколько их будет. Дал задачу «почини баг» — и агент читает файлы, запускает тесты, правит код, снова запускает — пока не решит, что готово. Классическая формулировка этого цикла — ReAct (Reasoning + Acting): модель чередует рассуждение («тест ждёт 4, а функция возвращает 5 — где-то лишняя единица») и действие (вызов инструмента, см. tool calling), затем наблюдает результат и рассуждает снова.
Как это работает
Один виток цикла: THINK → ACT → OBSERVE. Модель получает всю накопленную историю — задачу, свои прошлые действия и их результаты, — генерирует следующий tool call, код исполняет его, результат дописывается в контекст. Полная последовательность «мысль → действие → наблюдение → …» называется траекторией (trajectory) — именно её читают при отладке агента, а не только финальный ответ.
Когда цикл останавливается? Четыре критерия, обычно комбинируются:
- Модель сама сказала «готово» — ответила текстом без tool call. Самый дешёвый критерий и самый ненадёжный: «считаю, что готово» ≠ «готово».
- Задача проверяемо выполнена — тесты прошли, линтер молчит, файл существует. Самый надёжный критерий: успех превращается из мнения модели в наблюдаемый факт.
- Лимит итераций / бюджет токенов — страховка от бесконечного цикла и неограниченных расходов. Остановка по лимиту означает «не доделал», а не «провалил».
- Детекция зацикливания — агент повторяет одни и те же действия без прогресса (три раза подряд запускает один тест с тем же результатом). Это сигнал прервать или сменить стратегию.
Почему длинные циклы опасны: ошибки компаундятся. Если каждый шаг успешен с вероятностью 95%, траектория из 20 шагов доходит до конца с вероятностью
Поэтому надёжность на шаг важнее «ума»: верификация результата (запуск тестов, модель-критик, проверка схемы вывода) даёт агенту заметить свою ошибку и исправиться — это резко поднимает итоговый процент успеха.
Отладка траекторий
Главный рабочий инструмент агентостроителя — чтение траекторий. Финальный ответ может выглядеть прилично, а внутри — модель трижды прочитала не тот файл и «починила» тест, ослабив проверку. Типовые находки при разборе: агент не увидел важную часть вывода инструмента (обрезали результат), выбрал не тот тул из-за расплывчатого описания, зациклился на неработающей стратегии. Логируйте каждый виток: что модель думала, что вызвала, что получила — без этого агент неотлаживаем.
Верификация: превращаем мнение в факт
Самый большой скачок надёжности даёт петля самопроверки: после «готово» агент обязан прогнать проверку — тесты, компиляцию, валидацию схемы, а для нечётких задач — модель-критика (critic / LLM-as-judge), которая оценивает результат по чек-листу. Провалилась проверка — наблюдение возвращается в цикл, и агент чинит дальше. В интерактиве выше это видно наглядно: без верификации агент «успешно» останавливается с недочиненным багом.
- «Чем агент отличается от пайплайна?» — в пайплайне последовательность шагов задана кодом заранее; агент сам выбирает следующий шаг и их количество по ситуации.
- «Как агент понимает, что пора остановиться?» — перечислите все четыре критерия и подчеркните: проверяемое условие успеха надёжнее самооценки модели.
- «Почему агенты ломаются на длинных задачах?» — компаундинг ошибок: 95% на шаг это лишь ≈36% на 20 шагов; лечится верификацией и короткими проверяемыми подзадачами.
- «Как отлаживать агента?» — читать траектории целиком, а не финальные ответы; искать зацикливания, потерянные наблюдения, неверный выбор тулов.