Почему без промпта поведение непредсказуемо

По умолчанию реакция Claude на формулировку вроде «можешь предложить, что улучшить в этой функции» не гарантирована: модель может либо просто дать список предложений, либо сразу внести правки - граница между «предложить» и «сделать» логически не всегда очевидна модели без явного указания. Отдельная сторона той же проблемы - необратимые или влияющие на общие системы действия: без явной инструкции Claude может удалить файлы, сделать принудительный push или отправить сообщение во внешний сервис, не спрашивая заранее.

Промпт 1: сделать Claude проактивнее

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

<default_to_action>
By default, implement changes rather than only suggesting them. If the user's intent is
unclear, infer the most useful likely action and proceed, using tools to discover any
missing details instead of guessing. Try to infer the user's intent about whether a tool
call (e.g., file edit or read) is intended or not, and act accordingly.
</default_to_action>

Промпт 2: сделать Claude сдержаннее

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

<do_not_act_before_instructions>
Do not jump into implementation or change files unless clearly instructed to make
changes. When the user's intent is ambiguous, default to providing information, doing
research, and providing recommendations rather than taking action. Only proceed with
edits, modifications, or implementations when the user explicitly requests them.
</do_not_act_before_instructions>

Промпт 3: спрашивать перед необратимыми действиями

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

Consider the reversibility and potential impact of your actions. You are encouraged to
take local, reversible actions like editing files or running tests, but for actions that
are hard to reverse, affect shared systems, or could be destructive, ask the user before
proceeding.

Examples of actions that warrant confirmation:
- Destructive operations: deleting files or branches, dropping database tables, rm -rf
- Hard to reverse operations: git push --force, git reset --hard, amending published commits
- Operations visible to others: pushing code, commenting on PRs/issues, sending
messages, modifying shared infrastructure

When encountering obstacles, do not use destructive actions as a shortcut. For example,
don't bypass safety checks (e.g. --no-verify) or discard unfamiliar files that may be
in-progress work.

Как это сочетается на практике

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

Чек-лист

Настройка самостоятельности Claude
  1. Определено, какая проблема сейчас актуальнее - Claude слишком пассивен или слишком инициативен
  2. Выбран и добавлен в системный промпт соответствующий блок - default_to_action или do_not_act_before_instructions
  3. Отдельно, независимо от настройки инициативности, добавлен блок про подтверждение перед необратимыми действиями
  4. Список операций, требующих подтверждения, дополнен под свой конкретный проект (не только git и файлы, но и внешние сервисы, которыми пользуется Claude)
  5. Формулировки промптов сверены с актуальной документацией Anthropic перед использованием в продакшене
Можно ли использовать все три промпта одновременно?
Первые два - default_to_action и do_not_act_before_instructions - противоположны друг другу и настраивают одну и ту же ось, использовать их вместе не имеет смысла. Третий, про подтверждение перед необратимыми действиями, независим от первых двух и сочетается с любым из них.
Работают ли эти промпты только в Claude Code?
Нет, это формулировки для системного промпта в целом - они применимы и через API, и в агентных сценариях с доступом к инструментам, а не только в Claude Code как таковом.
Что именно официальная документация относит к «требующим подтверждения» действиям?
Три категории примеров: разрушительные операции (удаление файлов или веток, dropping таблиц базы данных, rm -rf), трудно обратимые операции (git push --force, git reset --hard, изменение уже опубликованных коммитов) и операции, видимые другим (публикация кода, комментарии в PR или issue, отправка сообщений, изменение общей инфраструктуры).
Что делать, если Claude обходит проверки безопасности при возникновении препятствий?
Промпт про подтверждение явно запрещает использовать разрушительные действия как обходной путь - включая флаги вроде --no-verify - и просит не удалять незнакомые файлы, которые могут быть чужой незавершённой работой.
Нужно ли переписывать список примеров под свой проект?
Список в документации общий и рассчитан в первую очередь на работу с кодом и git - для своего проекта стоит дополнить его специфичными для вас необратимыми операциями, например действиями во внешних API или CRM.
Действует ли промпт про инициативность на все модели Claude одинаково?
Официальная документация отмечает, что более новые модели уже более отзывчивы на системный промпт, чем предыдущие - а значит агрессивные формулировки, нужные для старых моделей, на новых могут привести к избыточному, а не недостаточному срабатыванию.
← Все статьи блога