跳转到主要内容
自动模式让 Claude Code 无需权限提示即可运行,通过将每个工具调用路由到一个分类器,该分类器会阻止任何不可逆、破坏性或针对您环境外的操作。使用 autoMode 设置块告诉该分类器您的组织信任哪些代码库、存储桶和域,以便它停止阻止常规内部操作。 开箱即用,分类器仅信任工作目录和当前代码库的已配置远程。推送到您公司的源代码控制组织或写入团队云存储桶等操作会被阻止,直到您将它们添加到 autoMode.environment 有关如何启用自动模式以及它默认阻止什么的信息,请参阅权限模式。本页是配置参考。 本页涵盖以下内容:

分类器读取配置的位置

分类器读取与 Claude 本身加载的相同的 CLAUDE.md 内容,因此您项目的 CLAUDE.md 中的”从不强制推送”之类的指令同时指导 Claude 和分类器。从那里开始了解项目约定和行为规则。 对于跨项目应用的规则,例如受信任的基础设施或组织范围的拒绝规则,请使用 autoMode 设置块。分类器从以下范围读取 autoMode
范围文件用途
一个开发者~/.claude/settings.json个人受信任的基础设施
一个项目,一个开发者.claude/settings.local.json按项目的受信任存储桶或服务,gitignored
组织范围托管设置分发给所有开发者的受信任基础设施
--settings 标志或 Agent SDK内联 JSON用于自动化的按调用覆盖
分类器不从 .claude/settings.json 中的共享项目设置读取 autoMode,因此已检入的代码库无法注入其自己的允许规则。 来自每个范围的条目被合并。开发者可以使用个人条目扩展 environmentallowsoft_deny,但无法删除托管设置提供的条目。因为允许规则在分类器内充当阻止规则的例外,开发者添加的 allow 条目可以覆盖组织 soft_deny 条目:组合是累加的,而不是硬策略边界。
分类器是在权限系统之后运行的第二道门。对于无论用户意图或分类器配置如何都必须永远不运行的操作,请在托管设置中使用 permissions.deny,它在咨询分类器之前阻止操作,无法被覆盖。

定义受信任的基础设施

对于大多数组织,autoMode.environment 是您唯一需要设置的字段。它告诉分类器哪些代码库、存储桶和域是受信任的:分类器使用它来决定”外部”的含义,因此任何未列出的目标都是潜在的数据泄露目标。 设置 environment 会替换默认环境列表,该列表包括信任工作代码库及其远程的条目。运行 claude auto-mode defaults 打印默认值,然后将它们与您自己的条目一起包含,以便扩展列表而不是缩小列表。
{
  "autoMode": {
    "environment": [
      "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": [
      "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.soft_deny 控制被阻止的内容,autoMode.allow 控制应用哪些例外。每个都是散文描述的数组,读作自然语言规则。没有 autoMode.deny 字段;要硬阻止一个操作而不管意图,请使用 permissions.deny,它在分类器之前运行。 在分类器内,优先级分为三个层级:
  • soft_deny 规则首先阻止
  • allow 规则然后覆盖匹配的阻止作为例外
  • 明确的用户意图覆盖两者:如果用户的消息直接且具体地描述 Claude 即将采取的确切操作,分类器允许它,即使 soft_deny 规则匹配
一般请求不算作明确意图。要求 Claude”清理代码库”不授权强制推送,但要求 Claude”强制推送此分支”则授权。
设置 environmentallowsoft_deny 中的任何一个会替换该部分的整个默认列表。如果您设置 soft_deny 为单个条目,每个内置阻止规则都会被丢弃:强制推送、数据泄露、curl | bash、生产部署以及所有其他默认阻止规则都变为允许。要安全地自定义,请运行 claude auto-mode defaults 打印内置规则,将它们复制到您的设置文件中,然后根据您自己的管道和风险容限审查每条规则。仅删除您的基础设施已经缓解的风险的规则。
要放松:当默认值阻止您的管道已通过 PR 审查、CI 或暂存环境保护的内容时,从 soft_deny 中删除规则,或当分类器重复标记默认例外不涵盖的常规模式时添加到 allow。要收紧:为您的环境特定的风险添加到 soft_deny,默认值会遗漏,或从 allow 中删除以保持对阻止规则的默认例外。在所有情况下,运行 claude auto-mode defaults 获取完整的默认列表,然后复制和编辑:永远不要从空列表开始。
{
  "autoMode": {
    "environment": [
      "Source control: github.example.com/acme-corp and all repos under it"
    ],
    "allow": [
      "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": [
      "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",
      "...copy full default soft_deny list here first, then add your rules..."
    ]
  }
}
每个部分仅替换其自己的默认值,因此单独设置 environment 会保持默认 allowsoft_deny 列表完整。

检查默认值和您的有效配置

因为设置三个数组中的任何一个会替换其默认值,通过复制完整的默认列表开始任何自定义。三个 CLI 子命令帮助您检查和验证。 将内置 environmentallowsoft_deny 规则打印为 JSON:
claude auto-mode defaults
打印分类器实际使用的内容作为 JSON,应用您的设置(如果设置)或使用默认值:
claude auto-mode config
获取关于您的自定义 allowsoft_deny 规则的 AI 反馈:
claude auto-mode critique
claude auto-mode defaults 的输出保存到文件,编辑列表以匹配您的策略,并将结果粘贴到您的设置文件中。保存后,运行 claude auto-mode config 确认有效规则是您期望的。如果您编写了自定义规则,claude auto-mode critique 会审查它们并标记模糊、冗余或可能导致误报的条目。

查看拒绝

当自动模式拒绝工具调用时,拒绝被记录在 /permissions 下的”最近拒绝”选项卡中。在被拒绝的操作上按 r 将其标记为重试:当您退出对话框时,Claude Code 发送一条消息告诉模型它可能重试该工具调用并恢复对话。 对同一目标的重复拒绝通常意味着分类器缺少上下文。将该目标添加到 autoMode.environment,然后运行 claude auto-mode config 确认它生效。 要以编程方式对拒绝做出反应,请使用 PermissionDenied hook

另请参阅

  • 权限模式:自动模式是什么、它默认阻止什么以及如何启用它
  • 托管设置:在您的组织中部署 autoMode 配置
  • 权限:在分类器运行之前应用的允许、询问和拒绝规则
  • 设置:完整的设置参考,包括 autoMode