跳转到内容

CLAUDE_CODE_ATTRIBUTION_HEADER 导致缓存失效 - CC Switch Fix

Quick fix

设置环境变量 CLAUDE_CODE_ATTRIBUTION_HEADER=0 以禁用动态请求头,恢复 KV 缓存命中。

报错原文
缓存固定为13824

自 Claude Code v2.1.36 起,每次 API 请求都会包含带有动态值(如 cc_version、cc_entrypoint 等)的 `x-anthropic-billing-header`。这些变化的头部值破坏了 KV 缓存的前缀匹配机制,导致每次请求都强制进行完整的提示词处理,从而引发严重的延迟增加和成本上升,并表现为缓存数量无法更新或固定不变。

此外,许多第三方代理(如 LiteLLM、claude-code-router 等)无法识别此标头,可能会返回 ValidationException。通过设置环境变量 `CLAUDE_CODE_ATTRIBUTION_HEADER=0` 可以禁用该标头,从而恢复正常的缓存行为。注意:较旧版本的 Claude Code(如 v2.1.148)可能存在兼容性问题,建议更新至最新版本(如 v2.1.215+)。

  1. 在系统环境变量中添加或修改 CLAUDE_CODE_ATTRIBUTION_HEADER 为 0

    Windows 用户可通过系统属性 -> 高级 -> 环境变量 设置
    # Linux/macOS 用户可在 ~/.bashrc, ~/.zshrc 或 /etc/environment 中添加:
    export CLAUDE_CODE_ATTRIBUTION_HEADER=0
ToolClaude Code
Version未知
PlatformsWindowsmacOSLinux
为什么设置后缓存还是有问题?
请确认您使用的 Claude Code 版本是否过旧(如 v2.1.148)。有反馈指出老版本可能存在可变前缀兼容问题,建议更新至 v2.1.215 或更高版本。
这个设置会影响使用 Anthropic 官方 API 吗?
不会。该设置仅禁用用于计费和追踪的动态标头,不影响核心功能。如果您直接使用 Anthropic 官方 API,通常不需要此设置;但在使用第三方代理或本地推理时非常有用。
如何在 CC Switch 中快速切换此设置?
目前 CC Switch 尚未提供内置开关(Issue #2025 正在请求此功能)。您需要手动在操作系统的环境变量中进行设置。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。