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