Claude Code给第三方大模型用户挖的坑

刷 X 看到的消息:

现象就是:Claude Code从2.1.36开始, 在每个API请求里塞了一行x-anthropic-billing-header, 是当成system prompt的第一块发过去的. 里面有个叫cch的5位hex字段, 每次请求都不一样。
Anthropic自己的服务端知道怎么处理. 但所有第三方Anthropic兼容代理、Bedrock、本地vLLM都不知道. 它们老老实实把这段当成system prompt的一部分算缓存key. 前缀每次都变, 命中率直接归零。

然后在 B 站上也看到了类似的分析视频和解决办法,感兴趣的佬友们可以去深度探索下。

最后直接给出解决办法:在claude/settings.json的 env 中加入这行配置
{
“env”: {
“CLAUDE_CODE_ATTRIBUTION_HEADER”: “0”
}
}

14 个赞

以下这些配置可以降低缓存失效风险。

{
  "$schema": "https://json.schemastore.org/claude-code-settings.json",
  "includeGitInstructions": false,
  "env": {
    "ANTHROPIC_BASE_URL": "",
    "ANTHROPIC_AUTH_TOKEN": "",
    "ANTHROPIC_API_KEY": "",
    "ANTHROPIC_MODEL": "",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "",

    "CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS": "1",
    "ENABLE_PROMPT_CACHING_1H": "1",
    "CLAUDE_CODE_ATTRIBUTION_HEADER": "0",
    "DISABLE_TELEMETRY": "1",
    "DISABLE_ERROR_REPORTING": "1",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH": "0"
  }
}
1 个赞

又来传谣了 X真是**聚集地…

版本说不对不说 信息还过时 炒了几轮了都还能翻个面换个姿势炒

事实上很多人连这些变量具体意义为什么设计都搞不懂

别人说什么就当什么听 以前没源代码时不会自己复核

现在有源代码了也还是不会自己求证

只要骂A\就像是政治正确一样

连始皇都会算cch了(bushi

再退一万步想 一个闭源的商业产品服务自己家开发的模型 几乎日更的节奏 有那个功夫去给别家使坏吗
真要使坏好歹 if (other) 一下吧

25 个赞


这部分动态的根本没开缓存 不要被带节奏了

1 个赞

claude不是前置缓存吗,这个cache管的是之前所有的消息数据吧,所以是包含cch的?

1 个赞

3 个赞

消息恐怕不真,我昨天还在用cc+deepseek v4,看了下账单,缓存命中是正常的

1 个赞

没有把 我看了下cc switch 缓存命中很高啊 应该没有这个问题把

deepseek: 你猜我那么高的缓存比例是怎么来的?你做不到这么高的缓存菜就多练

我也是在 X 上刷到的,然后去 B 站上搜了一下,看到近期的确有 up 主发了抓包和源码分析视频:https://www.bilibili.com/video/BV1m2LG6WEdH

当然,如果你觉得我是在造谣带节奏的话,就当是我好心办坏事吧

第三方模型的话,还是用opencode吧

你这不是正好说的前缀匹配吗,是想表达什么呢

说得在理,但是确实还是不少人不知道这方面内容的,特别现在新冒出来的中转技术也不行他们配置也没有提及的

同时必须强调A/就是该骂 :nauseated_face: