乐于分享
好东西不私藏

我把AI编程工具的账单算了一遍,发现省钱才是真技术

我把AI编程工具的账单算了一遍,发现省钱才是真技术

我替你算了一笔账,看完你可能会心疼

上个月我认识一个自由开发者,用Claude Code接外包。

他接了个中型项目,做了三周,代码写完了,报价没问题,但他算了一下API账单:$400+。

他的利润被吃掉了三分之一。

这不是极端案例。你用Claude Code写一天代码,API账单大概在$15-30。不是因为Anthropic贵,是因为每次请求,你的system prompt、工具定义、对话历史都要原封不动重新传一遍。模型每次都从零开始"读"你的上下文,而你为这些重复传输的字节付了全价。

换个说法:你每次跟AI说话,都要先把前面聊过的所有内容重新念一遍给它听。不管念了多少遍,每个字都要收钱。

然后我发现了Reasonix——一个DeepSeek官方生态的终端编程Agent,GitHub开源一周,8.1k Star。

我把它的源码和架构文档读完了。我的结论是:这不是又一个套壳工具,这是一个把DeepSeek的成本优势压榨到极限的工程艺术品。

它的核心壁垒不是AI有多聪明,是它的"会计"做得比任何竞品都好。


先看一组让我瞪大眼睛的真实数据

Reasonix的README里有一个case study,来自真实用户:

单日(2026-05-01):4.35亿 input tokens,99.82% 缓存命中,实际花费约$12。同样的workload如果没有缓存命中,需要约$61。

4亿token,花12美元。

我们来做个对比:同样的工作量,Claude Code大概花多少?我估算了一下,保守计算是$60-80。差距是5倍以上,而且这还不是极端情况——这是日常正常使用。

这背后是一个简单的算术题:DeepSeek V4-Flash有个机制叫前缀缓存(Prefix Cache),如果两次请求的前缀字节完全一致,缓存部分只收约10%的费用。

缓存命中:每百万token收$0.014。缓存未命中:每百万token收$0.14。

10倍差价。

这个机制在DeepSeek的API文档里只有一行说明,大多数Agent框架根本没当回事。Reasonix把它当成了架构的第一性原理——整个系统的设计,都围绕着"怎么让缓存命中率趋近100%"来展开。


它是怎么做到99.82%缓存命中的?三根支柱,我逐一拆给你看

支柱一:上下文分区——这个想法简单得像天才

普通Agent框架的问题在于:每轮对话都会重写system prompt、重排工具定义、插入时间戳。这些微小变化让两次请求的前缀不再"完全一致",缓存命中率实际不到20%。

Reasonix的解法是把上下文切成三块:

┌─────────────────────────────────────────┐│  IMMUTABLE PREFIX(不可变前缀)          │  ← 整个session不变,缓存命中率≈100%│  system + tool_specs                    │├─────────────────────────────────────────┤│  APPEND-ONLY LOG(只追加日志)           │  ← 单调增长,保留前面轮次的缓存│  [assistant₁][tool₁]...                │├─────────────────────────────────────────┤│  VOLATILE SCRATCH(临时草稿)            │  ← 每轮重置,从不发送给API│  R1思考 / 临时计划                       │└─────────────────────────────────────────┘

关键规则只有三条:

规则一:Prefix在整个session里绝对不变。 哈希后钉住,永不修改。

规则二:Log只能追加,不能改写。 这就是为什么Reasonix不支持"编辑历史消息"——不是UI偷懒,是缓存不变量决定的。你一旦改了历史,前缀变了,缓存全废。

规则三:Scratch是模型的内部草稿。 模型可以在里面乱写乱画,但这部分不发送给API,更不进入Log。等这轮结束,提炼出来的有用信息才进Log。

这解释了一个反直觉的现象:为什么Reasonix可以"挂着不关"?

因为Claude Code的对话历史每轮都在变,缓存根本用不上,开着就是烧钱。Reasonix的设计让session越长,缓存命中率越高——挂着不关在经济上是可行的,而且越挂越省钱。

还有一个细节我觉得很妙:并行工具派发。read_file、search_content、web_search这类只读工具声明了parallelSafe: true,系统会把连续的并行安全调用打包,用Promise.allSettled并发执行。写文件操作充当串行屏障,保证读写顺序不乱。

4.35亿token的workload里,这个优化省了多少轮次,留给你自己去想象。

支柱二:工具调用修复——四个Pass,专治DeepSeek的小毛病

如果你用过DeepSeek API做Agent开发,你可能遇到过这些情况:

  • • 模型把tool call JSON塞进了reasoning_content(<think>标签里),正式的tool_calls字段是空的

    • 参数多了就漏字段

    • 同一个工具用同样的参数反复调用,陷入死循环

    • JSON被max_tokens截断,半截给了parser

Reasonix在收到模型响应后跑四个修复Pass:

Pass 1 - flatten(扁平化): 参数超过10个或嵌套超过2层的schema,自动压平为点号表示发给模型。DeepSeek对深层嵌套JSON的生成稳定性不如扁平结构,所以在输入端就预处理掉。

Pass 2 - scavenge(捞取): 用正则+JSON parser从reasoning_content里捞出模型"想调用但忘了输出"的tool call。DeepSeek的reasoning模式有时会在<think>里把调用逻辑想好了,但正式输出里漏掉了——这个Pass专门修这个bug。

Pass 3 - truncation(截断修复): 检测不完整的JSON,通过补括号或请求continuation修复。max_tokens截断在参数中间是常事,这个Pass让它不再是fatal error。

Pass 4 - storm(调用风暴抑制): 检测滑动窗口内完全相同的(tool, args)元组,抑制调用并注入一个反思轮。防止模型陷入"调用→失败→重试→相同调用"的无限死循环。

这四个Pass没有AI魔法,就是正则、状态机、去重哈希。但合在一起,它们让DeepSeek V4-Flash在工具调用场景下的可靠性和V4-Pro打平了。 用便宜模型的钱,买贵模型的稳定性。

支柱三:成本控制——这个"会计"比AI做得好

这是我最佩服的部分。

Flash优先策略:

Preset
模型
成本
flash
v4-flash
1×
auto(默认)
v4-flash,失败后升级v4-pro
1-3×
pro
v4-pro
~12×

默认走flash。所有辅助调用——摘要压缩、subagent派发、截断修复重试——硬编码flash + effort=high,不管你设了什么preset。

这个细节很重要。很多工具的"辅助调用"会偷偷用贵模型,因为工程师觉得"用同一个模型更方便"。Reasonix明确把辅助调用和主调用分开定价,让贵的钱只花在真正需要的地方。

故障信号自动升级:

系统会计算每轮的"flash在挣扎"信号:edit_file的SEARCH找不到、tool-call repair被触发。攒够3个信号,该轮剩余部分自动切到pro,同时在TUI头部亮一个红色的⇧ pro escalated标记。

关键是:不是静默升级。你永远知道什么时候在花pro的钱,知道是什么触发了升级。

轮末自动压缩:

每个工具结果超过3000 token的,在轮次结束时压缩到上限以下。模型在本轮内看到了完整结果,后续轮次只看到摘要,需要时可以read_file重读。

一次额外的文件读取,远比把12KB的工具结果拖过每一轮提示便宜。


和主流工具横向比一下,你就明白为什么它能8.1k Star

Reasonix
Claude Code
Cursor
Aider
后端
DeepSeek独占
Anthropic独占
多模型
任意
单任务成本
低
高
订阅+用量
不一
DeepSeek前缀缓存
专门工程化
不适用
不适用
偶发命中
终端原生
✓
✓
✗(IDE)
✓
内嵌成本仪表盘
✓
✗
✗
✗
持久化工作区会话
✓
部分
✗
✗

如果你每天写2-4小时代码,Reasonix的日均成本在$5-15,Claude Code在$15-40。

Session越长,差距越大——因为缓存命中率随session长度趋近100%,而Claude Code每轮都在重传。

但我要说清楚:它不适合所有人。

适合用Reasonix的:

  • • 终端就是你的IDE,不需要IDE插件集成

    • API账单是自掏腰包,每一分都要算清楚

    • 喜欢早上开session,晚上关掉,中间让Agent持续跑

    • 已经在用DeepSeek API,想找一个最懂这个后端的工具

不适合用Reasonix的:

  • • 你需要IDE深度集成(行内补全、右键菜单)→ 用Cursor

    • 你在做极其复杂的单次推理,对准确性要求极高 → 用Claude Code

    • 你需要完全免费/离线 → 用Aider + Ollama


顺便聊一下,它还做了哪些有意思的事

桌面版(Tauri): 多标签页,右侧面板展示Agent已读/已编辑的文件,底部实时显示成本、缓存命中率、token数据。你做AI编程,总得知道自己花了多少钱。

QQ通道: 把当前session延伸到QQ上,你在外面用手机也能继续和Agent交互。不是独立的新模式,就是当前session的远程I/O扩展。这个功能在国内场景挺实用的。

Web Dashboard: 实时展示缓存命中率、成本曲线、session摘要。这些在Claude Code和Cursor里都是黑盒。


它让我想清楚了一件事:AI编程的竞争维度变了

2024年,AI编程工具的竞争是:谁的模型更强?谁支持的语言更多?谁的补全更快?

2025-2026年,模型能力趋同了。DeepSeek V4-Flash在绝大多数编码任务上和Claude Opus的差距,已经不是一个数量级的差距那么大了。

当"智商"不再是差异化因素,成本就成了核心变量。

Reasonix的聪明之处在于:它没有试图做一个"更好的AI",它做了一个"更会省钱的会计"。它把系统prompt钉死、工具定义钉死、对话历史只追加不改写——所有这些设计决策的背后,都是同一个目标:让同一笔钱,买更多的有效工作时间。

这让我想起AWS的叙事转变——早年讲"我们有最多的服务",后来讲"我们帮你省钱"。Reasonix做的,就是AI编程工具领域的这个叙事转变。

开始的方式也很简单:

npx reasonix code

回车,粘贴DeepSeek API key。TUI向导引导你完成配置,持久化到~/.reasonix/config.json,然后就开始了。

没有YAML配置,没有环境变量,没有provider adapter需要折腾。

它赌的不是你一次性的好奇心,是你长期使用的经济理性。

8.1k Star,我猜你也不会再等了。


结尾互动

如果这篇文章对你有帮助,点击右下角"推荐",让更多人看到。

关注「飘雪思考」,每周更新职场干货与底层思维,和10万+读者一起成长。


💬 你怎么看? 你现在用哪个AI编程工具?每个月的API账单大概是多少?

欢迎在评论区留下你的想法,我都会看的。


📌 收藏这篇文章,下次选AI编程工具、算API预算的时候,直接翻出来用。


觉得有用就转发给朋友,说不定正好帮到正在被账单困扰的开发者。

相关学习资料