Системный промпт

Системный промпт — это «настройки личности и правил» модели на весь диалог.

Системный промпт — инструкция, которая задаёт модели роль, тон, ограничения и формат, действуя на протяжении всего разговора, а не только на одну реплику.

Чем системный промпт отличается от user-сообщения

User-сообщение — это конкретный запрос «здесь и сейчас». Системный промпт — рамка, в которой модель отвечает на все запросы. Туда выносят то, что не должно меняться: «ты — ассистент службы поддержки», «отвечай только на русском», «не давай юридических советов», «верни ответ в JSON».

# Anthropic: system — отдельный параметр
client.messages.create(
    model="claude-opus-4-8",
    max_tokens=512,
    system=(
        "Ты — технический ассистент сервиса доставки. "
        "Отвечай кратко и по-русски. "
        "Если вопрос не о доставке — вежливо откажись."
    ),
    messages=[{"role": "user", "content": "Где мой заказ?"}],
)
# OpenAI: system — первое сообщение в массиве
client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "Ты — технический ассистент. Отвечай кратко и по-русски."},
        {"role": "user", "content": "Где мой заказ?"},
    ],
)

Что хорошо класть в системный промпт

  • Роль: кто модель и для кого работает.
  • Тон и язык: формальность, длина, язык ответа.
  • Границы: чего делать нельзя, на что не отвечать.
  • Формат: «верни маркированный список», «только JSON по схеме».
  • Контекст: справочные факты, актуальные на весь диалог.

Как писать системный промпт

Будьте конкретны и позитивны: «делай так», а не только «не делай так». Приводите пример желаемого ответа, если формат важен. Не перегружайте — слишком длинный и противоречивый системный промпт сбивает модель и съедает токены в каждом запросе.

Важный нюанс безопасности

Системный промпт — не абсолютная защита. Пользователь может попытаться «переубедить» модель (промпт-инъекция, см. раздел 6). Поэтому критичные правила дублируют проверками в коде, а не полагаются только на текст инструкции.

Итог

  • Системный промпт задаёт роль, тон, границы и формат на весь диалог.
  • Anthropic: параметр system; OpenAI: первое сообщение с ролью system.
  • Пишите конкретно, давайте примеры, не перегружайте.
  • Это инструкция, а не гарантия — критичные правила проверяйте кодом.
Проверьте себя
1. Чем системный промпт отличается от пользовательского сообщения?
AНичем, это синонимы
BСистемный промпт задаёт рамку (роль, тон, правила) на весь диалог, а user-сообщение — конкретный запрос
CСистемный промпт всегда длиннее
DUser-сообщение задаёт поведение модели
2. Что разумно вынести в системный промпт?
AСекретный ключ API
BРоль модели, тон, язык, границы и требуемый формат ответа
CПолную историю всех диалогов
DСлучайное число для воспроизводимости
3. Можно ли полностью полагаться на системный промпт для защиты от вредных запросов?
AДа, это абсолютная защита
BНет, пользователь может попытаться обойти его инструкции, поэтому критичные правила дублируют проверками в коде
CДа, если промпт достаточно длинный
DНет, системный промпт вообще не влияет на безопасность
Поддержать проект