Claude Code 2.1.186:Bash 自动响应与子代理权限上报改变了 Operator 的边界
Claude Code 2.1.186 改变了两个默认行为:bash 命令现在会自动触发代理响应,后台子代理遇到权限边界时会将提示上报到主会话而非自动拒绝。在更新前请先完成以下审计。

Claude Code 2.1.186 于 6 月 22 日发布,带来了一个容易被忽略的默认行为变更,对运行无头或自动化 pipeline 的团队影响显著:! bash 命令现在会自动触发代理对输出的响应。与此同时,第二项治理变更改变了多代理会话的权限处理方式:后台子代理不再自动拒绝受限的工具调用,而是将权限提示上报到主会话。两项变更均在不要求配置迁移的情况下改变了 operator 的默认边界,但在更新前都需要进行有意识的审计。
2.1.186 的核心变更
本次发布对 operator 相关的变更可分为三个层次。
Bash 自动响应(新行为,需主动关闭):
!bash 命令现在会自动触发 Claude 对输出的响应;在 settings.json 中设置"respondToBashCommands": false可保持原有的仅上下文注入行为。
此前,在 Claude Code 会话中执行 !<命令> 会将输出注入上下文,但不会触发新的代理回合。现在会触发。对于交互式开发场景,这是一项便利改进。但对于有意将 bash 输出注入上下文、不期望触发后续代理回合的无头或 CI pipeline,这是一个破坏性的默认变更。
后台子代理权限上报(新治理模型):
后台子代理遇到权限边界时,现在会将权限提示上报到主会话,而非自动拒绝;对话框会显示是哪个代理在请求,按 Esc 仅拒绝该工具。
此前,后台子代理遇到需要人工批准但未预先授权的工具调用时,会自动拒绝并继续执行。现在该子代理会暂停,并将提示发送到主会话。主会话会显示请求来自哪个代理,支持按工具逐一批准,按 Esc 拒绝单个工具。这是一种功能更完整的治理模型,但改变了无头部署的预期失败方式。
Agent(type) 拒绝规则安全修复(此前被静默绕过):
修复了
Agent(type)拒绝规则和Agent(x,y)允许类型限制对命名子代理生成未生效的问题。
如果你部署了 Agent(type) 拒绝规则来控制命名代理可以生成哪些子代理类型,这些规则此前只对匿名生成生效,对命名生成无效。此次修复关闭了这一漏洞。原本通过拒绝规则但实际上不应被允许的命名子代理生成将被阻止。更新前请验证你的允许/拒绝规则是否与实际意图一致。
CLAUDE_CODE_MAX_RETRIES 上限(影响无人值守会话):
CLAUDE_CODE_MAX_RETRIES现在上限为 15;无人值守会话请改用CLAUDE_CODE_RETRY_WATCHDOG。
如果你将 CLAUDE_CODE_MAX_RETRIES 设置为超过 15 以增强长期运行会话对瞬时 API 错误的容忍度,该设置现已被上限锁定。无人值守会话应迁移至 CLAUDE_CODE_RETRY_WATCHDOG,它提供更适合长时程任务的看门狗式重试控制。
claude mcp login/logout CLI(新增,支持 SSH):
新增
claude mcp login <name>和claude mcp logout <name>,支持从 CLI 直接对 MCP server 进行身份验证,无需打开交互式/mcp菜单;通过--no-browser和 stdin 重定向支持 SSH 场景下的无浏览器完成。
此前,在远程主机上通过 SSH 运行 Claude Code 的团队无法在不在远程主机上启动浏览器的情况下完成 MCP server 的身份验证。--no-browser 配合 stdin 重定向现在支持从终端进行无头 MCP 凭据配置。
对 AI 工程团队的影响
Bash 自动响应是 operator 最需要优先处理的变更。 任何使用 !<命令> 注入 shell 输出(日志尾部、状态检查、构建输出、测试结果)而不期望触发后续响应回合的 pipeline,更新后都会产生额外的代理回合。这意味着每次自动化上下文注入都会带来额外的模型调用、额外的延迟,以及可能的额外成本。代理还可能在没有明确用户提示的情况下对注入的输出采取行动。
在自动化上下文中更新前,请在 settings.json 中添加 "respondToBashCommands": false 以保持原有行为。
子代理权限上报变更需要策略审查。 如果你的部署依赖后台子代理在权限边界处静默失败(实际上将自动拒绝视为安全默认值),2.1.186 将打破这一假设。子代理现在会暂停并等待主会话处理提示。在完全无人值守的部署中(主会话无人监守),这会产生阻塞状态。团队应在 managed settings 中预先授权工具调用,或配置阻止子代理触达权限边界的拒绝策略。
Agent(type) 修复是一个安全补丁。 如果你的访问控制模型依赖 Agent(type) 拒绝规则来限制命名代理可生成的子代理类型,请审计是否有命名子代理生成此前绕过了这些规则。该修复强制执行你已声明的规则,不改变已有设置,但会关闭可能在会话日志中掩盖未授权生成行为的漏洞。
Router/Operator 视角
对于通过自定义 API gateway 或 AI router 运行 Claude Code 会话的团队,这三项变更存在关联效应:
Bash 自动响应 + gateway 计量:每次 bash 自动响应回合都是一次完整的模型请求。如果你的 gateway 按请求计费或实现了每会话 token 预算,一个此前每次任务注入五次 bash 输出的会话现在会额外产生五次模型回合。为确保账单计费准确,token 计量和成本归因需要反映这一变化。
子代理权限上报 + 无头部署:对于以无头模式(终端无人值守)运行 Claude Code 的 operator,最安全的应对方式是在 managed settings 中定义明确的工具允许/拒绝策略,消除权限提示,而不是依赖子代理触达并上报权限边界。2.1.186 的变更移除了自动拒绝作为静默保底机制——这对交互式使用更好,但完全自治部署需要更精细的预授权配置。
通过 SSH 的 MCP login:--no-browser MCP 身份验证流程对在远程推理节点上运行 Claude Code 的 gateway operator 非常实用。如果你的部署模式包括在远程主机上运行 Claude Code 并连接到 MCP server(工具注册表、代码执行主机、数据连接器),claude mcp login --no-browser 可在无需远程主机浏览器的情况下完成凭据配置。
更新前的审计清单
-
在 Claude Code 会话或自动化脚本中搜索
!<命令>模式。 如果有任何用于上下文注入但不期望触发后续回合的用法,在更新前在相关settings.json中添加"respondToBashCommands": false。 -
审查子代理部署策略。 如果后台子代理触达权限边界时应静默失败,请在 managed settings 中添加明确的拒绝规则。不要再将自动拒绝视为默认保底。
-
审计
Agent(type)和Agent(x,y)拒绝规则。 验证命名子代理生成是否已正确受限。此前通过修复漏洞绕过规则的命名生成现在将被阻止。 -
检查
CLAUDE_CODE_MAX_RETRIES设置(如已配置)。 超过 15 的值将被上限锁定。长时程会话请迁移至CLAUDE_CODE_RETRY_WATCHDOG。 -
对于基于 SSH 的 MCP 配置,测试
claude mcp login <name> --no-browser,替代此前在远程主机完成 MCP 身份验证的变通方案。
通过 npm install -g @anthropic-ai/claude-code 或你的 managed 部署更新路径进行升级。--version 标志可确认当前版本为 2.1.186。
相关阅读
AI 路由新闻与供应商动态 →
Claude Code 2.1.228:那个把自定义请求头送进错误 tier 的 settings 合并 bug
2.1.228 修复了 marketplace 条目在多层 settings tier 中错误继承 custom-headers 的 bug,同时让 Vertex AI 凭据失效从分钟级变成秒级,两处变化都直接影响 operator 部署的审计方式。

Claude Code 2.1.187 更新日志:sandbox.credentials 拦截密钥访问,组织模型限制覆盖全部入口
2.1.187 更新:sandbox.credentials 设置阻止沙盒命令读取凭据文件和密钥环境变量;组织模型限制现已在选择器、--model 参数、/model 命令和 ANTHROPIC_MODEL 全线生效,违规时显示限制提示。

Claude Code 2.1.269:一个 60 项修复包里藏着的三个 operator 级变更
Claude Code 2.1.269 新增了 gateway 发现超时覆盖参数、并发 workflow agent 上限,以及一个跨配置源默默生效的 deny rule 漏洞修复。这三项变更直接影响规模化运营 Claude Code 的团队。