{/* TRANSLATED — 已翻译为中文 */}

> ## 文档索引
> 在以下地址获取完整文档索引：https://code.claude.com/docs/llms.txt
> 使用此文件发现所有可用页面，然后再进一步探索。

# 配置自动模式

> 告诉自动模式分类器您的组织信任哪些仓库、存储桶和域名。设置环境上下文，覆盖默认的阻止和允许规则，使用自动模式 CLI 子命令检查您的有效配置。

[自动模式](/cn/permission-modes#使用自动模式消除提示)允许 Claude Code 在没有权限提示的情况下运行，通过将每个工具调用路由到分类器来阻止任何不可逆的、破坏性的或超出环境范围的操作。使用 `autoMode` 设置块告诉分类器您的组织信任哪些仓库、存储桶和域名，使其停止阻止常规内部操作。

<Note>
  自动模式对所有使用 Anthropic API 的用户可用。在 Bedrock、Vertex 或 Foundry 上不可用。如果 Claude Code 报告您的账户不可用自动模式，请查看[完整要求](/cn/permission-modes#使用自动模式消除提示)，其中还涵盖了支持的模型以及团队和企业计划上的管理员启用。
</Note>

开箱即用，分类器仅信任工作目录和当前仓库配置的远程仓库。推送到公司的源代码控制组织或写入团队云存储桶等操作会被阻止，直到您将它们添加到 `autoMode.environment` 中。

有关如何启用自动模式以及它默认阻止什么，请参阅[权限模式](/cn/permission-modes#使用自动模式消除提示)。本页是配置参考。

本页涵盖如何：

* [选择在哪里设置规则](#分类器读取配置的位置)，跨 CLAUDE.md、用户设置和托管设置
* [定义受信任的基础设施](#定义受信任的基础设施)使用 `autoMode.environment`
* [覆盖阻止和允许规则](#覆盖阻止和允许规则)当默认值不适合您的流程时
* [检查您的有效配置](#检查默认值和您的有效配置)使用 `claude auto-mode` 子命令
* [审查拒绝](#审查拒绝)以便您知道接下来要添加什么

## 分类器读取配置的位置

分类器读取与 Claude 自身加载的相同的 [CLAUDE.md](/cn/memory) 内容，因此项目 CLAUDE.md 中的指令如"永远不要强制推送"会同时引导 Claude 和分类器。从此处开始设置项目约定和行为规则。

对于跨项目适用的规则，如受信任的基础设施或组织范围的拒绝规则，请使用 `autoMode` 设置块。分类器从以下范围读取 `autoMode`：

| 范围                           | 文件                                            | 用于                                               |
| :----------------------------- | :---------------------------------------------- | :------------------------------------------------- |
| 单个开发者                     | `~/.claude/settings.json`                       | 个人受信任的基础设施                               |
| 单个项目，单个开发者           | `.claude/settings.local.json`                   | 每个项目的受信任存储桶或服务，已 gitignore         |
| 组织范围                       | [托管设置](/cn/server-managed-settings)         | 分发给所有开发者的受信任基础设施                   |
| `--settings` 标志或 Agent SDK  | 内联 JSON                                       | 每次调用的覆盖用于自动化                           |

分类器不从 `.claude/settings.json` 中的共享项目设置读取 `autoMode`，因此检入的仓库无法注入自己的允许规则。

每个范围的条目会合并。开发者可以使用个人条目扩展 `environment`、`allow`、`soft_deny` 和 `hard_deny`，但无法移除托管设置提供的条目。因为允许规则在分类器内部作为软阻止规则的例外，开发者添加的 `allow` 条目可以覆盖组织的 `soft_deny` 条目：组合是累加的，不是硬策略边界。

<Note>
  分类器是在[权限系统](/cn/permissions)之后运行的第二道门。对于无论用户意图或分类器配置如何都绝不能运行的操作，请在托管设置中使用 `permissions.deny`，它在分类器被咨询之前阻止操作，且无法覆盖。
</Note>

## 定义受信任的基础设施

对于大多数组织，`autoMode.environment` 是您唯一需要设置的字段。它告诉分类器哪些仓库、存储桶和域名是受信任的：分类器用它来决定"外部"的含义，因此任何未列出的目标都是潜在的数据外泄目标。

默认环境列表信任工作仓库及其配置的远程仓库。要在该默认值旁边添加您自己的条目，请在数组中包含字面字符串 `"$defaults"`。默认条目会在该位置拼接，因此您的自定义条目可以放在它们之前或之后。

```json theme={null}
{
  "autoMode": {
    "environment": [
      "$defaults",
      "源代码控制: github.example.com/acme-corp 及其下的所有仓库",
      "受信任的云存储桶: s3://acme-build-artifacts, gs://acme-ml-datasets",
      "受信任的内部域名: *.corp.example.com, api.internal.example.com",
      "关键内部服务: Jenkins at ci.example.com, Artifactory at artifacts.example.com"
    ]
  }
}
```

条目是描述性文本，不是正则表达式或工具模式。分类器将它们作为自然语言规则读取。按照您向新工程师描述基础设施的方式编写。一个完善的环境部分包括：

* **组织**：您的公司名称以及 Claude Code 主要用于什么，如软件开发、基础设施自动化或数据工程
* **源代码控制**：您的开发者推送到的每个 GitHub、GitLab 或 Bitbucket 组织
* **云提供商和受信任的存储桶**：Claude 应该能够读取和写入的存储桶名称或前缀
* **受信任的内部域名**：网络内部 API、仪表板和服务的主机名，如 `*.internal.example.com`
* **关键内部服务**：CI、制品注册表、内部包索引、事件工具
* **额外上下文**：受监管行业的约束、多租户基础设施或影响分类器应视为风险的合规要求

一个有用的起始模板：填写括号内的字段并删除不适用的行。

```json theme={null}
{
  "autoMode": {
    "environment": [
      "$defaults",
      "组织: {公司名称}。主要用途: {主要用例，如软件开发、基础设施自动化}",
      "源代码控制: {源代码控制，如 GitHub 组织 github.example.com/acme-corp}",
      "云提供商: {云提供商，如 AWS、GCP、Azure}",
      "受信任的云存储桶: {受信任的存储桶，如 s3://acme-builds, gs://acme-datasets}",
      "受信任的内部域名: {受信任的域名，如 *.internal.example.com, api.example.com}",
      "关键内部服务: {服务，如 Jenkins at ci.example.com, Artifactory at artifacts.example.com}",
      "额外上下文: {额外内容，如受监管行业、多租户基础设施、合规要求}"
    ]
  }
}
```

您提供的上下文越具体，分类器就越能区分常规内部操作和数据外泄尝试。

您不需要一次填写所有内容。一个合理的推出方案：从默认值开始，添加您的源代码控制组织和关键内部服务，这解决了最常见的误报，如推送到您自己的仓库。接下来添加受信任的域名和云存储桶。随着阻止的出现填写其余内容。

## 覆盖阻止和允许规则

三个额外字段让您替换分类器的内置规则列表：`autoMode.hard_deny` 用于无条件安全边界，`autoMode.soft_deny` 用于用户意图可以清除的破坏性操作，`autoMode.allow` 用于例外。每个都是描述性文本数组，作为自然语言规则读取。对于在分类器之前运行的基于工具模式的硬阻止，请使用 [`permissions.deny`](/cn/permissions)。

在分类器内部，优先级分为四层：

* `hard_deny` 规则无条件阻止。用户意图和 `allow` 例外不适用。
* `soft_deny` 规则接下来阻止。用户意图和 `allow` 例外可以覆盖。
* `allow` 规则随后作为例外覆盖匹配的 `soft_deny` 规则。
* 明确的用户意图覆盖剩余的软阻止：如果用户的消息直接且具体地描述了 Claude 即将执行的确切操作，即使 `soft_deny` 规则匹配，分类器也会允许。

一般请求不算明确意图。要求 Claude "清理仓库"不会授权强制推送，但要求 Claude "强制推送这个分支"会。

要放松限制，当分类器反复标记默认例外未涵盖的常规模式时，添加到 `allow`。要加强限制，添加到 `soft_deny` 以针对您的环境中默认遗漏的破坏性风险，或添加到 `hard_deny` 以针对绝不能跨越的安全边界。要在保留内置规则的同时添加自己的规则，请在数组中包含字面字符串 `"$defaults"`。默认规则会在该位置拼接，因此您的自定义规则可以放在它们之前或之后，并且随着内置列表在版本间的变化继续继承更新。

```json theme={null}
{
  "autoMode": {
    "environment": [
      "$defaults",
      "源代码控制: github.example.com/acme-corp 及其下的所有仓库"
    ],
    "allow": [
      "$defaults",
      "允许部署到暂存命名空间: 暂存环境与生产环境隔离，每晚重置",
      "允许写入 s3://acme-scratch/: 具有 7 天生命周期策略的临时存储桶"
    ],
    "soft_deny": [
      "$defaults",
      "永远不要在迁移 CLI 之外运行数据库迁移，即使是针对开发数据库",
      "永远不要修改 infra/terraform/prod/ 下的文件: 生产基础设施变更通过审查工作流"
    ],
    "hard_deny": [
      "$defaults",
      "永远不要将仓库内容发送到第三方代码审查 API"
    ]
  }
}
```

<Danger>
  设置 `environment`、`allow`、`soft_deny` 或 `hard_deny` 中的任何一个而不带 `"$defaults"` 会替换该部分的整个默认列表。不带 `"$defaults"` 的 `soft_deny` 数组会丢弃每个内置软阻止规则，包括强制推送、`curl | bash` 和生产部署。不带 `"$defaults"` 的 `hard_deny` 数组会丢弃内置的数据外泄和自动模式绕过规则。
</Danger>

每个部分独立评估，因此仅设置 `environment` 不会影响默认的 `allow`、`soft_deny` 和 `hard_deny` 列表。只有在您打算完全接管列表时才省略 `"$defaults"`。要安全地做到这一点，运行 `claude auto-mode defaults` 打印内置规则，将它们复制到您的设置文件中，然后根据您自己的流程和风险承受能力审查每条规则。

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

三个 CLI 子命令帮助您检查和验证配置。

打印内置的 `environment`、`allow`、`soft_deny` 和 `hard_deny` 规则为 JSON：

```bash theme={null}
claude auto-mode defaults
```

打印分类器实际使用的 JSON，在设置的地方应用您的设置，否则使用默认值：

```bash theme={null}
claude auto-mode config
```

获取 AI 对您的自定义 `allow`、`soft_deny` 和 `hard_deny` 规则的反馈：

```bash theme={null}
claude auto-mode critique
```

保存设置后运行 `claude auto-mode config` 以确认有效规则是您期望的，`"$defaults"` 已就地展开。如果您编写了自定义规则，`claude auto-mode critique` 会审查它们并标记模糊、冗余或可能导致误报的条目。如果您需要删除或重写内置规则而不是在其旁边添加，请将 `claude auto-mode defaults` 的输出保存到文件，编辑列表，然后将结果粘贴到设置文件中替换 `"$defaults"`。

## 审查拒绝

当自动模式拒绝工具调用时，拒绝记录在 `/permissions` 的"最近拒绝"标签下。在被拒绝的操作上按 `r` 标记为重试：当您退出对话框时，Claude Code 发送消息告诉模型它可以重试该工具调用并恢复对话。

同一目标的重复拒绝通常意味着分类器缺少上下文。将该目标添加到 `autoMode.environment`，然后运行 `claude auto-mode config` 确认其生效。

要以编程方式对拒绝做出反应，请使用 [`PermissionDenied` 钩子](/cn/hooks#permissiondenied)。

## 另请参阅

* [权限模式](/cn/permission-modes#使用自动模式消除提示)：自动模式是什么、默认阻止什么以及如何启用
* [托管设置](/cn/server-managed-settings)：在组织中部署 `autoMode` 配置
* [权限](/cn/permissions)：在分类器运行之前适用的允许、询问和拒绝规则
* [设置](/cn/settings)：完整的设置参考，包括 `autoMode` 键
