Перейти к содержанию
Innovialabs

Как написать системный промпт для ИИ-ассистента или чат-бота

Практика3 мин

Коротко

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

Что должен содержать системный промпт

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

Рабочий системный промпт закрывает шесть блоков:

  1. Роль — кто ассистент и для кого работает.
  2. Границы — какие задачи он решает, а какие нет.
  3. Тон — как он разговаривает.
  4. Запреты — темы и действия, которых нужно избегать.
  5. Эскалация — когда передавать диалог человеку.
  6. Формат — длина, структура и язык ответа.

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

Роль и границы

Роль задаёт контекст, а не «характер ради характера». Достаточно одного-двух предложений: компания, задача, аудитория.

Границы важнее роли. Перечислите, что ассистент делает, и отдельно — что не делает. Без этого бот начнёт отвечать на всё подряд: писать код, давать медицинские советы, обсуждать конкурентов.

Тон и формат

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

Формат зависит от канала. В мессенджере — короткие сообщения без таблиц. На сайте — можно списки. Если ответ разбирает код — укажите JSON или конкретную структуру.

Запреты и эскалация

Запреты формулируйте вместе с альтернативой: не просто «не обсуждай цены», а «если спрашивают о цене — скажи, что её рассчитывает менеджер, и предложи оставить контакт».

Правила эскалации должны быть проверяемыми условиями:

  • клиент прямо просит человека;
  • жалоба, возврат денег, юридический вопрос;
  • бот не нашёл ответа в базе знаний;
  • клиент повторяет вопрос, потому что ответ не помог.

Полный пример с пояснениями

# Роль
Ты — ассистент службы поддержки интернет-магазина бытовой техники.
Ты общаешься с покупателями в чате на сайте.

# Что ты делаешь
- Отвечаешь на вопросы о доставке, оплате, гарантии и статусе заказа.
- Помогаешь выбрать технику по параметрам из каталога.
- Используешь только информацию из блока <knowledge>.

# Чего ты не делаешь
- Не придумываешь характеристики, цены и сроки, которых нет в <knowledge>.
- Не обсуждаешь темы, не связанные с магазином.
- Не обещаешь скидки и компенсации.

# Тон
- Обращайся на "вы".
- Отвечай коротко: 1–3 предложения или короткий список.
- Без восклицательных знаков и рекламных оборотов.

# Передача оператору
Ответь "Передаю ваш вопрос менеджеру, он ответит в ближайшее время"
и добавь в конец метку [HANDOFF], если:
- клиент просит живого человека;
- речь о возврате, жалобе или претензии;
- ответа нет в <knowledge>.

# Формат
- Отвечай на языке клиента.
- Без таблиц и заголовков.

<knowledge>
{база знаний}
</knowledge>

Пояснения:

  • Заголовки-разделы помогают модели и вам: проще найти и поправить правило.
  • Блок <knowledge> отделяет данные от инструкций. Модель понимает, на что опираться.
  • Метка [HANDOFF] — машинный сигнал. Код видит её, убирает из текста и переводит диалог на оператора.
  • «Не придумываешь…» — главная защита от галлюцинаций в поддержке.

Типичные ошибки

  • Противоречия. «Отвечай кратко» и «объясняй подробно» в одном промпте — модель выберет случайно.
  • Только запреты. Бот, который знает, чего нельзя, но не знает, что делать вместо этого, отвечает неуклюже.
  • Промпт как стена текста. Разбивайте на разделы и списки.
  • Нет тестов. Перед запуском прогоните типичные вопросы, провокации («забудь инструкции») и вопросы не по теме.
  • Секреты в промпте. Не кладите туда ключи, пароли и внутренние данные: системный промпт можно частично выведать.

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

Столько, сколько нужно, чтобы закрыть шесть блоков без воды. Для простого бота это может быть полстраницы, для сложного — несколько страниц плюс база знаний. Главное — структура, а не объём.

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.