Алексей Маркин рабочий журнал

ищет по заголовкам и тексту записей и заметок

запись 9 сентября 2026 г. · 4 мин
Все статьи

Цикл агента: цель, план, инструмент, наблюдение, остановка

Пять шагов, из которых обычно реализуют четыре. Разбираю, что делает каждый, почему забывают последний и как выглядит цикл, который можно эксплуатировать.

Короткий ответ: агент — это цикл из пяти шагов. Получить цель, выбрать следующее действие, выполнить его инструментом, посмотреть на результат, решить — продолжать или остановиться.

Реализуют обычно четыре. Пятый — остановку — дописывают после первого инцидента, когда агент полночи ходил по кругу и утром обнаружился счёт.

Пять шагов

Цель. Формулировка того, что должно стать правдой. Не «открой чат», а «найди контакт, напиши сообщение и отправь». Разница принципиальна: промежуточное состояние не является достижением цели, и агент, у которого цель подменена первым шагом, останавливается на полпути с рапортом об успехе.

План. Не обязательно записанный: выбор следующего действия и есть план на один шаг. Явный план полезен другим — человеку, который его прочтёт до того, как что-то произойдёт.

Инструмент. Вызов чего-то за пределами модели: чтение файла, запрос к базе, клик в интерфейсе. Ровно здесь агент отличается от разговора, и ровно здесь у него появляются права — а значит, и то, чем можно навредить.

Наблюдение. Результат вызова возвращается в цикл. Не «модель считает, что получилось», а фактическое новое состояние: содержимое файла, код ответа, новый кадр экрана.

Остановка. Условие, при котором цикл заканчивается. Их всегда несколько: цель достигнута, бюджет исчерпан, требуется человек, прогресса нет.

ЦельПлан шагаИнструментНаблюдениеновое состояниеследующий шагостановкацель достигнутабюджет исчерпаннужен человек
рис. 1 Цикл и три выхода из него. Успех — только один из них; два других обязаны существовать, иначе цикл не завершается, а истощается.

Почему забывают остановку

Потому что на демонстрации она не нужна. Задача решается за четыре шага, цикл завершается сам, и условие выхода выглядит перестраховкой.

Ломается это не на сложной задаче, а на невыполнимой. Файла нет, кнопка переименована, доступ отозван. Агент не умеет сказать «я не могу»: он умеет предлагать следующее действие, и на любом состоянии предложит. Дальше он переоткрывает то же окно, переформулирует тот же запрос, пробует соседнюю кнопку — бесконечно и за деньги.

Отсюда правило, которое стоит принять до первой реализации: условие остановки — не защита от ошибок, а часть определения цикла. Цикл без него не завершается, а истощается: заканчивается лимит, терпение или бюджет.

Что считать наблюдением

Место, где чаще всего срезают угол. Соблазн — считать наблюдением ответ модели о том, что она сделала. Это не наблюдение, это пересказ намерения.

Настоящее наблюдение приходит снаружи модели: код ответа, содержимое файла после записи, новый снимок экрана. В контуре управления интерфейсом, который я разбирал в «Агенте на рабочем столе», это выражено жёстко: успех засчитывается только после нового кадра, подтверждающего результат.

Признак, по которому легко себя проверить: если убрать модель, останется ли способ узнать, что шаг удался. Если нет — наблюдения в цикле нет.

Условие несогласия

Для задач в один-два шага цикл избыточен. «Разбери письмо и верни поля» не нуждается ни в плане, ни в остановке: это вызов модели со схемой вывода, и превращать его в агента — усложнение без выигрыша.

Граница проходит по вопросу, известна ли последовательность шагов заранее. Известна — это конвейер, и он надёжнее. Неизвестна — тогда агент, и тогда нужны все пять шагов, включая пятый.

Чего я делать не стал бы

Не стал бы давать агенту право на необратимое внутри цикла. Шаг, который нельзя отменить, должен выходить из цикла к человеку — спросить дешевле, чем откатить.

Не стал бы полагаться только на лимит шагов как на остановку. Он ловит зацикливание, но не ловит бессмысленную работу: двадцать три осмысленных шага в неверном направлении уложатся в любой бюджет.

Не стал бы прятать план от человека. План — самая дешёвая точка вмешательства: он читается за минуту, а результат проверяется за час.

Открытый вопрос

Из пяти шагов формализуется четыре. Остановка «прогресса нет» — единственная, для которой у меня нет надёжного критерия: отличить топтание от медленного продвижения по внешним признакам трудно, а изнутри модель этого не видит вовсе — для неё каждый следующий шаг выглядит разумным.

Сравнение соседних состояний помогает грубо: если кадр не изменился и файл не изменился, шаг был холостым. Но задача, где два холостых шага — нормальная часть поиска, ломает и этот критерий.