System Prompt

system prompt — глобальная инструкция, задающая характер модели

Раздел
Промпты
Обновлено
18.05.26

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:

  1. Роль: «Ты — корректор/консультант/учитель/врач».
  2. Тон: «Спокойный, без эмодзи, с уважением».
  3. Формат: «Markdown с заголовками», «только код без объяснений», «JSON со схемой…».
  4. Ограничения: «Не отвечай на вопросы вне темы», «Не давай юридические советы».
  5. Примеры: короткие 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.