Как писать промпты для Claude: инструкции, контекст и примеры
Этот материал — для разработчиков и руководителей разработки, которые вызывают Claude через API и хотят точнее задавать формат, границы и порядок работы. По материалам Anthropic: Prompting best practices. Разберём рекомендации руководства на задачах проверки требований, классификации обращений и анализа изменений в коде.
Промпт — это инструкция модели вместе с контекстом, входными данными и требованиями к ответу. Anthropic советует формулировать задачу прямо, объяснять смысл ограничений и показывать подходящие примеры. Наш практический вывод: начните с описания проверяемого результата, а затем добавляйте детали, которые помогают его получить.
Сначала опишите результат и границы задачи
Anthropic рекомендует явно указывать, что вы хотите получить. Если важны порядок действий, полнота проверки или формат ответа, перечислите требования по шагам. Дополнительную работу тоже стоит запрашивать прямо: модель не должна угадывать, нужен ли вам только разбор проблемы или ещё и исправление.
Для разработчика это означает: вместо просьбы проверить требования задайте предмет проверки. Например, найдите неоднозначности, укажите недостающие условия и сформулируйте вопросы заказчику. Отдельно обозначьте, можно ли предлагать собственные допущения.
Попробуйте такой промпт через API, передав его как пользовательское сообщение:
Проверьте требование к восстановлению пароля.
Порядок работы:
- Найдите неоднозначные условия.
- Для каждого условия объясните, какое решение
разработчик не сможет принять без уточнения.
- Сформулируйте вопрос владельцу продукта.
Не дополняйте требование собственными правилами.
Ответ оформите таблицей:
фрагмент | неоднозначность | вопрос.
<requirement>
Пользователь может запросить письмо для восстановления
пароля. Ссылка должна действовать ограниченное время.
При частых запросах нужно показывать предупреждение.
</requirement>
Здесь можно проверить не только содержание ответа, но и соблюдение границ: модель должна перечислить вопросы, а не самостоятельно назначить срок действия ссылки.
В руководстве есть полезный критерий качества: сможет ли коллега с минимальным контекстом выполнить вашу инструкцию. Наш вывод: перед отправкой промпта прочитайте его как техническое задание новому участнику команды. Всё, что требует знания негласных договорённостей, лучше дописать.
Объясните, зачем нужны ограничения
По рекомендации Anthropic, контекст и мотивация помогают Claude точнее учитывать цель пользователя. Ограничение полезнее, когда понятно, какую проблему оно предотвращает.
Например, требование вернуть только определённые поля можно связать с последующей обработкой ответа. Ограничение длины — с местом в интерфейсе. Запрет дополнять факты — с тем, что результат пойдёт на согласование.
Для проверки требований из предыдущего примера можно добавить:
<context>
Ответ будет использовать аналитик перед встречей
с владельцем продукта. Ему нужны вопросы для согласования,
а не готовые продуктовые решения.
Поэтому не подставляйте предполагаемые значения
и не переписывайте требование за автора.
</context>
Это дополнение к первому промпту, а не отдельный сценарий. Оно связывает ограничения с рабочей задачей и объясняет, почему самостоятельные догадки здесь нежелательны.
Наш вывод: объясняйте прежде всего те ограничения, которые влияют на смысл результата. Длинная история проекта не заменяет конкретного пояснения, кто прочитает ответ и что сделает дальше.
Покажите примеры и отделите их от входных данных
Anthropic называет примеры одним из надёжных способов задать тон, структуру и формат ответа. В руководстве рекомендуется использовать 3–5 примеров, близких к реальной задаче, и включать разные случаи. Однообразная подборка может закрепить случайный шаблон.
Для маршрутизации обращений покажите не только очевидные категории, но и случай, где сведений недостаточно:
Распределите обращение по категории:
access, billing, bug или unknown.
Используйте unknown, если данных недостаточно.
Верните только название категории.
<examples>
<example>
<input>После смены телефона не могу войти.</input>
<output>access</output>
</example>
<example>
<input>Нужно уточнить назначение списания.</input>
<output>billing</output>
</example>
<example>
<input>При сохранении формы появляется ошибка.</input>
<output>bug</output>
</example>
<example>
<input>Помогите разобраться с аккаунтом.</input>
<output>unknown</output>
</example>
</examples>
<input>
Счёт оплачен, но статус платежа не изменился.
</input>
Это готовый второй сценарий. Заменяйте последнее обращение своими данными, сохраняя инструкцию и примеры. При проверке обращайте внимание на пограничные случаи: например, когда сообщение одновременно касается платежа и ошибки интерфейса.
В этом же промпте используются XML-теги. Anthropic рекомендует ими разделять инструкции, контекст, примеры и переменные входные данные. Названия тегов должны быть понятными и последовательными; вложенность полезна, когда документы естественным образом образуют группу.
Наш вывод: теги помогают сделать устройство запроса явным. Но само
наличие <input> не подтверждает правильность
классификации и не заменяет проверку ответа. Если категории
пересекаются, сначала уточните правила выбора.
Задайте роль и проверяйте применимость совета
Anthropic рекомендует задавать роль через системное сообщение: это помогает сфокусировать поведение и тон Claude. Для анализа кода роль стоит дополнить предметом проверки и требуемыми доказательствами.
Третий пример можно передать через обычный API сообщений. Системная часть:
Вы проверяете изменения Python-кода.
Сосредоточьтесь на корректности обработки данных.
Отделяйте найденный дефект от предположения,
которое требует проверки.
Пользовательская часть:
Проверьте функцию расчёта суммы заказа.
Для каждого замечания укажите:
- строку или выражение;
- входные данные, на которых возникает проблема;
- ожидаемое и фактическое поведение.
Если замечание нельзя подтвердить по этому фрагменту,
сформулируйте вопрос. Не переписывайте функцию целиком.
<code>
def total(items):
result = 0
for item in items:
result += item["price"] * item.get("quantity", 1)
return round(result)
</code>
<context>
Сумма заказа должна сохранять дробную часть.
Цена и количество передаются числами.
</context>
В таком запросе есть наблюдаемый критерий: замечание должно опираться на конкретный ввод. Наш редакционный вывод: это полезнее проверять, чем убедительность объяснения. Возьмите предложенные моделью данные и отдельно выполните функцию.
Есть и границы применимости. Anthropic прямо предупреждает: если техника описана для конкретной модели, её нужно повторно проверить на собственных оценочных задачах перед переносом на другую. Руководство также разделяет общие рекомендации и особенности отдельных моделей.
Предоставленный фрагмент источника обрывается в разделе о роли. Поэтому здесь разобраны ясность инструкции, контекст, примеры и структура запроса. Делать из этого фрагмента выводы о настройках рассуждения или поведении агентных инструментов нельзя.
FAQ
Обязательно ли использовать XML в каждом промпте?
Anthropic рекомендует XML для сложных запросов, где смешаны инструкции, контекст, примеры и входные данные. Для простой задачи полезность дополнительной разметки стоит проверить на своих запросах.
Сколько примеров добавлять?
В руководстве рекомендованы 3–5 примеров. Они должны соответствовать задаче и охватывать разные случаи. Включите ситуацию с недостаточными данными, если она встречается в вашей работе.
Достаточно ли назначить модели роль?
В источнике роль рассматривается как способ сфокусировать поведение и тон. Наш вывод: дополните её конкретной задачей, ограничениями и форматом результата, чтобы ответ можно было проверить.
Можно ли переносить промпт между моделями без изменений?
Anthropic советует перепроверять рекомендации, полученные для отдельной модели, на собственных оценочных задачах. Сохраните набор одинаковых входных данных и проверьте соблюдение формата, границ и содержательных требований.
Начните с одной рабочей задачи: опишите результат, объясните ограничения и добавьте разнообразные примеры. Проверяйте ответ по заранее заданным признакам — так будет понятнее, какое изменение промпта оказалось полезным.
Модели Claude доступны по API на kosareva.cloud с оплатой в рублях; идентификатор для запроса выбирайте в каталоге моделей. Можно протестировать эти советы на своей задаче.
Источник темы: https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices
Заведите аккаунт за минуту
Один ключ ко всем моделям из статьи. Пополнение от 50 ₽ картой или по счёту, списание по факту, без абонентской платы.