
我替你算了一笔账,看完你可能会心疼
上个月我认识一个自由开发者,用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优先策略:
默认走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
| 低 | ||||
| 专门工程化 | ||||
如果你每天写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预算的时候,直接翻出来用。
觉得有用就转发给朋友,说不定正好帮到正在被账单困扰的开发者。
夜雨聆风