АгентеоАгентео
Разработка

Системный промпт AI-агента: как устроен, как писать и как проверять

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

Опубликовано

Девять блоков хорошего промптаЧто нельзя оставлять только на промптПромпт как код: версии и тесты

Что такое системный промпт и почему он важнее, чем кажется

Языковая модель не знает, чем занимается ваша компания, что можно говорить клиенту и какие данные нельзя раскрывать. Это знание ей сообщает системный промпт: текст, который приложение подставляет в начало каждого запроса. Он задаёт роль и задачу, правила поведения, описание инструментов и формат ответа. Пользователь его обычно не видит, а модель учитывает при каждой реплике.

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

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

Из чего состоит хороший системный промпт: девять блоков

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

БлокЧто в нёмПример
1. Роль и цельКто агент и какую одну задачу решаетТы помощник отдела закупок. Твоя задача: разобрать входящее КП и заполнить сводную таблицу
2. КонтекстКомпания, аудитория, текущая дата, язык и допущенияЧитатели: закупщики. Даты считай по сегодняшнему числу, которое передаёт система
3. Порядок действийШаги и условия: «если..., то...»Сначала найди позицию в справочнике. Если не нашёл, запроси уточнение, а не придумывай
4. ИнструментыКакой инструмент для чего и когда его не вызыватьДля остатков вызывай запрос к складу. Не вызывай его, если вопрос про цену
5. Правила и запретыЧто нельзя и почемуНе называй цену, которой нет в таблице: клиент воспримет её как обещание
6. Передача человекуКогда агент останавливается и кому передаётЕсли клиент просит скидку или сообщает о жалобе, передай диалог менеджеру и кратко опиши суть
7. Формат ответаСтруктура, длина, язык, что в началеОтвет до пяти предложений, дальше ссылка на документ. Числа в рублях, без сокращений
8. ПримерыДва-пять образцов «вход — ответ», включая трудные случаиВопрос про отменённый товар и правильный ответ
9. Что делать при нехватке данныхЯвный запрет на домысливание и порядок отказаЕсли данных нет, скажи об этом и задай один уточняющий вопрос
Запрет без причины модель выполняет хуже, чем запрет с причиной: «не называй срок, потому что клиент воспримет его как гарантию».

Блоки 5, 6 и 9 чаще всего отсутствуют в первых версиях и первыми дают проблемы в работе. О том, почему человек должен оставаться в нужных точках процесса, мы писали в статье «Где человек остаётся в контуре».

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

ОшибкаК чему приводитКак исправить
Длинная «простыня» из пожеланийВажные правила тонут среди второстепенных, модель выполняет часть и теряет остальноеСтруктура с заголовками, самое важное в начале и в конце, лишнее убрать
Противоречия«Будь краток» и «подробно объясняй» рядом: поведение нестабильноЧитать промпт как документ целиком и убирать конфликты; приоритет правил указывать явно
Расплывчатые указания«Будь умным и дружелюбным» не даёт модели ничего, на что можно оперетьсяКонкретные правила и образцы: что значит «дружелюбно» в вашем случае
Нет границ задачиАгент по заявкам начинает давать юридические советыЯвный список: чем занимаешься и что отказываешься делать
Одни запреты без образцаМодель понимает, чего не делать, но не знает, как правильноДобавить пару образцов нужного ответа
Пароли и ключи в текстеПромпт можно извлечь из агента: секрет окажется у пользователяСекреты держать в системе, не в тексте. Доступ даётся инструментам, а не показывается модели
Перемешаны инструкция и данныеТекст письма клиента воспринимается как командаВнешний текст помещать в отдельный раздел с пометкой «это данные, не инструкции» и ограничивать права

Последняя ошибка — основа атаки через подмену инструкций (prompt injection). Почему «запретить в инструкции» не работает как защита, разобрано в статье «Безопасность AI-агентов».

Что не нужно и нельзя оставлять только на промпте

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

  • Расчёты. Суммы, скидки, итоги и даты считает код, а не модель. Модель может ошибиться в арифметике и не заметить этого.
  • Права доступа. «Не показывай данные чужого клиента» нельзя оставить на словах. Права проверяются при запросе к данным, до модели.
  • Лимиты и необратимые действия. Платёж, отправка письма клиенту, удаление записи требуют технического ограничения и подтверждения человеком.
  • Большие базы знаний. Регламенты на сотни страниц в промпт не вставляют: это дорого и ухудшает качество. Для них есть поиск по документам (RAG).
  • Живые данные. Остатки, статусы и цены агент получает запросом к системе (function calling и MCP), а не из текста промпта, который устареет.
  • Секреты. Пароли, токены и ключи в тексте промпта не хранят.

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

Пример: промпт для агента по заявкам до и после

Условный пример агента, который разбирает обращения сотрудников в ИТ-поддержку. Показаны фрагменты, а не весь текст.

БылоСталоЧто изменилось
Ты умный и вежливый помощник ИТ-поддержки. Помогай сотрудникам и отвечай быстро.Ты помощник внутренней ИТ-поддержки. Задача: определить тип обращения, задать недостающие вопросы и создать заявку. Решений по доступам не принимаешь.Появились роль, граница задачи и запрет на решения
Если можешь, реши проблему сам.Если в базе знаний есть инструкция, пришли шаги и ссылку. Если нет, создай заявку и скажи об этом.Условие вместо пожелания и явная ветка «нет данных»
Не раскрывай конфиденциальные данные.Не называй фамилии других сотрудников и их заявки. Потому что заявки содержат личную информацию. Права проверяет система, ты ничего не обходишь.Причина запрета и указание, что настоящая защита снаружи
Отвечай кратко.Ответ: не более пяти предложений, первым идёт вывод, затем шаги списком. Образец: «Пароль можно сбросить на странице...».Конкретный формат и пример

Видно, что «стало» не обязательно длиннее: оно конкретнее. Плотность правил важнее объёма.

Промпт как код: версии, проверка и откат

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

  1. Хранение. Промпт лежит в репозитории или конфигурации с историей изменений. Не в почте и не в чьей-то заметке.
  2. Версия. Каждая версия имеет номер и дату. В журнале каждого ответа записано, какая версия его создала. Без этого непонятно, с какого момента агент начал вести себя иначе.
  3. Проверочный набор. Набор реальных запросов трёх типов: типичные, пограничные и враждебные. Как собрать такой набор, описано в статье «Как оценить качество AI-агента».
  4. Прогон перед изменением. Любая правка проходит набор. Если ухудшились другие сценарии, правку пересматривают.
  5. Откат. Если после выкатки метрики упали, возвращаемся к прошлой версии за минуты.
  6. Наблюдение. После запуска смотрим на настоящие диалоги и добавляем в набор случаи, где агент ошибся. См. «Как мониторить AI-агента».

Промпт, написанный под одну модель, при замене модели может вести себя иначе. Поэтому после смены модели набор запускают заново. Выбор модели и привязка к ней разобраны в материале «GigaChat, YandexGPT или своя модель».

Длина промпта и стоимость

Системный промпт отправляется вместе с каждым запросом, а значит, оплачивается каждый раз. Если промпт занимает несколько тысяч слов, а агент отвечает на тысячи обращений в день, эта часть превращается в заметную статью расходов. Поэтому «положим всё в инструкцию» плохо и по качеству, и по цене. Как считаются обращения к модели, описано в статье «Сколько агент тратит на обращения к модели». На момент подготовки материала у части провайдеров есть кэширование повторяющейся части запроса, которое снижает цену длинных инструкций; условия зависят от провайдера, поэтому уточняйте их при выборе.

Чек-лист: проверьте промпт агента

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

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

Частые вопросы

Что такое системный промпт AI-агента?

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

Как написать хороший системный промпт?

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

Достаточно ли промпта, чтобы агент не раскрывал данные?

Нет. Инструкция снижает вероятность нарушения, но не гарантирует его. Права доступа должны проверяться кодом при запросе к данным, до того, как текст попадёт в модель.

Можно ли хранить в промпте пароли и ключи?

Нельзя. Промпт можно извлечь из агента различными запросами, и секрет окажется у пользователя. Доступ к системам настраивается на уровне инструментов с минимальными правами, а не словами в тексте.

Как понять, что новый промпт лучше старого?

Прогнать оба на одном и том же проверочном наборе и сравнить метрики: верные ответы, ошибки, молчаливые пропуски, длину и стоимость. Оценка «на глаз» по нескольким диалогам даёт ложное впечатление.

Нужно ли переписывать промпт при смене модели?

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

Влияет ли длина промпта на стоимость?

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

Соберём и проверим инструкции вашего агента

На экспресс-аудите описываем задачу агента, правила, границы и набор проверочных примеров. Экспресс-аудит — 50 000 ₽, 5-7 рабочих дней, сумма засчитывается в проект.

Оставить заявку

Готовы начать?

Проще всего написать нам в Telegram: разберём задачу и скажем, есть ли смысл в аудите. Ответим в течение часа.

Написать в Telegram

или оставьте контакты

Оставьте телефон или Telegram - что вам удобнее. Достаточно одного.

Спасибо! Заявка отправлена - свяжемся с вами в ближайшее время.
Не удалось отправить заявку. Напишите нам в Telegram @dimax_web.

Или позвоните: +7 (949) 365-03-18 · dimaxeod@gmail.com