Vertex AI 连接时实验性 beta 请求头无法禁用:设置 ENABLE_TOOL_SEARCH=0 解决

问题

使用 Claude Code 连接 Google Cloud Vertex AI 时,即使设置了 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1,仍然会在 API 请求中附加以下实验性 beta 请求头:

  • anthropic-beta: advanced-tool-use-2025-11-20
  • anthropic-beta: tool-search-tool-2025-10-19

导致 Vertex AI 返回错误,因为这些 header 在 Vertex AI 端不被识别或不支持。

来源:GitHub Issue #22893

解决方案

方法 1:设置 ENABLE_TOOL_SEARCH=0(最直接)

export ENABLE_TOOL_SEARCH=0

或在 ~/.claude/settings.json 中写入:

{
  "env": {
    "ENABLE_TOOL_SEARCH": "0"
  }
}

方法 2:升级到 v2.1.77+

官方在 v2.1.77 修复了此问题:CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 从该版本起也会禁用 tool-search 模式及其关联的 beta 请求头。

如果升级后仍然复现(部分用户在 v2.1.104 仍需要手动设置),两个环境变量同时设置可彻底解决:

export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export ENABLE_TOOL_SEARCH=0

说明: 此问题主要影响 Vertex AI 用户(使用 CLAUDE_CODE_USE_VERTEX=1),直连 Anthropic API 的用户通常不受影响。