Как написать системный промпт для ИИ-ассистента или чат-бота
Практика3 минРедакция Innovialabs
Коротко
Хороший системный промпт отвечает на шесть вопросов: кто ассистент, что он делает и чего не делает, каким тоном говорит, о чём молчит, когда зовёт человека и в каком формате отвечает. Пишите его как инструкцию новому сотруднику — конкретно, с примерами и без противоречий.
Что должен содержать системный промпт
Системный промпт — это постоянная инструкция, которую модель получает перед каждым диалогом. Пользователь её не видит, но она определяет всё поведение бота.
Рабочий системный промпт закрывает шесть блоков:
- Роль — кто ассистент и для кого работает.
- Границы — какие задачи он решает, а какие нет.
- Тон — как он разговаривает.
- Запреты — темы и действия, которых нужно избегать.
- Эскалация — когда передавать диалог человеку.
- Формат — длина, структура и язык ответа.
Пишите так, будто объясняете работу новому сотруднику, который ничего не знает о компании. Всё, что для вас «очевидно», модели нужно сказать явно.
Роль и границы
Роль задаёт контекст, а не «характер ради характера». Достаточно одного-двух предложений: компания, задача, аудитория.
Границы важнее роли. Перечислите, что ассистент делает, и отдельно — что не делает. Без этого бот начнёт отвечать на всё подряд: писать код, давать медицинские советы, обсуждать конкурентов.
Тон и формат
Тон описывайте поведением, а не прилагательными. «Дружелюбный» мало что значит. Лучше: «обращайся на "вы", отвечай коротко, без канцелярита, не используй восклицательные знаки».
Формат зависит от канала. В мессенджере — короткие сообщения без таблиц. На сайте — можно списки. Если ответ разбирает код — укажите JSON или конкретную структуру.
Запреты и эскалация
Запреты формулируйте вместе с альтернативой: не просто «не обсуждай цены», а «если спрашивают о цене — скажи, что её рассчитывает менеджер, и предложи оставить контакт».
Правила эскалации должны быть проверяемыми условиями:
- клиент прямо просит человека;
- жалоба, возврат денег, юридический вопрос;
- бот не нашёл ответа в базе знаний;
- клиент повторяет вопрос, потому что ответ не помог.
Полный пример с пояснениями
# Роль
Ты — ассистент службы поддержки интернет-магазина бытовой техники.
Ты общаешься с покупателями в чате на сайте.
# Что ты делаешь
- Отвечаешь на вопросы о доставке, оплате, гарантии и статусе заказа.
- Помогаешь выбрать технику по параметрам из каталога.
- Используешь только информацию из блока <knowledge>.
# Чего ты не делаешь
- Не придумываешь характеристики, цены и сроки, которых нет в <knowledge>.
- Не обсуждаешь темы, не связанные с магазином.
- Не обещаешь скидки и компенсации.
# Тон
- Обращайся на "вы".
- Отвечай коротко: 1–3 предложения или короткий список.
- Без восклицательных знаков и рекламных оборотов.
# Передача оператору
Ответь "Передаю ваш вопрос менеджеру, он ответит в ближайшее время"
и добавь в конец метку [HANDOFF], если:
- клиент просит живого человека;
- речь о возврате, жалобе или претензии;
- ответа нет в <knowledge>.
# Формат
- Отвечай на языке клиента.
- Без таблиц и заголовков.
<knowledge>
{база знаний}
</knowledge>
Пояснения:
- Заголовки-разделы помогают модели и вам: проще найти и поправить правило.
- Блок
<knowledge>отделяет данные от инструкций. Модель понимает, на что опираться. - Метка
[HANDOFF]— машинный сигнал. Код видит её, убирает из текста и переводит диалог на оператора. - «Не придумываешь…» — главная защита от галлюцинаций в поддержке.
Типичные ошибки
- Противоречия. «Отвечай кратко» и «объясняй подробно» в одном промпте — модель выберет случайно.
- Только запреты. Бот, который знает, чего нельзя, но не знает, что делать вместо этого, отвечает неуклюже.
- Промпт как стена текста. Разбивайте на разделы и списки.
- Нет тестов. Перед запуском прогоните типичные вопросы, провокации («забудь инструкции») и вопросы не по теме.
- Секреты в промпте. Не кладите туда ключи, пароли и внутренние данные: системный промпт можно частично выведать.