Почему без промпта поведение непредсказуемо
По умолчанию реакция 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 слишком пассивен или слишком инициативен
- Выбран и добавлен в системный промпт соответствующий блок - default_to_action или do_not_act_before_instructions
- Отдельно, независимо от настройки инициативности, добавлен блок про подтверждение перед необратимыми действиями
- Список операций, требующих подтверждения, дополнен под свой конкретный проект (не только git и файлы, но и внешние сервисы, которыми пользуется Claude)
- Формулировки промптов сверены с актуальной документацией Anthropic перед использованием в продакшене