Claude Platform Docs
Лучшие практикиИнженерия подсказок

Подсказки для Claude Sonnet 5.5

Шаблоны подсказок, специфичные для Claude Sonnet 5.5: уровень усилий, инициатива и объём работы, работа без предварительных размышлений, вывод JSON, обновления о ходе работы, использование инструментов, сообщения посреди хода, проверка при работе с кодом, вызовы инструментов, визуальные входные данные и отказы.

В этом руководстве описаны шаблоны подсказок, специфичные для Claude Sonnet 5.5. Об изменениях API этой модели см. Что нового в Claude Sonnet 5.5. О техниках, применимых ко всем текущим моделям Claude, см. Лучшие практики составления подсказок.

Существующие подсказки для Claude Sonnet 5 должны хорошо работать без изменений, а шаблоны из руководства Подсказки для Claude Sonnet 5 остаются разумной отправной точкой. Для самых сложных долгосрочных задач лучше выбрать модель Opus. Начните с раздела, который соответствует тому, что вы наблюдаете:

Калибровка уровня усилий

Effort (уровень усилий) — основной параметр, определяющий, сколько размышляет Claude Sonnet 5.5, а вместе с этим — качество, «latency» (задержку) и стоимость. Его уровни откалиброваны заново: один и тот же уровень не даёт того же объёма размышлений, что на Claude Sonnet 5. Проведите новый перебор уровней на собственных оценках, а не переносите настройку, которую использовали на Claude Sonnet 5. Начните с high — значения по умолчанию в Claude API, — если только ваша нагрузка не является агентной или чувствительной к задержке. Для агентного программирования и многошагового использования инструментов начните с medium для чётко поставленных задач и переходите на high для более сложных или длинных. Для чата и другой работы, чувствительной к задержке, начните с medium или low, поскольку более высокий уровень усилий означает более долгое ожидание до начала ответа. Повышайте уровень усилий, если этого требует качество.

Более низкий уровень усилий также меняет то, как модель завершает агентную работу. На уровне low она делает размышления короткими и может пропустить проверку изменения. См. Проверка в задачах по программированию. На уровнях low и medium в длинных агентных задачах она с большей вероятностью остановится и уточнит что-то у пользователя до завершения работы. См. Управление инициативой и объёмом работы.

Помогают три корректировки:

  • Задайте max_tokens с запасом на размышления и ожидаемый ответ. Размышления учитываются в max_tokens, даже если их содержимое вам не возвращается. Лимит, рассчитанный на запрос без размышлений, может обрезать ответ. Для агентного программирования установите max_tokens равным 128 000 — максимуму модели — и используйте потоковую передачу ответа.
  • Оставьте xhigh и max для работы, где вы измерили прирост качества, поскольку на этих уровнях размышления и ответы становятся значительно длиннее. На этих уровнях between_tools не принимается, поэтому предварительные размышления отключить нельзя.
  • Чтобы сократить размышления, понизьте уровень усилий. Начиная с medium, модель кратко размышляет почти перед каждым ответом, даже перед приветствием, что увеличивает время до первого видимого токена. Просьба в системной подсказке размышлять меньше не сокращает размышления надёжно. На уровне low модель пропускает размышления для большинства простых запросов.

Изменение значения effort верхнего уровня между запросами делает кэш подсказок недействительным. Чтобы выполнять отдельные ходы на другом уровне, используйте вместо этого изменение уровня усилий для отдельного сообщения (бета), которое сохраняет кэш. Например, ведите интерактивный сеанс на уровне low и повышайте уровень усилий до high, когда пользователь присылает сложную задачу. Изменение уровня усилий для отдельного сообщения требует адаптивных размышлений. С between_tools оно возвращает ошибку 400, как объясняется в разделе Работа без предварительных размышлений.

Управление инициативой и объёмом работы

То, насколько далеко Claude Sonnet 5.5 заходит самостоятельно, зависит от уровня усилий и запроса. При более низком уровне усилий модель иногда уточняет что-то у пользователя до завершения задачи по программированию. При более высоком уровне усилий или в ответ на открытый запрос она может сделать больше, чем вы просили. Управляйте этим с помощью уровня усилий и инструкций в системной подсказке.

Доведение работы до конца. В задачах агентного программирования на уровнях усилий low и medium модель иногда уточняет что-то у пользователя до завершения работы. Она может остановиться, чтобы подтвердить план, задать вопрос, на который могла бы ответить сама, или остановиться после одной части многосоставной задачи, чтобы спросить, продолжать ли. Сначала попробуйте более высокий уровень усилий. Чтобы модель продолжала работать без изменения уровня усилий, добавьте это в системную подсказку:

Keep working until everything the user asked for is done, and only stop to ask when you can't go on without the user or before a risky step.

When the work the user asked for is done and checked, stop and report. Don't add features, tests, files, docs or refactors that weren't asked for. If you think one would help, mention it at the end instead of doing it.

С этой подсказкой модель доводит до конца больший объём работы на уровнях усилий low и medium, поэтому сеансы на этих уровнях длятся дольше и стоят больше. Подсказка не заменяет ваших собственных правил о рискованных или необратимых действиях. Сохраните эти правила в системной подсказке.

Незапрошенные дополнения при программировании. Модель склонна добавлять тесты, документацию и небольшие вспомогательные файлы, соответствующие соглашениям вашего репозитория, даже если вы об этом не просите. Она делает это на любом уровне усилий, и тем больше, чем выше уровень. Само запрошенное изменение остаётся близким к тому, о чём просили. Большинство команд это только порадует. Если вы предпочитаете изменения, ограниченные явно запрошенным, добавьте только второй абзац этой подсказки, который начинается со слов «When the work the user asked for is done». На уровнях усилий xhigh и max этот абзац сокращает такие дополнения и в целом делает изменения меньше.

Тщательность на уровнях усилий xhigh и max. На этих уровнях модель особенно тщательна. Завершив задачу, она может начать собственные раунды ревью и проверки, иногда с «subagents» (субагентами), если их предоставляет ваш «harness» (обвязка агента). Она также может вносить связанные исправления, замеченные по ходу работы. Это требует больше времени и токенов, поэтому выполняйте рутинную работу на уровне high или ниже, где такое случается редко. Если вам нужна дополнительная тщательность этих уровней усилий, но вы хотите направить её на саму задачу, добавьте это в системную подсказку:

When the work the user asked for is done and its checks pass, stop and report. Don't start extra rounds of review or hardening on your own, and don't launch reviewer sub-agents unless the user asked for a review. If you think a deeper review is worth doing, say so at the end.

При тестировании на задачах по программированию на уровне усилий max это не давало модели запускать субагентов-ревьюеров и сократило стоимость сеанса примерно на треть без изменения качества. Подсказка делает самостоятельно запускаемые основным агентом раунды ревью менее частыми, но не устраняет их полностью.

Открытые запросы. Когда запрос открытый, например «покажи, что ты можешь сделать с этим», модель может начать создавать презентацию, отчёт или видео, хотя вам нужны были только идеи. Если вам сначала нужны идеи или план, скажите об этом в запросе или добавьте это в системную подсказку:

When the user asks for ideas, options or a plan, give them that and stop. Don't start building or changing anything until they say to go ahead.

Работа без предварительных размышлений

Чтобы запустить Claude Sonnet 5.5 без предварительных размышлений, отправьте thinking: {"type": "between_tools"}. Это самая низкая настройка размышлений для этой модели, и она принимается на уровне усилий high или ниже. Если сейчас ваша интеграция работает с отключёнными размышлениями, переключите её на between_tools и проверьте следующие моменты:

  • Отправляйте between_tools на уровне усилий high или ниже. На уровне усилий xhigh или max запрос с between_tools возвращает ошибку 400. С between_tools уровень усилий также нельзя менять посреди разговора: output_config.effort для отдельного сообщения, отличающийся от действующего уровня, возвращает ошибку 400. Чтобы менять уровень усилий от хода к ходу, используйте адаптивные размышления. С between_tools удалите все инструкции, запрещающие модели размышлять. Такие инструкции повышают вероятность того, что модель будет писать внутренние XML-теги в видимом выводе.
  • Читайте ответ по типам блоков. С адаптивными размышлениями ответ может начинаться с блока thinking, поле thinking которого пусто при значении по умолчанию display: "omitted". С between_tools ответ может начинаться с блока thinking с обновлением о ходе работы. Не предполагайте, что первый блок содержимого — текстовый.
  • Передавайте блоки thinking обратно без изменений. С between_tools заметки, которые модель пишет между вызовами инструментов, по-прежнему возвращаются как блоки thinking, если они длиннее одного-двух предложений. Каждый блок содержит краткое изложение заметки. Передавайте их обратно без изменений вместе с остальной частью хода ассистента. Блок, который вы отправляете обратно, даёт модели полную написанную ею заметку, а не краткое изложение.
  • Используйте адаптивные размышления для задач на рассуждение без инструментов. В запросе без инструментов between_tools означает, что модель отвечает, не размышляя предварительно. Для задач, требующих нескольких шагов рассуждения, используйте вместо этого адаптивные размышления. См. Задачи на рассуждение с выводом JSON.

Задачи на рассуждение с выводом JSON

Этот раздел относится к случаям, когда вы просите Claude Sonnet 5.5 дать ответ в формате JSON на задачу, требующую нескольких шагов рассуждения. Примеры: подсчёт итоговых сумм по документу, применение правила или ранжирование элементов. В таких задачах модель часто отвечает, не размышляя предварительно, особенно на уровнях усилий low и medium. Что помогает, зависит от того, как вы запрашиваете JSON. Используйте structured outputs (структурированные выходные данные) там, где они доступны. Тогда текст ответа представляет собой JSON, соответствующий вашей схеме, и разбирать ничего не нужно.

При использовании структурированных выходных данных текст ответа содержит только JSON, поэтому модель может прорабатывать задачу только в своих размышлениях. Когда она пропускает размышления, её точность в таких задачах может снижаться. Следующие изменения помогают сохранить высокую точность.

Попросите модель сначала поразмышлять. С адаптивными размышлениями добавьте эту строку в конец системной подсказки:

Think the problem through before you answer.

С этой строкой модель чаще размышляет перед ответом. На уровне усилий high строка приближает точность к той, которой модель достигает на xhigh, при умеренном увеличении числа выходных токенов. На уровнях усилий low и medium она повышает точность, хотя и не до уровня, которого модель достигает на high, а увеличение числа выходных токенов больше.

Или используйте уровень усилий xhigh. С адаптивными размышлениями xhigh даёт наивысшую точность в таких задачах даже без этой строки. Он использует больше выходных токенов, чем high.

Используйте адаптивные размышления, а не between_tools. В запросе без инструментов при between_tools модель не размышляет перед ответом. Строка там не действует, и точность в таких задачах ниже. Для таких запросов используйте адаптивные размышления вместе с шагами из этого раздела. При тестировании разделение запроса на два — один для ответа и один для JSON — обеспечило высокую точность ответов и соответствие формату JSON, но ценой очень высокой стоимости и задержки.

При использовании структурированных выходных данных на уровнях усилий low и medium модель иногда продолжает размышлять, пока не достигнет max_tokens. На уровне усилий high и выше такого почти не бывает. Считайте любой ответ, у которого stop_reason равен "max_tokens", неудачным, даже если его текст содержит валидный JSON, и повторите запрос. Установите max_tokens достаточно высоким для размышлений и JSON, как описано в разделе Калибровка уровня усилий, но не выше того, что вы готовы потратить на одну попытку.

Если вы не можете использовать структурированные выходные данные, запросите JSON в подсказке. Тогда модель часто прорабатывает задачу в тексте ответа и пишет JSON в конце. JSON обычно содержит правильный ответ, но парсер, ожидающий, что весь ответ является JSON, выдаёт ошибку. Помогают две вещи:

  • Разбирайте последнее значение JSON в ответе. Читайте только блоки text и считайте ответ, у которого stop_reason равен "max_tokens", неудачным. Начиная с каждого символа { или [, пытайтесь разобрать значение JSON. Когда разбор удаётся, продолжайте с конца этого значения, чтобы вложенные в него значения не учитывались отдельно. Сохраняйте последнее найденное значение. Не берите всё от первой { до последней }. Модель иногда пишет черновик перед итоговым JSON, и такой диапазон включил бы оба. Если ваш ответ состоит из нескольких значений JSON подряд, например по одной записи на строку, сохраняйте последнюю последовательность значений, разделённых только пробелами, запятыми или переносами строк. Проверьте, что результат содержит ожидаемые поля, и если нет — повторите запрос один раз. При тестировании это сделало пригодными почти все ответы без изменения их точности.
  • Также рассмотрите уровень усилий xhigh с адаптивными размышлениями. Тогда модель прорабатывает задачу в своих размышлениях и почти всегда возвращает только JSON. Общее число выходных токенов остаётся примерно таким же, как на high, поскольку рассуждения перемещаются из текста ответа в размышления.

Обновления о ходе работы для пользователя

Между вызовами инструментов Claude Sonnet 5.5 пишет для пользователя заметки о том, что только что обнаружила и что собирается делать дальше. Заметки длиннее одного-двух предложений возвращаются как блоки thinking с обновлениями о ходе работы. Более короткие замечания остаются блоками text. При значении thinking.display по умолчанию текст блока с обновлением о ходе работы пуст, поэтому клиент, отображающий только блоки text, может выглядеть «молчаливым» во время длинного агентного хода. Это особенно важно в чат-интерфейсах и других продуктах, где пользователь следит за работой модели в реальном времени.

Чтобы показывать эти заметки, установите display: "updates" (бета, заголовок thinking-display-updates-2026-08-18). С between_tools заметки возвращаются с текстом краткого изложения, поэтому поле display не требуется. between_tools не принимает других полей: display, budget_tokens или block_binding, отправленные вместе с ним, возвращают ошибку 400. В руководстве по миграции показано, как отображать заметки. Иногда модели нужно показать пользователю точный текст посреди длинного хода, например фрагмент кода или вопрос, на который ей нужен ответ. Для этого случая дайте ей простой инструмент для отправки сообщения пользователю. Скажите модели использовать этот инструмент только для такого содержимого. Объявите инструмент в первом запросе сеанса, чтобы список tools впоследствии не менялся.

Затем удалите старые инструкции вроде «сохраняй все находки для итогового ответа». Если после этого вам нужны обновления в предсказуемых точках, например строка о том, что модель собирается сделать, перед первым вызовом инструмента и краткое резюме в конце, укажите это в системной подсказке. Модель следует подобным инструкциям. Обновления в заданных точках особенно полезны в работе с участием человека.

Если длинные ходы с вызовами инструментов всё ещё остаются «молчаливыми» дольше, чем вам хотелось бы, ваша обвязка может запрашивать обновление. Пусть она подсчитывает последовательные шаги с вызовами инструментов, на которых пользователю не отправляется ни текст, ни обновление о ходе работы. После нескольких таких шагов подряд, например пяти, добавьте одноходовое напоминание после последних результатов инструментов. Отправьте его как системное сообщение в рамках хода (бета) с текстом наподобие этого:

The user hasn't heard from you in a while — say in a few words what you're doing, then continue.

Если ход остаётся «молчаливым», прекратите отправлять напоминания после второго или третьего. Частый текст от обвязки после результатов инструментов может заставить модель заподозрить «prompt injection» (внедрение подсказок), как объясняется в разделе Сообщения пользователя посреди хода. Оставляйте каждое напоминание в messages в последующих запросах. Поскольку напоминание добавляется в конец, а не вставляется и затем удаляется, кэш подсказок и сохранённые размышления остаются нетронутыми. На уровне усилий high, при наличии инструмента для отправки сообщения пользователю, напоминание побуждает модель чаще сообщать пользователю о ходе работы и сокращает самые длинные периоды молчания без измеримого изменения качества выполнения задач.

Использование инструментов в чате и интеллектуальной работе

В задачах чата и интеллектуальной работы Claude Sonnet 5.5 иногда отвечает на основе знаний из обучения, хотя веб-поиск выявил бы изменившиеся детали. Например, что разрешено, что требуется или сколько это стоит.

Сначала проверьте подсказку на наличие формулировок, препятствующих использованию инструментов, таких как «используй инструменты только в случае крайней необходимости» или «минимизируй вызовы инструментов», и удалите их. Затем, если ваш продукт предоставляет модели инструмент поиска, добавьте это в системную подсказку:

Use the search tool to check specifics that may have changed since your training, such as what is allowed, required or charged, even when you feel confident. For researched work such as a report or a comparison, gather current sources rather than writing from your training knowledge.

Это особенно важно для исследовательских продуктов и продуктов поддержки, где ответы зависят от актуальных деталей.

Сообщения пользователя посреди хода

Claude Sonnet 5.5 обучена противостоять косвенному внедрению подсказок, то есть вредоносным инструкциям, поступающим через результаты инструментов и другое содержимое, которое модель читает во время выполнения задачи. Иногда она воспринимает настоящее сообщение пользователя как возможное внедрение. Предположим, сообщение, которое пользователь набрал посреди задачи, поступает модели как системное сообщение посреди разговора, размещённое сразу после результата инструмента, или внутри блока tool_result. Тогда модель может сообщить пользователю, что результат инструмента содержал текст, выдающий себя за сообщение от него, и проигнорировать сообщение или попросить пользователя подтвердить его.

Причиной может быть обратный отсчёт токенов, который ваша обвязка добавляет после каждого результата инструмента. Также причиной может быть возможность для пользователей отправлять сообщения, пока модель находится посреди многошагового хода, или добавление обвязкой инструкций или контекста после результатов инструментов на каждом шаге. В каждом из этих случаев текст поступает сразу после результатов инструментов. При обратном отсчёте или пошаговых инструкциях это может происходить при каждом вызове инструмента. Периодическое одноходовое напоминание, подобное описанному в разделе Обновления о ходе работы для пользователя, поступает гораздо реже. Если вы видите такую реакцию на собственное напоминание, отправляйте его реже. Чтобы избежать неверного толкования:

  • Никогда не помещайте текст пользователя внутрь блока tool_result. Такое размещение модель толкует неверно чаще всего.
  • Передавайте ввод пользователя посреди хода как ход пользователя. Добавьте слова пользователя в виде текстового блока в сообщение пользователя, содержащее блоки tool_result, после последнего tool_result.
  • Размещайте уведомления обвязки, например напоминания, в отдельном системном сообщении посреди разговора после слов пользователя. Никогда не помещайте уведомление и слова пользователя в один блок.
  • В интерактивных сеансах, где пользователи могут писать посреди хода, не добавляйте собственный обратный отсчёт токенов или бюджета после результатов инструментов. Бюджеты задач (бета) добавляют похожий обратный отсчёт, но не было замечено, чтобы они вызывали такое неверное толкование. Если вы наблюдаете неверное толкование при заданном бюджете задачи, попробуйте провести сеанс без него.

Проверка в задачах по программированию

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

Если вы видите, что об изменениях сообщается как о завершённых без вывода тестов или сборки в транскрипте, добавьте в системную подсказку этот абзац или подобный ему. На уровне усилий low он делает пропущенные или поверхностные проверки редкими без измеримого изменения качества выполнения задач и лишь с незначительным увеличением стоимости одной задачи:

When you change code that can be run, built, or type-checked, run a real check that exercises the change before reporting it done: the project's tests, type-checker, or build, or the changed command itself. A syntax-only check, or a check command that failed to start, does not count; if all that is missing is the project's declared dependencies, install them with its own package manager and lockfile (e.g. npm install, pip install -r requirements.txt), never via sudo or the system package manager, unless told not to. Only if no real check can run here, say which one you did not run and why instead of reporting the change as done.

Терпимая обработка вызовов инструментов

Claude Sonnet 5.5 иногда вызывает объявленный инструмент по имени, отличающемуся только регистром букв, например bash вместо Bash. Она также может передать известный параметр под немного другим именем. Вместо того чтобы считать такой вызов фатальной ошибкой, пусть ваша обвязка обрабатывает его одним из двух способов:

  • Принимайте вызов, если соответствие однозначно, даже если регистр букв неверен.
  • Возвращайте tool_result с is_error: true, в котором указано точное ожидаемое имя. Обычно модель исправляет вызов на следующем ходе. См. Обработка ошибок с помощью is_error.

Инструменты для сложных визуальных входных данных

Для насыщенных диаграмм и технических чертежей дайте Claude Sonnet 5.5 возможность обрезать изображение, увеличивать его масштаб или выполнять над ним код. С такими инструментами модель читает эти входные данные заметно точнее. Для диаграмм инструменты помогают на любом уровне усилий. Для технических чертежей они помогают только начиная с уровня усилий high, и больше всего — на xhigh и max. Для диаграмм добавление инструментов помогает больше, чем повышение уровня усилий: при тестировании с инструментами на уровне усилий high модель читала диаграммы точнее, чем без инструментов на уровне усилий max, при доле стоимости. В рецепте инструмента обрезки приведено рабочее определение инструмента.

Защитные отказы

Claude Sonnet 5.5 использует классификаторы безопасности, которые могут отклонить запрос. Отказ приходит как обычный ответ с stop_reason: "refusal", а stop_details.category указывает категорию отказа:

  • cyber: запрос может способствовать киберугрозам, например разработке вредоносного ПО или эксплойтов. Поиск уязвимостей в исходном коде разрешён. Высокорисковая работа в области кибербезопасности двойного назначения не разрешена.
  • bio: запрос может способствовать биологическому вреду, например опасным лабораторным методам. Повседневные вопросы о здоровье и образовательные вопросы не затрагиваются.
  • frontier_llm: запрос может способствовать разработке конкурирующих моделей ИИ.
  • reasoning_extraction: запрос просит модель воспроизвести свои внутренние рассуждения в тексте ответа.
  • general_harms: запрос относится к другой области политики использования. Эту категорию может вызвать и безобидная работа.

Если классификатор bio блокирует работу вашей организации в области наук о жизни, вы можете подать заявку в Life Sciences Verification Program.

Если вы включите резервный вариант на стороне сервера (бета), он будет повторять отказы категорий cyber и frontier_llm на Claude Sonnet 5. Отказы категорий bio, reasoning_extraction и general_harms он не повторяет. См. Отказы, резервный вариант и выставление счетов.

Если ваши подсказки просят модель включать свои рассуждения в ответ, удалите эти инструкции, поскольку они провоцируют отказы категории reasoning_extraction. С адаптивными размышлениями читайте рассуждения из блоков кратко изложенных размышлений (display: "summarized").

Was this page helpful?