Перейти к содержимому
Команда ClaudexiaПРАКТИКА

Промпты для агентов пишутся иначе, чем для чата: цели, ограничения, условия остановки

В чате модель отвечает один раз и ждёт следующую реплику. Агент сам решает, что делать дальше, и плохо описанная цель превращается в лишние шаги и лишние деньги. Как формулировать промпт для агентного цикла.

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

Чем агентный цикл отличается от чата

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

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

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

Формулируйте цель, а не пошаговую инструкцию

Частая ошибка, писать агенту подробный список шагов, как для скрипта. Это работает до первого отклонения от сценария: файл не найден, тест не прошёл, API вернул неожиданный формат. Жёсткая инструкция не предусматривает такие случаи, и агент либо застревает, либо действует наугад.

Лучше работает описание цели и критерия успеха: что должно быть верно в конце, а не какими именно командами туда прийти. "Все тесты в пакете проходят" работает лучше, чем "запусти команду X, потом Y, потом Z". Агент сам подберёт шаги, а если один путь не сработает, попробует другой, не выходя за рамки цели.

Ограничения важнее возможностей

В промпте для чата вы описываете, что модель может сделать. В промпте для агента важнее описать, чего она делать не должна.

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

Хорошая проверка: прочитайте промпт и спросите, что помешает агенту зайти туда, куда вы не планировали. Если ответа нет, ограничения не описаны, а только подразумеваются.

Условие остановки обязательно

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

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

Как описывать инструменты для агента

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

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

Частые ошибки в агентных промптах

Промпт, скопированный из чат-бота без адаптации, редко работает: в нём нет условий остановки и ограничений, потому что в чате они не нужны.

Слишком общая цель без критерия успеха заставляет агента гадать, когда задача завершена, и он либо останавливается рано, либо продолжает работу сверх нужного.

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

Коротко

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