使用Anthropic端点,模型为deepseek-v4.1-flash,claudecode,参数默认,开启思考。
服务器环境运行该服务
对话时,发现统计token是实际token的2倍,即claudecode中显示200K,实际上只有100K的真实输入
Anthropic /v1/messages 响应中,把上游 usage 原样转发:
// proxy.mjs ~1379
input_tokens: usage?.inputTokens ?? 0,
cache_read_input_tokens: usage?.cachedInputTokens ?? 0,
貌似上游的 inputTokens 本身就包含缓存命中的 token,而 Anthropic 的 input_tokens 不包含 cache read/creation。两者没有做减法,导致按 Anthropic 语义解析的下游把 input_tokens 与 cache_read_input_tokens 当成互不重叠的两部分,而它们其实是重叠的,于是 input_tokens + cache_read 约等于真实输入的两倍。
使用Anthropic端点,模型为deepseek-v4.1-flash,claudecode,参数默认,开启思考。
服务器环境运行该服务
对话时,发现统计token是实际token的2倍,即claudecode中显示200K,实际上只有100K的真实输入
Anthropic
/v1/messages响应中,把上游 usage 原样转发:貌似上游的
inputTokens本身就包含缓存命中的 token,而 Anthropic 的input_tokens不包含 cache read/creation。两者没有做减法,导致按 Anthropic 语义解析的下游把input_tokens与cache_read_input_tokens当成互不重叠的两部分,而它们其实是重叠的,于是input_tokens + cache_read约等于真实输入的两倍。