System Prompts

[object Object]

System prompt — это верхний слой инструкций, который задаёт постоянное поведение модели: роль, стиль, приоритеты, ограничения и правила обработки неопределённости. В 2026 его лучше понимать через instruction hierarchy: system и developer-level правила стоят выше одноразовых пользовательских запросов.

Если user prompt отвечает на вопрос "что сделать сейчас", то system prompt отвечает на вопрос "как этот ассистент должен вести себя всегда".

Суть в двух словах

System prompt нужен, чтобы вынести постоянные правила из каждого отдельного запроса:

  • кто модель;
  • как отвечает;
  • что считать допустимым и недопустимым;
  • что делать при нехватке данных;
  • в каком формате чаще всего возвращать результат.
ПромптClaude Sonnet 4.6
[system] Ты — ассистент B2B SaaS поддержки. Отвечай кратко, не выдумывай отсутствующие данные, при риске ошибки сначала уточняй. Для инструкций используй нумерованные шаги.

[user] Не могу загрузить CSV-файл в систему
Ответ модели

Проверьте по шагам:

  1. Размер файла — не превышает ли лимит импорта.
  2. Кодировку — лучше UTF-8.
  3. Заголовки колонок — совпадают ли с шаблоном импорта.

Если ошибка остаётся, пришлите точный текст сообщения об ошибке и пример одной строки CSV.

Хороший system prompt экономит токены в каждом user prompt и делает поведение ассистента предсказуемее на длинной дистанции.

Что system prompt делает хорошо

Плюсы

  • Стабилизирует поведение на длинной сессии
  • Позволяет один раз задать стиль, формат и policy
  • Хорошо сочетается с tools, structured outputs и conversation state
  • Удобен для продуктовых ассистентов, support-ботов и internal copilots

Минусы

  • Не является надёжной security-границей
  • Слишком длинный system prompt размывает приоритеты
  • Противоречивые правила делают ответы хуже
  • Некоторые ограничения всё равно надо enforcing на сервере

System prompt особенно хорош там, где правила действительно постоянны:

  • стиль и тон;
  • unknown handling;
  • escalation policy;
  • default output shape;
  • tool usage priorities;
  • out-of-scope behavior.

Из чего состоит хороший system prompt

Самый полезный элемент во многих production-system prompts — это именно правило поведения при неопределённости. Оно часто влияет на качество сильнее, чем длинные stylistic instructions.

Что system prompt не должен делать

System prompt не должен быть:

  • длинным policy-документом на десять экранов;
  • заменой авторизации, ACL и server-side checks;
  • складом бизнес-логики, которая должна жить в коде;
  • единственным механизмом защиты от prompt injection.
System prompt помогает модели, но не заменяет enforcement. Если нельзя раскрывать чужие данные, это должно быть запрещено на backend-уровне, а не только словами в промпте.

То есть system prompt — это configuration layer, а не security perimeter.

Примеры

Продуктовый ассистент

ПромптGPT-5
[system] Ты — внутренний product copilot. Помогаешь PM кратко анализировать гипотезы. Всегда отвечай в формате: hypothesis, upside, risk, next experiment. Не выдумывай метрики, которых нет во входе.

[user] Идея: скрыть обязательную регистрацию до момента первого сохранения документа
Ответ модели

hypothesis: поздняя регистрация снизит drop-off на первом входе upside: больше пользователей дойдут до core action до запроса email risk: часть пользователей сохранит меньше данных, и станет сложнее attribution next experiment: A/B тест на 2 недели с метриками start-to-save conversion и registration completion rate

Support-бот с escalation policy

ПромптGemini 2.5 Flash
[system] Ты — support assistant. Если вопрос связан с оплатой, удалением аккаунта или доступом к данным, сначала дай безопасный следующий шаг и явно предложи эскалацию человеку. Не обещай действий, которые сам не можешь выполнить.

[user] Удалите мой аккаунт и пришлите копию всех данных
Ответ модели

Я не могу сам удалить аккаунт или выгрузить данные, но это нужно передать в support team.

Следующий шаг:

  1. Подтвердите email аккаунта.
  2. Укажите, нужна ли полная выгрузка данных перед удалением.
  3. Я подготовлю обращение в поддержку для ручной обработки.

Internal analyst assistant

ПромптClaude Sonnet 4.6
[system] Ты — internal product analyst. Пиши кратко. Разделяй подтверждённые выводы и гипотезы. Если данных недостаточно, явно говори что именно отсутствует.

[user] Activation вырос с 41% до 48%, а trial-to-paid не изменился. Что это может значить?
Ответ модели

Подтверждённый вывод: onboarding стал лучше доводить пользователя до первого полезного действия. Гипотеза: рост activation не дошёл до downstream monetization. Не хватает данных: retention по cohorts и поведение пользователей после первого save.

Типовые ошибки при написании system prompt

  1. Слишком много правил без приоритетов.
  2. Противоречащие друг другу инструкции.
  3. Смесь style rules и security claims в один шумный блок.
  4. Отсутствие unknown-handling.
  5. Попытка через prompt решить то, что должно жить в backend logic.

System prompt vs user prompt

Полезная ментальная модель:

  • system prompt задаёт постоянную рамку;
  • user prompt задаёт текущую задачу;
  • tool/schema/backend logic обеспечивают enforcement и execution.

Если эти слои смешаны, система становится менее предсказуемой и сложнее в поддержке.

Техническая реализация

OpenAI Responses API

from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-5-mini",
    instructions=(
        "Ты — support assistant B2B SaaS. "
        "Не выдумывай факты. "
        "Если входных данных недостаточно, сначала задай уточняющий вопрос. "
        "Для инструкций используй нумерованные шаги."
    ),
    input="Не получается импортировать CSV в систему",
)

print(response.output_text)

Anthropic system prompt

import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-sonnet-4-0",
    system=(
        "Ты — internal product analyst. "
        "Пиши кратко. "
        "Не придумывай отсутствующие метрики. "
        "Формат ответа: observation, risk, next step."
    ),
    max_tokens=400,
    messages=[
        {
            "role": "user",
            "content": "Новый onboarding сократил время до первого действия на 18%. Что это может значить?",
        }
    ],
)

print(message.content[0].text)

Practical pattern

Самый рабочий system prompt обычно короткий:

Role
Key behavior rules
Unknown-handling rule
Output rubric
Escalation condition

Если правило настолько важно, что его нарушение недопустимо, продублируйте его вне промпта:

  • в tool permissions;
  • в schema validation;
  • в backend logic;
  • в policy checks.

Minimal template

SYSTEM_TEMPLATE = """
Role: {role}
Behavior: {behavior}
Unknown handling: {unknown_rule}
Output style: {output_rule}
Escalation: {escalation_rule}
""".strip()

Такой шаблон обычно лучше длинного "корпоративного манифеста" на несколько экранов.

Проверьте себя

Проверьте себя

1. Что system prompt делает лучше всего?

2. Какая ошибка самая опасная?

3. Что лучше добавить в system prompt для неопределённых случаев?