Claude Code 2.1.303 到 2.1.304 更新:走中转站时工具搜索默认打开,Python 版 SDK 的默认权限模式还没跟上
Claude Code 2.1.303 和 2.1.304 发布:设了自定义接口地址时 MCP 工具搜索改为默认打开,本站通过中转站补测能用;/auto-mode-setup 扩到第三方平台。补测还发现,Python 版 Agent SDK 最新版自带的仍是 2.1.301,不设权限模式还是从 auto 开始。
2026 年 10 月 18 日和 19 日,Claude Code 先后发布了 2.1.303 和 2.1.304。2.1.303 只写了一句“修复问题、提升稳定性”;2.1.304 有 70 多条改动。和本站读者关系最大的是三点:
- 走中转站时,MCP 的工具搜索改为默认打开(2.1.304)。 之前只要
ANTHROPIC_BASE_URL指向的不是官方地址,工具搜索就默认关闭。本站通过中转站补测,能用。 /auto-mode-setup在 Bedrock、Vertex、Foundry、Claude apps gateway 和关了遥测的会话里也能用了(2.1.304)。 它读你的项目和最近的会话,帮 auto 模式了解你的环境。- Python 版 Agent SDK 还没跟上 2.1.302 的默认权限模式(本站补测)。 官方文档 10 月 20 日改成“v2.1.302 起,不设权限模式就从
default开始”,但 PyPI 上最新的 SDK 自带的还是 2.1.301,实测仍从 auto 开始。
这是 2.1.301 到 2.1.302 之后的两个版本。下面按“对你有什么影响”整理,不逐条翻译更新日志。
走中转站的人要知道的
工具搜索默认打开(2.1.304)
工具搜索的意思是:MCP 工具的定义不在会话开始时全部发给模型,模型要用时先搜一下,再把搜到的那几个补进来。工具多的时候省下不少上下文。《Claude Code 接 MCP 服务器实战》里实测过,一个只有 3 个工具的服务器就占了两千多 token。
更新日志的原话是:设了自定义 ANTHROPIC_BASE_URL 时,工具搜索改为默认打开;网关返回 400 或 422 时,去掉它再发一次。写这条快讯时,官方 MCP 文档和环境变量文档还是原来的说法:接口地址不是官方的时候默认关闭,代理能转发 tool_reference 块才建议设 ENABLE_TOOL_SEARCH=true。
本站 10 月 20 日在服务器上补测(通过酷站AI 中转站,claude -p,接一个只有一个工具的本地 MCP 服务器,让它查 Express 某个版本的更新记录):
| 版本和设置 | 工具列表里有没有 ToolSearch |
实际调用 | 结果 |
|---|---|---|---|
| 2.1.304,默认 | 有 | 先 ToolSearch,再调 MCP 工具 |
答对了 |
2.1.304,ENABLE_TOOL_SEARCH=false |
没有 | 直接调 MCP 工具 | 答对了 |
| 2.1.302,默认 | 没有 | 直接调 MCP 工具 | 答对了 |
2.1.304 那次的会话记录里,三次请求都带着工具搜索,MCP 工具一直是延迟加载的,中间没有出现“去掉工具搜索再发”的重试。也就是说,通过这家中转站,Claude Code 的工具搜索是真的在用,不是失败后退回去的。
如果你的中转站不支持,按更新日志,返回 400 或 422 时 Claude Code 会自己去掉它重发;碰到别的报错,设 ENABLE_TOOL_SEARCH=false 关掉。这个环境变量和别的常用变量见《Claude Code 速查》。
注意这和《Claude API 的服务器端工具》里测到的“带着历史继续时报 400”不是同一种用法:那篇用的是接口自带的搜索工具(tool_search_tool_regex),Claude Code 用的是自己的 ToolSearch 工具。
用 Agent SDK 的要看 SDK 自带的版本。本站同一天用 Python 版 SDK 0.2.168 补测:它自带的 2.1.301 走中转站时工具搜索仍然是关的,用 cli_path 接上 2.1.304 才默认打开。详见《工具太多时的工具搜索》。
另外三条(2.1.304)
- 在 LLM 网关后面报
context_management: Extra inputs are not permitted的,Claude Code 现在会去掉这个字段重发。之前碰到这个报错,要靠CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS绕过去。 - VS Code 扩展的聊天面板,在 Bedrock、Vertex、Foundry 上、在 LLM 网关后面或者关了遥测的会话里,也能画 mod 的界面了。之前这些会话拉取不了功能开关,面板里什么都不画。mod 是什么见《Claude Code Mods 是什么》。
/auto-mode-setup扩到的范围里写的是 Bedrock、Vertex、Foundry、Claude apps gateway 和关了遥测的会话,没有提自定义ANTHROPIC_BASE_URL。通过中转站能不能用,本站没有试。写这条快讯时,auto 模式的配置文档还写着它要能拉取功能开关,关了就用不了。
原来的脚本可能要改:Agent SDK 的默认权限模式
10 月 20 日,官方改了权限模式、Agent SDK 权限和 TypeScript 参考三页的写法:Claude Code v2.1.302 起,没设权限模式的 claude -p 和 Agent SDK 会话一律从 Manual 模式开始(配置值是 default),要批准的调用一律拒绝,除非有允许规则、hook、审批回调或 --permission-prompt-tool。原来按会话分情况的那张表,改成了一句历史说明:v2.1.302 以前,拿不到功能开关的会话(比如在第三方平台上、关了遥测)可能从 auto 开始。2.1.302 本身的改动见上一期。
本站同一天在服务器上补测(通过酷站AI 中转站,都没有设权限模式):
claude -p,2.1.304:流式输出第一个事件里的permissionMode是default;让它新建文件,它说要授权,没有建。加上--permission-mode auto再跑,建了。和 10 月 17 日用 2.1.302 测的一样。- Python 版 Agent SDK 0.2.168(PyPI 上的最新版,10 月 15 日发布):第一个事件里的
claude_code_version是 2.1.301,permissionMode是auto。退款工具不在允许清单里、也没有审批回调,它照样把退款办了。 - 同一个 SDK,用
cli_path指向服务器上装的 2.1.304:permissionMode变成default,退款被拒绝,报错是Claude requested permissions to use mcp__shop__refund_order, but you haven't granted it yet.,订单没变。
Python 版 SDK 用的是它自己带的那份 Claude Code,版本跟着 SDK 走,不跟你机器上装的走。所以“v2.1.302 起从 default 开始”这句,对现在的 Python 版 SDK 还不成立。npm 上 TypeScript 版的最新版本是 0.3.304,包信息里写的自带版本是 2.1.304;TypeScript 版本站没有测。
最稳妥的做法和上一期一样:把权限模式写死。 Python 设 permission_mode,TypeScript 设 permissionMode,claude -p 加 --permission-mode。权限模式、规则和审批回调怎么配合,见《Agent SDK 的权限、审批和 hooks》。
新功能和改动(2.1.304)
/claude-api managed-agents-secure:对照 Anthropic 公开的安全指南,检查一个托管智能体的设置,只报告,不改任何东西。托管智能体见《托管智能体入门》。- 恢复很久没用的对话前先提醒(Pro 和 Max)。 恢复会占掉 5 小时用量里明显的一块时,会给你两个选择:照样恢复,或者开一个新对话,需要时让 Claude 去查之前那个。
- 压缩之后重新把技能列表发给 Claude;
/reload-skills只发新增或改过的技能。同一来源(一个仓库、你自己的目录或一个插件)的技能,每个会话最多注册 1,024 个 hook、16,384 个匹配字符。 CLAUDE_CODE_AUTO_COMPACT_WINDOW认k和M了。 之前写200k会被悄悄当成 100K 的窗口;现在和--autocompact一样认后缀,数值超出范围或被忽略时会提示。- 写 mod 的人:
tool.check的回答可以写decider: "person",只有权限对话框或宿主的回调能批准,没人可问时就按 mod 给的理由拒绝;tool.check事件多了e.isReadOnly;settings.readhook 能拿到每一层设置并改写合并后的结果,托管的 mod 可以把组织的设置定成上限。mod 的写法见《Claude Code mod 进阶》。 - Code Review:更新日志列出了审查级别(Quick、Standard、Deep,默认 Standard,组织定一个、单个仓库可以另设),和“审查 GitHub 组织里所有仓库,包括以后新加的”的选项。这两项 10 月 15 日正式上线时的文档里就有,几档的区别见正式上线的快讯。
/fast对话框的标题在 Opus 5.5 上去掉了“research preview”。- VS Code:后台子代理在 Agent 卡片下面只显示一行状态,不再把每一步都刷进对话,完整记录在
/tasks里。
其他值得知道的修复(2.1.304)
claude --worktree在 HEAD 处于分离状态或切到了别的分支时,退出时会不问一声就删掉工作树和分支,可能丢提交。工作树见《用 worktree 同时开两个 Claude Code 会话》。- 代理团队里,在主会话批准队友的关闭请求,之前会把整个 Claude Code 退出。
- 插件派生子代理或重跑做完的子代理,会让
claude -p越过--max-turns、Stop 或输入结束之后还在跑。 - 同一次工具调用上,Agent SDK 的回调 hook 超时,会把 PreToolUse hook 的拒绝理由换成超时报错。
- 对挂载的磁盘或顶层目录(
/Volumes、/media、WSL 的/mnt/c)执行rm -r时,之前不会像rm -rf /Applications那样先确认。 - Linux 上,沙箱的
sandbox.filesystem.denyRead里写了不是字符类的方括号(比如[user-id]这样的路由目录)时,沙箱里的命令起不来。 - 自己安排节奏的
/loop,排在 1 小时上限的那次唤醒,之前恰好在 1 小时的提示缓存过期之后触发,每次都要重新读整个对话。 claude --help里--tools、--resume、--debug、--json-schema等几项的说明和实际行为对不上。
版本一览
| 版本 | 要点 |
|---|---|
| 2.1.303,10 月 18 日 | 只写了 Bug fixes and reliability improvements |
| 2.1.304,10 月 19 日 | 走中转站时工具搜索默认打开、/auto-mode-setup 扩到第三方平台、/claude-api managed-agents-secure、恢复旧对话前的用量提醒、压缩后重发技能列表、mod 的 decider: "person"、Code Review 的审查级别 |
发布日期按 GitHub 上版本说明的时间(UTC)。2.1.304 里还有不少针对云端会话、Remote Control、桌面应用、Slack 里的 Claude 和 VS Code 扩展的修复,这里没有展开,完整的条目请看官方更新日志。