[控场AI]
· 8 分钟阅读· 4,022 字

Claude Code跑DeepSeek V4.1 Flash:成本仅2美分,费用计数器虚报50倍

Claude Code跑DeepSeek V4.1 Flash:成本仅2美分,费用计数器虚报50倍

Claude Code 接 DeepSeek 跑真实任务仅花 2 美分,但内置计数器按 Opus 费率虚报约 50 倍。

作者用九个环境变量将 Claude Code 切换到 DeepSeek V4.1 Flash,并在隔离配置目录下重复执行三次真实编码任务。三次运行均通过独立验证:8 个测试全部通过,32 个 AGENTS.md/CLAUDE.md 文件的文本输出逐字符一致,新模式也按预期输出 JSON。实际成本每次约 2 美分,但 Claude Code 因不认识模型名而回退到 Opus 费率,显示 0.87 至 1.28 美元,虚报约 50 倍。DeepSeek 自行缓存使 94.6% 输入 token 按低价计费。与 Claude 模型对比,DeepSeek 对 Sonnet/Opus 便宜 17 至 35 倍,但与 Haiku 5.5 基本持平,高峰时段甚至更贵。

Claude Code 能否运行在非 Claude 模型上?答案是可以,但它的内置成本计数器会误导你。一位开发者用 DeepSeek V4.1 Flash 替换默认模型运行 Claude Code,同一个真实编码任务重复三次,每次实际成本约 2 美分,而 Claude Code 显示的费用在 0.87 到 1.28 美元之间——因为程序按自家最贵的 Opus 模型定价了一个它不认识的模型。

rss source: I ran Claude Code on DeepSeek V4.1 Flash. It cost 2 cents. Claude Code said 96.

设置:九个环境变量完成切换

DeepSeek广告 官方提供了在 Claude Code 中使用其模型的指南。作者在此基础上增加了一行配置,将 Claude 配置目录指向一个独立空文件夹,确保测试不会触碰自己的 Claude 登录态、CLAUDE.md 文件和插件。每次运行都从相同的空白环境开始。

关键环境变量包括:ANTHROPIC_BASE_URL 指向 DeepSeek 的 Anthropic 兼容端点,ANTHROPIC_AUTH_TOKEN 填入 DeepSeek API Key,ANTHROPIC_MODEL 及各默认模型槽位设置为 deepseek-flash[1m],子代理模型设为 deepseek-flash,努力级别设为 max,自动压缩窗口设为 786432。

ANTHROPIC_BASE_URL 是 Anthropic API 的入口地址,Claude Code 默认指向官方端点。将其改为第三方兼容端点后,客户端的所有请求(包括模型调用、缓存标记等)都会发往该地址。ANTHROPIC_AUTH_TOKEN 则替代官方的 OAuth 或 API Key 认证,直接以 Bearer Token 形式附加在请求头中。ANTHROPIC_MODEL 与各默认模型槽位(如快速模型、后台模型)用于指定主模型和辅助模型;由于 Claude Code 内部有多个模型角色,只改一个槽位可能导致部分子任务仍走默认模型。deepseek-flash[1m] 中的 [1m] 通常表示 100 万 token 的上下文窗口变体,但 Claude Code 无法识别该后缀,这也是后文成本计数器回退的原因之一。

任务设计:小而真实的代码改造

测试任务是为开源工具 bridle 的 agents 检查添加一个 --json 选项。要求很明确:加标志时输出单个 JSON 对象;不加标志时,文本报告必须逐字符保持不变。同时需要为通过和失败的文件各添加一个测试,并运行完整测试套件。

这个任务规模不大,但足够真实——报告原本是一行行直接打印到屏幕的,代码必须在保持输出不变的前提下重构。每次运行都从仓库的全新克隆开始,以 claude -p 无人值守模式执行。

验证:看结果,不看总结

三次运行都声称通过。作者没有轻信,而是亲自验证:node --test 显示 8 个测试全部通过,包括原有 6 个和新增 2 个。

更关键的验证在测试之外。作者用新代码和原始代码跑遍了来自 25 个知名仓库研究中的 32 个 AGENTS.md 和 CLAUDE.md 文件,三次运行中文本输出在全部 32 个文件上都完全一致。新标志也按预期工作——--json 输出了结构化的 JSON 对象,包含文件、判定、失败数和详细行信息。

有一个未被要求的行为值得注意:三次运行都向 LOG.md 添加了条目。仓库自带的 CLAUDE.md 规定每次更改都要记录。尽管提示词写了“不要更改其他任何东西”,模型选择遵循文件而非提示词,并在总结中说明了这一点。这说明无论背后是什么模型,CLAUDE.md 依然具有最高优先级。

成本数据:2 美分与 96 美分的差距

三次运行的具体数据如下:

  • 第一次(effort max):31 轮,93 秒,新输入 44,065 / 缓存 632,192 / 输出 17,123 tokens,Claude Code 显示 $0.96,DeepSeek 实际收费 $0.019
  • 第二次(effort max):42 轮,123 秒,新输入 43,284 / 缓存 970,880 / 输出 22,957 tokens,Claude Code 显示 $1.28,DeepSeek 实际收费 $0.023
  • 第三次(effort high):26 轮,91 秒,新输入 38,074 / 缓存 605,312 / 输出 14,896 tokens,Claude Code 显示 $0.87,DeepSeek 实际收费 $0.017

账户余额印证了这一点:三次运行后从 0.49 美元降至 0.46 美元。

为什么计数器错了 50 倍

Claude Code 在运行中打印了 [claude-code:unrecognized_model] 警告。它不认识 deepseek-flash[1m],无法获取 DeepSeek 的定价,于是回退到 Claude Opus 5 的费率:每百万输入 5 美元、缓存 0.50 美元、输出 25 美元。用这些费率计算,三次运行的 token 数恰好得出 0.96、1.28 和 0.87 美元。

这意味着如果你根据 Claude Code 显示的成本做预算,误差约为 50 倍——好在是偏保守的方向。

Claude Code 的成本计数器依赖模型名称到定价表的硬编码映射。当模型名不在映射中时,它不会向提供商查询实时价格,而是回退到内置的最高档费率(此处为 Opus 5),并打印 [claude-code:unrecognized_model] 警告。这种设计对官方模型足够,但对自定义端点完全失效。更隐蔽的是,计数器按“未缓存输入价”计算全部输入 token,而实际账单中大量 token 走的是缓存价,两者单价相差数十倍,误差被进一步放大。因此任何非官方模型接入都应忽略客户端显示的费用,以提供商后台账单为准。

缓存机制:DeepSeek 有自己的方案

DeepSeek 文档说明其 Anthropic 端点会忽略 Claude Code 的 cache_control 标记,但它会自行缓存。三次运行中,输入 token 的 94.6% 是缓存命中,按每百万 0.003 美元计费,而非 0.15 美元。这个数字很重要,因为 Claude Code 每一轮都会重发整个会话上下文。作者此前的个人数据显示,重发的上下文占全部 token 的 97.5%。缓存价格才是真正决定成本的因素。

Claude Code 的 cache_control 标记是 Anthropic 提示缓存(prompt caching)的一部分,用于标记可复用的上下文前缀,命中后按较低价格计费。DeepSeek 的 Anthropic 兼容端点不解析这些标记,而是依据自身策略自动识别重复前缀并缓存,命中价格约为每百万 0.003 美元,远低于未命中价。由于 Claude Code 每轮都会重发完整会话上下文,自动缓存对成本的影响远大于模型本身的输入单价;这也意味着,评估低成本模型时,缓存命中率比标价更能决定最终账单。

与 Claude 模型的价格对比

将三次运行的平均 token 组合按各模型标价计算:

  • DeepSeek V4.1 Flash 非高峰时段:每次约 $0.020
  • Claude Haiku 5.5:约 $0.021
  • DeepSeek V4.1 Flash 高峰时段:约 $0.039
  • Claude Sonnet 5.5:约 $0.34
  • Claude Opus 5.5:约 $0.68
  • Claude Fable 5.1:约 $1.52

对 Sonnet 和 Opus 而言,DeepSeek 便宜约 17 到 35 倍。但对 Haiku 5.5 来说成本基本持平,高峰时段 Haiku 反而更便宜。高峰时段为工作日 UTC 01:00–04:00 和 06:00–10:00,在印度这覆盖了大部分工作日的上午。

需要提醒的是,这张表只是把 DeepSeek 的 token 按 Claude 的费率计价,Claude 模型在实际任务中可能消耗不同轮数和 token。作者没有用 Haiku 5.5 跑这个任务,因此它能否通过测试尚未验证。

实际使用建议

基于这次测试,有几条经验值得记住:

  • 忽略非 Claude 模型的成本计数器。 以你的提供商账单为准。Claude Code 对不认识的模型会按 Opus 费率估算,误差极大。
  • “Max”努力级别不便宜。 两次 max 运行分别用了 31 和 42 轮,high 运行用了 26 轮。三次只是样本,不构成趋势。
  • 检查工作结果,而非模型总结。 这次三次总结都准确,但作者唯一能确认这一点的方式是自己跑了验证。
  • 模型切换不改变项目规则优先级。 CLAUDE.md 的约束依然生效,即使与提示词冲突。

这次测试的核心启示不在于“DeepSeek 比 Claude 便宜”,而在于低成本模型已经进入每次任务几美分的区间。真正的问题变成了:哪个模型能通过你的检查,而不仅仅是哪个更便宜。

#Claude Code#DeepSeek V4.1 Flash#AI编程成本#Claude Code接入DeepSeek#AI编程工具#token缓存#模型切换
分享:

相关推荐