[控场AI]
· 6 分钟阅读· 3,265 字

Claude Code v2.1.304 更新详解:自动模式与权限安全升级

Claude Code v2.1.304 更新详解:自动模式与权限安全升级

Claude Code v2.1.304 细化权限语义、增强自动模式并密集修复插件与多代理问题。

Claude Code v2.1.304 是一个以稳定与修复为主的版本,没有颠覆性功能,但在三条主线上做了实质增强。权限方面,插件 `tool.check` 新增 `decider: "person"` 与 `e.isReadOnly`,使无人值守场景下的审批拒绝有明确语义,只读调用可单独放行。配置方面,新增 `/auto-mode-setup` 引导流程,可读取项目与近期会话教会自动模式理解环境,并覆盖 Bedrock、Vertex、Foundry 等企业网关与禁用遥测场景;`/claude-api managed-agents-secure` 则以只读方式比对 Managed Agents 配置与官方安全指南。自动模式还优化了分类器上下文存储、压缩会话恢复速度与长对话内存占用,并在恢复不活跃会话可能大量消耗限额时给出警告。多代理与插件方面修复了绕过 `--max-turns`、热重载误移除工具、按钮点击丢失等问题,另有多项边缘修复。

Claude Code v2.1.304 发布页面

Claude Code 发布 v2.1.304 版本,这次更新没有引入颠覆性功能,却密集修复了数十个实际使用中的边缘问题,同时围绕权限控制、自动模式、多代理协作三条主线做了实质性增强。对于每天在终端里与 Claude Code 打交道的开发者来说,这份 changelog 值得逐条读完。

权限模型更细:decider 与只读事件

本次更新为插件的 tool.check 增加了两个新字段。其一是 decider: "person",含义是:当工具调用需要人工批准时,只有权限对话框或宿主回调能够完成审批;如果当前环境中没有任何人可以响应,该请求会带着插件给出的理由被直接拒绝。这一设计把「无人值守场景下的权限决策」从模糊地带拉了出来。

其二是 e.isReadOnly,在工具调用为只读时被置位。插件作者可以据此区分读写操作,对只读调用放行、对写操作保持严格校验。配合此前已有的沙箱机制,权限层正在从「一刀切」走向「按操作性质分级」。

tool.check 是 Claude Code 插件体系中供插件作者声明的钩子,插件借此对每一次工具调用进行前置校验:可以放行、拒绝,或标记为「需要人工批准」。本版本新增的 decider 字段正作用于第三种情形——它声明了由谁来完成最终的批准动作,取值 "person" 表示必须由人类(权限对话框或宿主回调)拍板,机器无法代替。与之互补的 isReadOnly 则是对调用性质的描述:只读工具(读取文件、查询状态等)不改变外部世界,因此可以安全地自动放行;写操作才需要严格把关。二者合用,构成了「性质分级 + 决策来源明确」的双维度权限模型,也让插件在无人值守的 CI、批处理环境中具备可预期的行为。

/auto-mode-setup:让自动模式先认识你的项目

新加入的 /auto-mode-setup 是一个引导式配置流程,它会读取你的项目和近期会话,据此教会自动模式理解你的开发环境。根据变更说明,该功能现已覆盖 Bedrock、Vertex、Foundry、Claude apps gateway 以及禁用遥测的会话——也就是说,企业侧和隐私敏感场景同样可用。

另一个值得关注的新命令是 /claude-api managed-agents-secure,它会将 Managed Agents 代理的设置与 Anthropic 公开的安全指南逐项比对,且全程不做任何修改。这是一种「只诊断、不动手」的安全审计思路,适合在合规审查前快速摸清配置差距。

自动模式与上下文管理的优化

自动模式在本次更新中获得多项底层改进:安全分类器的上下文不再随每个请求一并存储,会话文件体积因此减小;恢复大型压缩会话时,首个请求能更快发出;在长时间或恢复的对话中,内存占用有所下降。

用量提示方面,Pro 和 Max 套餐用户在恢复一个不活跃会话时,如果预计会消耗 5 小时限额中相当可观的比例,现在会收到明确警告,可以选择继续恢复,或开启新对话——若在新对话中提到之前的内容,Claude 仍能检索到上一段对话。

多代理与插件系统的修复

多代理并发场景下的响应性和吞吐量得到改善。一个具体的 bug 修复是:插件曾会让无头运行突破 --max-turns、Stop 或输入结束的限制,通过派生子代理或重跑已完成的代理继续执行,这一漏洞已被堵上。

插件热重载的问题同样被处理:此前一次失败的重载会移除仍处于加载状态版本的工具栏和命令,并且对「旧版本是否仍在运行」的提示错误或沉默。现在这一行为已被纠正。此外,同一标签且无 key 的按钮在未变更重绘时点击丢失的问题也一并修复。

无头运行(headless mode)指以 claude -p 等非交互方式调用 Claude Code,常用于 CI 流水线和脚本自动化。--max-turns 是限制单次运行中模型轮次上限的参数,Stop 与输入结束则是另外两种终止信号,三者共同构成自动化场景的「刹车」。插件若能通过派生子代理或重跑已完成代理绕过这些限制,就意味着一个本应受控的自动化任务可能无限延续,既消耗额度也带来不确定性。本次修复封锁了这一路径,使终止语义在插件介入下仍然成立。插件热重载指在不重启会话的情况下更新插件版本,难点在于新旧版本共存期间的命令与工具栏归属,以及状态提示的准确性。

值得留意的零散修复

变更列表中还有若干容易被忽略但影响实际体验的条目:

  • rm -r 作用于挂载盘或其顶层目录(/Volumes、/media、WSL 的 /mnt/c)时,不再缺失与 rm -rf /Applications 同等的安全提示;
  • claude --worktree 在 HEAD 处于分离状态或位于其他分支时退出,不再未经询问就删除 worktree 及其分支,避免丢失提交;
  • 上下文用量检查不再阻塞 SDK 与桌面会话中的模型切换、消息和中断;
  • LLM 网关背后的 context_management: Extra inputs are not permitted 错误已修复,Claude Code 会在重发请求时移除该字段;
  • 压缩结束后会重新向 Claude 发送技能列表,而 /reload-skills 只发送新增或变更的技能。

Code Review 功能也有增强:组织所有者可为整个组织选择 Quick、Standard(默认)或 Deep 三档审查级别,并可为单个仓库单独设定;管理设置中新增选项,可覆盖 GitHub 组织内的全部仓库,包括后续新增的仓库,无需逐个勾选。

--worktree 参数用于让 Claude Code 在独立的 Git worktree(同一仓库的并行工作目录)中作业,从而隔离改动、不干扰主分支。问题出在 HEAD 处于分离状态或指向其他分支时:此时「当前分支」语义不明确,直接删除 worktree 及其关联分支会连带丢失尚未合并的提交。修复后改为先退出并询问,把破坏性操作的决定权交还用户。另一条修复涉及 LLM 网关:部分网关会严格校验请求体的字段,遇到不认识的 context_management 就返回 Extra inputs are not permitted 错误,Claude Code 改为在重发时剥离该字段,从而兼容这类更保守的网关实现。

小结

v2.1.304 是一份典型的「稳定器」版本:新增功能以配置引导和安全审计为主,重心放在权限语义的精确化与边缘场景的修复上。对插件开发者和企业部署方而言,decider: "person" 与 isReadOnly 提供的能力,可能比表面看起来更有价值。

背景补充

自动模式(Auto Mode)指 Claude Code 在较少人工确认的情况下自主连续执行操作的工作方式,其前提是系统对项目结构、常用命令与近期工作上下文有足够了解,否则容易误判意图或做出越界动作。/auto-mode-setup 的作用正是把这个前提显式化:它一次性扫描项目文件与历史会话,形成自动模式可用的环境画像。文中提到的 Bedrock、Vertex、Foundry、Claude apps gateway 是 Claude 模型的企业级接入渠道(分别对应 AWS、Google Cloud、Azure 及企业自建网关),这些渠道往往伴随数据驻留与审计要求;禁用遥测的会话则意味着不向外部回传使用数据。该配置流程覆盖这些场景,说明它可在不依赖遥测数据的条件下完成画像构建。

#Claude Code#v2.1.304#Claude Code 更新#自动模式#权限控制#插件系统#多代理#Code Review
分享:

相关推荐