Глава 1. Структура промпта: как устроен разговор с Claude

Промпт — это всё, что вы отправляете модели: вопрос, инструкции, данные, примеры. Промпт-инжиниринг — умение собирать это так, чтобы стабильно получать нужный результат. Начнём с фундамента: из чего технически состоит запрос к Claude.

Повторять примеры можно тремя способами: в обычном чате claude.ai (просто и бесплатно), в Workbench — там видны системный промпт и параметры, или кодом через API. Выбирайте свой уровень — суть главы одинакова для всех.

Три обязательных параметра

Любой запрос к Claude через API содержит минимум три вещи:

  • model — какая модель отвечает. Быстрые и дешёвые (Haiku) для простых задач, мощные (Sonnet, Opus) — для сложных.
  • max_tokens — потолок длины ответа. Это именно ограничитель: ответ оборвётся, когда упрётся в лимит, а не «желаемая длина».
  • messages — сам диалог: список сообщений с ролями.

В коде это выглядит так:

import anthropic

client = anthropic.Anthropic(api_key="ВАШ_КЛЮЧ")

response = client.messages.create(
    model="claude-haiku-4-5",      # какая модель отвечает
    max_tokens=500,                # потолок длины ответа
    temperature=0,                 # 0 = максимально предсказуемые ответы
    messages=[
        {"role": "user", "content": "Привет, Claude! Как дела?"}
    ]
)
print(response.content[0].text)

Если вы не пишете код — ничего страшного: чат claude.ai собирает этот запрос за вас. Но понимать, что под капотом, полезно всем: дальше в курсе мы будем управлять каждой из этих деталей.

Роли: user и assistant

Список messages устроен как пьеса с двумя действующими лицами. Реплики пользователя помечаются ролью user, ответы Claude — ролью assistant. Диалог всегда начинается с user, дальше роли чередуются.

Самый простой промпт — одно user-сообщение:

user

Привет, Claude! Как дела?

assistant

Привет! Всё отлично, спасибо. Чем могу помочь?

user

Какого цвета океан?

assistant

Океан чаще всего выглядит синим или сине-зелёным, но его цвет зависит от глубины, освещения, взвеси и водорослей: от бирюзового на мелководье до почти чёрного на глубине.

user

В каком году родилась Селин Дион?

assistant

Селин Дион родилась 30 марта 1968 года.

А вот так запрос сломается — API вернёт ошибку валидации:

# Нельзя: сообщение без роли
messages=[{"content": "Привет, Claude!"}]

# Нельзя: диалог начинается с реплики assistant
messages=[{"role": "assistant", "content": "Привет!"}]

Запомните правило: начинаем с user, роли чередуются. На этом чередовании построены мощные приёмы — например, «вкладывание слов в уста Claude», до которого мы дойдём в главе 5.

Квиз 1

Какая роль должна открывать список messages?

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

Кроме реплик диалога есть ещё один канал — system, системный промпт. Это инструкция «над разговором»: контекст, правила, роль, ограничения. Пользовательские сообщения приходят и уходят, а системный промпт действует всё время.

Смотрите, как он меняет поведение модели:

System

Отвечай только наводящими вопросами, развивающими критическое мышление собеседника. Никогда не давай прямых ответов.

user

Почему небо голубое?

assistant

Отличный вопрос! А как вы думаете: что происходит с солнечным светом, когда он входит в атмосферу? Из каких цветов он состоит — и одинаково ли они рассеиваются? И вот ещё подсказка для размышления: почему на закате то же самое небо становится красным?

Тот же вопрос без системного промпта получил бы обычный прямой ответ про рассеяние Рэлея. Один параметр — совсем другой продукт: вместо энциклопедии получился репетитор-сократик.

Хорошо настроенный системный промпт заметно повышает качество и устойчивость ответов. Практически весь «характер» AI-продуктов — поддержки, ассистентов, агентов — живёт именно там.

Квиз 2

Где правильнее всего закрепить правило «всегда отвечай официальным тоном»?

Квиз 3

Что делает параметр max_tokens?

Упражнения

Теория без рук не работает. Откройте claude.ai или Workbench и попробуйте:

Упражнение 1.1 — Счёт до трёх

Сформулируйте промпт так, чтобы Claude посчитал от одного до трёх. Звучит тривиально? Попробуйте добиться, чтобы в ответе были только «1 2 3» — без вступлений и пояснений.

Решение упражненияСначала попробуйте сами — потом сверьтесь
user

Посчитай от 1 до 3. В ответе выведи только цифры, без каких-либо других слов.

assistant

1 2 3

Прямое указание формата («только цифры, без других слов») убирает вежливые вступления. Это главный приём всей главы 2 — забегаем вперёд.

Упражнение 1.2 — Трёхлетка

Напишите системный промпт, после которого Claude будет отвечать как трёхлетний ребёнок. Проверьте на вопросе «Насколько большое небо?»

Решение упражненияСначала попробуйте сами — потом сверьтесь
System

Ты — трёхлетний ребёнок. Отвечай как трёхлетка: совсем простые и короткие слова, детский восторг, можешь хихикать и удивляться.

user

Насколько большое небо?

assistant

Ой, небо — оно БОЛЬШУЩЕЕ! *хихикает* Больше моего дома! Больше всего-всего! Я руки во-о-от так растяну — и всё равно не достану!

Обратите внимание: мы не трогали сам вопрос — изменился только системный промпт, а с ним и весь характер ответа.

Что запомнить

  • Запрос к Claude = модель + лимит ответа (max_tokens) + диалог (messages).
  • Диалог начинается с user, роли user и assistant чередуются.
  • Системный промпт — постоянные правила «над разговором». Характер продукта живёт там.
  • Чем точнее вы описали желаемый ответ, тем меньше модель импровизирует.

Дочитали и сделали упражнения? Зафиксируйте прогресс — отметка сохранится в вашем браузере.

Перевод и адаптация главы «Basic Prompt Structure» курса Prompt Engineering Interactive Tutorial © Anthropic, лицензия CC BY-NC 4.0. Перевод: Дарья Воронкина (@aishipuchka). Материал изменён: переведён на русский, примеры и названия моделей актуализированы, добавлены квизы. Используется некоммерчески.