Перейти к основному содержанию
Auto mode позволяет Claude Code работать без запросов разрешения, маршрутизируя каждый вызов инструмента через классификатор, который блокирует все необратимое, деструктивное или направленное вне вашего окружения. Используйте блок настроек autoMode, чтобы сообщить этому классификатору, какие репозитории, бакеты и домены доверяет ваша организация, чтобы он перестал блокировать обычные внутренние операции.
Auto mode доступен всем пользователям на Anthropic API. На Amazon Bedrock, Google Cloud Vertex AI и Microsoft Foundry вы должны сначала установить CLAUDE_CODE_ENABLE_AUTO_MODE. Если Claude Code сообщает, что auto mode недоступен для вашей учетной записи, проверьте полные требования, которые также охватывают поддерживаемые модели и включение администратором на планах Team и Enterprise.
По умолчанию классификатор доверяет только рабочему каталогу и настроенным удаленным репозиториям текущего репо. Такие действия, как отправка в исходный контроль вашей компании или запись в командный облачный бакет, блокируются до тех пор, пока вы не добавите их в autoMode.environment. Информацию о том, как включить режим auto и что он блокирует по умолчанию, см. в разделе Permission modes. Эта страница является справочником по конфигурации. На этой странице рассматривается, как:

Where the classifier reads configuration

Классификатор читает то же содержимое CLAUDE.md, что загружает сам Claude, поэтому инструкция вроде “никогда не делай force push” в CLAUDE.md вашего проекта управляет как Claude, так и классификатором одновременно. Начните с этого для соглашений проекта и правил поведения. Для правил, которые применяются ко всем проектам, таких как доверенная инфраструктура или организационные правила отказа, используйте блок настроек autoMode. Классификатор читает autoMode из следующих областей:
ОбластьФайлИспользуется для
Один разработчик~/.claude/settings.jsonЛичная доверенная инфраструктура
Один проект, один разработчик.claude/settings.local.jsonДоверенные бакеты или сервисы для каждого проекта, в gitignore
ОрганизацияManaged settingsДоверенная инфраструктура, распределенная всем разработчикам
Флаг --settings или Agent SDKВстроенный JSONПереопределения для каждого вызова для автоматизации
Классификатор не читает autoMode из общих настроек проекта в .claude/settings.json, поэтому проверенный репо не может внедрить свои собственные правила разрешения. Записи из каждой области объединяются. Разработчик может расширить environment, allow, soft_deny и hard_deny личными записями, но не может удалить записи, которые предоставляют управляемые настройки. Поскольку правила разрешения действуют как исключения из правил блокировки внутри классификатора, запись allow, добавленная разработчиком, может переопределить запись организационного soft_deny: комбинация является аддитивной, а не жесткой границей политики.
Классификатор — это второй шлюз, который работает после системы разрешений. Для действий, которые никогда не должны выполняться независимо от намерения пользователя или конфигурации классификатора, используйте permissions.deny в управляемых настройках, который блокирует действие до того, как классификатор будет проверен, и не может быть переопределен.

Определение доверенной инфраструктуры

Для большинства организаций autoMode.environment — это единственное поле, которое вам нужно установить. Оно сообщает классификатору, какие репозитории, бакеты и домены являются доверенными: классификатор использует его для определения того, что означает “внешний”, поэтому любой пункт назначения, не указанный в списке, является потенциальной целью утечки данных. Список окружения по умолчанию доверяет рабочему репо и его настроенным удаленным репозиториям. Чтобы добавить свои собственные записи наряду с этим значением по умолчанию, включите буквальную строку "$defaults" в массив. Записи по умолчанию вставляются в эту позицию, поэтому ваши пользовательские записи могут идти до или после них.
{
  "autoMode": {
    "environment": [
      "$defaults",
      "Source control: github.example.com/acme-corp and all repos under it",
      "Trusted cloud buckets: s3://acme-build-artifacts, gs://acme-ml-datasets",
      "Trusted internal domains: *.corp.example.com, api.internal.example.com",
      "Key internal services: Jenkins at ci.example.com, Artifactory at artifacts.example.com"
    ]
  }
}
Записи — это проза, а не регулярные выражения или шаблоны инструментов. Классификатор читает их как правила на естественном языке. Пишите их так, как вы описали бы вашу инфраструктуру новому инженеру. Тщательный раздел окружения охватывает:
  • Организация: название вашей компании и для чего в основном используется Claude Code, например разработка программного обеспечения, автоматизация инфраструктуры или инженерия данных
  • Исходный контроль: каждая организация GitHub, GitLab или Bitbucket, в которую ваши разработчики отправляют код
  • Облачные провайдеры и доверенные бакеты: имена бакетов или префиксы, из которых Claude должен иметь возможность читать и писать
  • Доверенные внутренние домены: имена хостов для API, панелей управления и сервисов внутри вашей сети, например *.internal.example.com
  • Ключевые внутренние сервисы: CI, реестры артефактов, внутренние индексы пакетов, инструменты для инцидентов
  • Дополнительный контекст: ограничения регулируемой отрасли, многопользовательская инфраструктура или требования соответствия, которые влияют на то, что классификатор должен рассматривать как рискованное
Полезный начальный шаблон: заполните поля в скобках и удалите все строки, которые не применяются.
{
  "autoMode": {
    "environment": [
      "$defaults",
      "Organization: {COMPANY_NAME}. Primary use: {PRIMARY_USE_CASE, e.g. software development, infrastructure automation}",
      "Source control: {SOURCE_CONTROL, e.g. GitHub org github.example.com/acme-corp}",
      "Cloud provider(s): {CLOUD_PROVIDERS, e.g. AWS, GCP, Azure}",
      "Trusted cloud buckets: {TRUSTED_BUCKETS, e.g. s3://acme-builds, gs://acme-datasets}",
      "Trusted internal domains: {TRUSTED_DOMAINS, e.g. *.internal.example.com, api.example.com}",
      "Key internal services: {SERVICES, e.g. Jenkins at ci.example.com, Artifactory at artifacts.example.com}",
      "Additional context: {EXTRA, e.g. regulated industry, multi-tenant infrastructure, compliance requirements}"
    ]
  }
}
Чем более специфичный контекст вы предоставите, тем лучше классификатор сможет различать обычные внутренние операции и попытки утечки данных. Вам не нужно заполнять все сразу. Разумный процесс развертывания: начните со значений по умолчанию и добавьте организацию исходного контроля и ключевые внутренние сервисы, что решает наиболее распространенные ложные срабатывания, такие как отправка в ваши собственные репо. Затем добавьте доверенные домены и облачные бакеты. Заполните остальное по мере появления блокировок.

Переопределение правил блокировки и разрешения

Три дополнительных поля позволяют вам заменить встроенные списки правил классификатора: autoMode.hard_deny для безусловных границ безопасности, autoMode.soft_deny для деструктивных действий, которые намерение пользователя может отменить, и autoMode.allow для исключений. Каждое из них — это массив описаний на прозе, читаемых как правила на естественном языке. Для инструментов на основе паттернов с жесткими блокировками, которые работают перед классификатором, используйте permissions.deny. Внутри классификатора приоритет работает в четыре уровня:
  • Правила hard_deny блокируют безусловно. Намерение пользователя и исключения allow не применяются.
  • Правила soft_deny блокируют далее. Намерение пользователя и исключения allow могут переопределить эти правила.
  • Правила allow затем переопределяют совпадающие правила soft_deny как исключения.
  • Явное намерение пользователя переопределяет оставшиеся мягкие блокировки: если сообщение пользователя прямо и конкретно описывает точное действие, которое Claude собирается выполнить, классификатор разрешает его даже когда совпадает правило soft_deny.
Общие запросы не считаются явным намерением. Просьба Claude “очистить репо” не авторизует force-push, но просьба Claude “force-push эту ветку” авторизует. Чтобы ослабить, добавьте в allow, когда классификатор повторно помечает обычный паттерн, который исключения по умолчанию не охватывают. Чтобы усилить, добавьте в soft_deny для деструктивных рисков, специфичных для вашего окружения, которые пропускают значения по умолчанию, или в hard_deny для границ безопасности, которые никогда не должны быть пересечены. Чтобы сохранить встроенные правила при добавлении своих собственных, включите буквальную строку "$defaults" в массив. Правила по умолчанию вставляются в эту позицию, поэтому ваши пользовательские правила могут идти до или после них, и вы продолжаете наследовать обновления по мере изменения встроенного списка в разных версиях.
{
  "autoMode": {
    "environment": [
      "$defaults",
      "Source control: github.example.com/acme-corp and all repos under it"
    ],
    "allow": [
      "$defaults",
      "Deploying to the staging namespace is allowed: staging is isolated from production and resets nightly",
      "Writing to s3://acme-scratch/ is allowed: ephemeral bucket with a 7-day lifecycle policy"
    ],
    "soft_deny": [
      "$defaults",
      "Never run database migrations outside the migrations CLI, even against dev databases",
      "Never modify files under infra/terraform/prod/: production infrastructure changes go through the review workflow"
    ],
    "hard_deny": [
      "$defaults",
      "Never send repository contents to third-party code-review APIs"
    ]
  }
}
Установка любого из environment, allow, soft_deny или hard_deny без "$defaults" заменяет весь список по умолчанию для этого раздела. Массив soft_deny без "$defaults" отбрасывает каждое встроенное правило мягкой блокировки, включая force push, curl | bash и развертывание в production. Массив hard_deny без "$defaults" отбрасывает встроенные правила утечки данных и обхода проверок безопасности.
Каждый раздел оценивается независимо, поэтому установка только environment оставляет списки allow, soft_deny и hard_deny по умолчанию нетронутыми. Опускайте "$defaults" только когда вы намерены взять полную ответственность за список. Чтобы сделать это безопасно, запустите claude auto-mode defaults, чтобы вывести встроенные правила, скопируйте их в файл настроек, затем просмотрите каждое правило в соответствии с вашим конвейером и допустимостью риска.

Проверьте значения по умолчанию и вашу эффективную конфигурацию

Три подкоманды CLI помогают вам проверить и подтвердить вашу конфигурацию. Выведите встроенные правила environment, allow, soft_deny и hard_deny как JSON:
claude auto-mode defaults
Выведите то, что классификатор фактически использует как JSON, с вашими настройками, применяемыми где установлены, и значениями по умолчанию в противном случае:
claude auto-mode config
Получите отзыв AI о ваших пользовательских правилах allow, soft_deny и hard_deny:
claude auto-mode critique
Запустите claude auto-mode config после сохранения ваших настроек, чтобы подтвердить, что эффективные правила — это то, что вы ожидаете, с развёрнутым "$defaults" на месте. Если вы написали пользовательские правила, claude auto-mode critique просматривает их и помечает записи, которые неоднозначны, избыточны или могут вызвать ложные срабатывания. Если вам нужно удалить или переписать встроенное правило вместо того, чтобы добавить его рядом, сохраните вывод claude auto-mode defaults в файл, отредактируйте списки и вставьте результат в файл настроек вместо "$defaults".

Review denials

Когда режим auto отказывает в вызове инструмента, отказ записывается в /permissions на вкладке Recently denied. Нажмите r на отклоненном действии, чтобы отметить его для повтора: когда вы выйдете из диалога, Claude Code отправит сообщение, сообщающее модели, что она может повторить этот вызов инструмента и возобновить разговор. Повторные отказы для одного и того же пункта назначения обычно означают, что классификатору не хватает контекста. Добавьте этот пункт назначения в autoMode.environment, затем запустите claude auto-mode config, чтобы подтвердить, что это вступило в силу. Чтобы реагировать на отказы программно, используйте hook PermissionDenied.

See also

  • Permission modes: что такое режим auto, что он блокирует по умолчанию и как его включить
  • Managed settings: развертывание конфигурации autoMode по всей организации
  • Permissions: правила разрешения, запроса и отказа, которые применяются перед запуском классификатора
  • Settings: полный справочник настроек, включая ключ autoMode