第一步:用一条命令把 API 版本迁完
Claude Code 2.1.307 在 10 月 21 日发布,同一天还发了只含两个修复的 2.1.306。这一版最实用的新命令是 /claude-api api-version,它把项目里直接调 Claude API 的代码一次性迁到最新的 API 版本 2026-10-21。
在此之前,API 版本一升级,请求和响应的格式变化得自己一处一处找、一处一处改。现在的流程是先在项目根目录跑这条命令,再 review 它没能自动处理的差异。比起手工追每个版本变更,省掉的是最枯燥的那一段。建议把它放在升级后的第一件事做,而不是等编译报错再回头补。
第二步:把谁拦了我变成可观测事件
第二个能力更值得在生产环境里用起来:新增 OpenTelemetry 事件 claude_code.safety_event。只要权限规则、auto 模式、安全检查、hooks 或沙箱对某次工具调用做出停止、重新询问或回滚的动作,这个事件就会触发。
过去要弄清楚是哪一道防线、在第几步把工具调用拦下来,只能翻会话日志手猜。现在把它接进已有的 OTel 管道,就能按组织维度统计拦截频率与原因分布,用来调策略:哪条 allow 规则写得太紧、哪个 hook 在误伤正常调用、沙箱是不是把只读操作也挡了。
配合同一版修复的一个老问题一起看更有意义:HTTP MCP 工具调用在连接中途断开时会被重复发送,现在只有只读或幂等的工具才允许重试。写操作不再有被悄悄执行两次的风险,这一点对跑生产改动的团队比任何新功能都重要。
第三、四步:并发 fork 与升级后自查
2.1.307 修掉了一个困扰并行工作流的问题:多个 fork 子代理并发运行时,每个现在都知道自己属于哪一次运行,不再把别的 fork 正在进行的工作误认成自己的、然后重复启动一遍。之前并行 fork 偶尔会互相打架、产出重复。这个修复的实际含义是,在一条消息里并行调用多个 fork 子代理的模式终于够稳,可以放心把并发度往上推。另外,自托管 runner 的 checkout hook 现在默认超过 30 分钟即视为会话启动失败,长时间卡住的流水线会直接报错而不是默默挂着。
还有一批修复值得对照:设置 CLAUDE_CODE_DISABLE_1M_CONTEXT 且模型是带 [1m] 后缀的别名(如 opus[1m])时,请求不再报 model not found;macOS 登录钥匙串锁定时,claude -p 里的 MCP 服务器不再只显示需要认证,而是给出原因,解锁后下一次运行无需重新登录;机器休眠导致 MCP 连接超时的误报也已修正。
这类版本没有惊天动地的新功能,它的价值在于把偶发、难复现、靠猜的失败逐个变成有名字的错误。对跑长任务的智能体工作流来说,这比多一个命令重要得多。
升级动作很简单:用 npm 或原生安装包更新后跑 claude --version 确认为 2.1.307,再执行一次 /doctor 看 MCP 与沙箱状态是否正常。如果你的项目里散落着 Claude API 调用,先跑 /claude-api api-version,再回头接 safety_event 的埋点,两步都不需要改构建配置。