Промпт для чата и промпт для агента решают разные задачи, даже если пишет их один и тот же человек. В чате модель отвечает и передаёт ход обратно. Агент сам выбирает следующий шаг, а значит и ошибки в промпте он будет повторять сам, без вашего вмешательства.
Чем агентный цикл отличается от чата
В чате цена неточной формулировки, один неидеальный ответ. Пользователь поправил, модель переспросила, разговор продолжился.
В агентном цикле модель читает свой же промпт на каждой итерации: перед вызовом инструмента, после его результата, перед следующим решением. Здесь нет разовых ошибок. Неточность в системном промпте умножается на число шагов. Агент, который слегка неправильно понял задачу, за десять шагов уйдёт заметно дальше от цели, чем собеседник в чате за одну реплику.
Отсюда простое следствие: для агента формулировка важнее, чем для чата, а не наоборот, хотя интуитивно кажется обратное.
Формулируйте цель, а не пошаговую инструкцию
Частая ошибка, писать агенту подробный список шагов, как для скрипта. Это работает до первого отклонения от сценария: файл не найден, тест не прошёл, API вернул неожиданный формат. Жёсткая инструкция не предусматривает такие случаи, и агент либо застревает, либо действует наугад.
Лучше работает описание цели и критерия успеха: что должно быть верно в конце, а не какими именно командами туда прийти. "Все тесты в пакете проходят" работает лучше, чем "запусти команду X, потом Y, потом Z". Агент сам подберёт шаги, а если один путь не сработает, попробует другой, не выходя за рамки цели.
Ограничения важнее возможностей
В промпте для чата вы описываете, что модель может сделать. В промпте для агента важнее описать, чего она делать не должна.
Агент с доступом к инструментам может удалить файл, отправить запрос во внешний сервис, потратить бюджет на цепочку из тридцати вызовов, если вы не сказали иначе. Прав доступа для этого мало. Нужны явные границы прямо в промпте: какие файлы не трогать, какие действия требуют подтверждения, какой объём работы считается разумным для одной задачи.
Хорошая проверка: прочитайте промпт и спросите, что помешает агенту зайти туда, куда вы не планировали. Если ответа нет, ограничения не описаны, а только подразумеваются.
Условие остановки обязательно
У чата условие остановки естественное: модель ответила, ход передан пользователю. У агента такого ограничителя нет, и без явного условия он будет продолжать попытки до предела по числу шагов или по токенам, если такой предел вообще стоит на уровне кода.
В промпт стоит закладывать явные условия завершения: когда задача считается выполненной, когда стоит остановиться и спросить пользователя, а когда прекратить попытки и сообщить о неудаче вместо того, чтобы пробовать бесконечно. Без последнего пункта агент, который не может решить задачу, будет пытаться снова и снова, и каждая попытка это токены.
Как описывать инструменты для агента
Инструмент для агента, это часть промпта не меньше, чем системная инструкция. Название и описание инструмента формируют у модели ожидание, когда его вызывать, и плохое описание провоцирует неверные вызовы так же, как плохая инструкция.
Тут есть простое правило. Описание инструмента должно отвечать на три вопроса без домыслов: что он делает, какие параметры обязательны, что вернётся в случае ошибки. Если инструмент может завершиться неудачей несколькими разными способами, опишите их отдельно, иначе агент будет обрабатывать любую ошибку одинаково и часто неправильно.
Частые ошибки в агентных промптах
Промпт, скопированный из чат-бота без адаптации, редко работает: в нём нет условий остановки и ограничений, потому что в чате они не нужны.
Слишком общая цель без критерия успеха заставляет агента гадать, когда задача завершена, и он либо останавливается рано, либо продолжает работу сверх нужного.
Отсутствие бюджета по шагам или токенам в самом промпте, частая причина неожиданно длинных и дорогих запусков. Стоит явно указать разумный лимит попыток и сослаться на него в условии остановки.
Коротко
Чат и агент читают промпт по-разному: чат один раз, агент на каждом шаге. Поэтому цель и критерий успеха важнее пошагового сценария, ограничения важнее списка возможностей, а условие остановки не опция, а обязательная часть промпта. Без него цена ошибки растёт с каждой лишней итерацией.