System Prompt
system prompt — глобальная инструкция, задающая характер модели
System Prompt — отдельная инструкция языковой модели, задающая её роль, характер, формат ответа и ограничения. В отличие от обычного user prompt, система не видна в чате и действует на каждый ответ. Через system prompt делают AI-ассистентов: «ты — поддержка пользователей нашего сервиса», «ты — психолог», «отвечай только в формате JSON». Главный инструмент настройки поведения LLM без переобучения.
Коротко
Коротко. System Prompt — это «инструкция перед инструкцией» для LLM. В API ChatGPT, Claude, Gemini это отдельное поле
role: "system", действующее на все следующие сообщения чата. Задаёт роль, тон, формат, запреты. Пользователь системный промпт не видит. Например:«Ты — корректор русских текстов. Возвращай только исправленный текст без комментариев.»— после этого модель ведёт себя как корректор, что бы пользователь ни попросил.
Что это такое
Разработчик делает чат-бота для своего сайта про комнатные растения. Пользователь спрашивает «как поливать монстеру?». Без system prompt ChatGPT отвечает в обычном своём стиле: длинный ответ, отступления, «как ИИ-помощник я могу…».
Разработчик добавляет system prompt:
Ты — садовод-консультант сайта «Зелёный дом».
Отвечай коротко (3–5 предложений).
Только про комнатные растения.
На вопросы не по теме — вежливо переводи разговор обратно.
Тон дружелюбный, без канцелярита. На «вы».
Теперь ChatGPT отвечает как нужно: короче, по теме, в нужном тоне. Пользователь не видит инструкцию — она работает «фоном».
К 2026-му system prompt — стандартный механизм для:
- Чат-ботов на сайтах — задать роль и тематику.
- AI-ассистентов в продуктах — определить личность.
- API-интеграций — фиксировать формат ответа (JSON, Markdown, краткость).
- Ролевых игр — сделать модель «персонажем».
- Образовательных приложений — настроить уровень ответа под аудиторию.
Как это работает
В API большинства LLM (OpenAI, Anthropic, Google, локальные модели через Ollama) запрос — это массив сообщений с ролями:
{
"messages": [
{"role": "system", "content": "Ты — корректор..."},
{"role": "user", "content": "Привет!"},
{"role": "assistant", "content": "Здравствуйте..."},
{"role": "user", "content": "Поправь: ..."}
]
}
System-сообщение идёт первым и даёт модели контекст для всего диалога. Дальше идёт чередование user (вопрос пользователя) и assistant (ответ модели).
Внутри модели system prompt получает специальные токены-маркеры: <|im_start|>system\n...\n<|im_end|> (формат OpenAI ChatML) или аналогичные у других. Модель училась распознавать эти границы.
Главные паттерны хорошего system prompt:
- Роль: «Ты — корректор/консультант/учитель/врач».
- Тон: «Спокойный, без эмодзи, с уважением».
- Формат: «Markdown с заголовками», «только код без объяснений», «JSON со схемой…».
- Ограничения: «Не отвечай на вопросы вне темы», «Не давай юридические советы».
- Примеры: короткие few-shot примеры в самом system'е.
Пример на практике
Программист пишет API-обёртку для генерации SEO-описаний товаров. Через Claude API:
import anthropic
client = anthropic.Anthropic()
SYSTEM = """Ты — SEO-копирайтер интернет-магазина электроники.
Задача: получаешь название товара и характеристики, возвращаешь:
1. Заголовок (до 60 символов)
2. Meta-description (до 155 символов)
3. Описание для карточки (300-400 слов, в Markdown)
Стиль: дружелюбный, без рекламного восторга. Без слов «уникальный»,
«революционный», «инновационный». Без эмодзи в Title и Meta.
Возвращай только три блока, разделённые `---`. Без дополнительных комментариев."""
resp = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=2000,
system=SYSTEM,
messages=[{"role": "user", "content": "Товар: Sony WH-1000XM5..."}]
)
Модель возвращает ровно то, что нужно: три блока в нужном формате. Без system prompt пришлось бы каждый раз в user-сообщении расписывать формат и ограничения.
В ChatGPT через интерфейс system prompt задаётся в Custom Instructions (одно поле для всех чатов). В API через поле system или сообщение с role: "system".
С чем часто путают
- System Prompt и User Prompt — System задаёт контекст для всего диалога. User — конкретный запрос. System не виден пользователю в финальном чате.
- System Prompt и Memory — Memory это долгосрочное сохранение фактов о пользователе между сессиями. System Prompt — текущая инструкция для одной сессии.
- System Prompt и Context Window — System занимает место в context window. Длинный system + длинный диалог могут переполнить окно.
- System Prompt и Few-Shot — Few-shot это примеры в виде user/assistant пар. Часто их кладут после system prompt'а.
- OpenAI system role и Anthropic system parameter — у OpenAI это сообщение в массиве, у Anthropic — отдельный параметр в API. Функционально одинаково.
Частые ошибки и заблуждения
- «System prompt можно сделать модель делать что угодно». Не совсем. У моделей есть встроенные ограничения (alignment), которые перекрывают system. Модель не сделает вредное даже если в system это разрешено.
- «System prompt больше = лучше». До определённого предела. После 1000–2000 слов модель начинает терять детали из начала. Структурировать и сокращать.
- «System prompt в чате защищён от пользователя». Не полностью. Пользователь может попытаться извлечь system prompt через специальные запросы (prompt injection). Не храните в нём секреты.
- «System prompt в API == Custom Instructions в ChatGPT». Похожи, но не идентичны. Custom Instructions имеют ограничение по длине и применяются ко всем чатам пользователя.
- «System prompt одинаково работает во всех моделях». Сила следования различается. GPT-4, Claude 3.5+, Gemini 2 — хорошо. Старые и маленькие модели часто игнорируют system на сложных диалогах.
Связанные термины
- Prompt — общий концепт, в который входит system.
- Prompt Engineering — искусство писать system prompts.
- Few-Shot Prompting — частая часть system prompt'а.
- Context Window — system prompt в нём занимает место.
- Memory — долгосрочный аналог system prompt'а.
- Prompt Injection — атака на system prompt.
- Alignment — встроенные ограничения, которые перекрывают system.
Частые вопросы
Где задать system prompt в ChatGPT?
В веб-интерфейсе: Settings → Personalization → Custom Instructions. В API — поле system или первое сообщение с role: "system".
Сколько символов можно положить в system prompt? Технически до контекстного окна модели (для GPT-4: 128К токенов, ~500 КБ текста). Практически разумно до 1000–2000 слов.
System prompt считается в стоимости API? Да. Считается как input-токены и тарифицируется. Для Claude можно использовать prompt caching, чтобы не платить заново за длинный system на каждом запросе.
Можно ли изменить system prompt в середине диалога? В API — да, просто отправить новый запрос с другим system. Но модель уже не «забудет» предыдущие сообщения, может действовать с гибридной логикой.
Почему модель иногда игнорирует system prompt? Чаще всего: 1) слишком длинный system, модель «забыла» начало; 2) user-сообщение явно противоречит системе и модель пытается угодить пользователю; 3) маленькая или старая модель, плохо следующая системным инструкциям.
Что такое «meta system prompt»? Шутливое название system prompt'а, объясняющего модели, что она работает с другими промптами (например, в multi-agent системах). Уровень над уровнем.
Главное
System Prompt — это «инструкция перед инструкцией»: задаёт роль, тон, формат и ограничения LLM на всю сессию. Не виден пользователю в чате, действует фоново на каждый ответ. Главные применения: специализированные чат-боты, API-обёртки с фиксированным форматом, AI-ассистенты с конкретной личностью, образовательные приложения. Хороший system prompt включает роль, тон, формат и ограничения; разумная длина — 200–800 слов. Главные нюансы: не хранить секреты (можно извлечь), не делать слишком длинным (модель «забудет» начало), не пытаться обходить alignment. К 2026-му это базовый кирпич построения любого AI-продукта на LLM API.