大多数 AI 编码 Agent 有个隐藏成本陷阱:会话越长越贵。每一轮都把完整历史重新发一遍,token 账单随时间线性甚至超线性增长。
DeepSeek-Reasonix(GitHub: esengine/DeepSeek-Reasonix,MIT 协议)选了一条反直觉的路线,项目口号直接写在标题上——Engineered around prefix-cache stability — leave it running.(围绕前缀缓存稳定性设计,让它持续运行)。它的目标是让每一轮变得更便宜,而不是更贵。
Step 1:先理解它为什么「只支持 DeepSeek」
项目在文档里说得很坦率:缓存稳定不是一个可以开关的功能,而是整个循环围绕它设计的不变量。这就是它坚持 DeepSeek-only 的原因——每一层都针对 DeepSeek 的字节稳定前缀缓存机制调优,而不是维护一套泛化兼容层。
| 设计取舍 | Reasonix 的选择 | 换来的好处 |
|---|---|---|
| 后端策略 | DeepSeek 深度优化(也支持任意 OpenAI 兼容端点) | 缓存机制可被逐层利用 |
| 界面形态 | 终端优先:diff 交给 git diff,文件树交给 ls | 不重复造 IDE,终端就是工作面板 |
| 历史管理 | append-only,字节完全一致 | 触发缓存命中,成本降到约 1/5 |
Step 2:四条「缓存保命」机制
缓存失效通常不是玄学,而是有明确诱因。Reasonix 的四条机制逐一对症:
| 机制 | 做法 | 防住的击穿场景 |
|---|---|---|
| 启动期注入稳定环境摘要 | 环境 / 工具 schema / 项目指纹一次性固化进前缀 | system prefix 每次微调导致全量失效 |
| 过期工具输出剪枝 | 摘要压缩前先 snip / prune 掉噪音 | 误把大文件内容塞进 prompt,成本爆炸 |
| 自动压缩阈值 | 默认到达模型上下文 80% 时启动(可配 65-85%) | 压缩时机随机,前缀频繁重排 |
| 易变状态隔离 | 时间戳等波动值绝不进稳定前缀 | 一个时间戳让整段前缀作废 |
上下文处理管线
startup 注入(稳定前缀)
↓
snip ── 剪掉过期工具输出
↓
prune ── 去噪
↓
summarize ── 到 80% 阈值才压缩
关键不变量:
每次请求重放的前缀,字节逐一相同
模型只需计算「新增的那部分」
第四条最容易被自己写的 Agent 踩中。很多人习惯在 system prompt 里塞「当前时间:2026-08-07 09:15:32」,看起来无害,实际上每次调用都让整个前缀缓存归零。如果你自己在做 Agent,请立刻检查 system prompt 里有没有这类波动值。
Step 3:真实成本对比
项目 README 中给出了一个真实用户的单日数据(2026-05-01):
单日实测(官方 README 记录的案例)
输入 token 量 4.35 亿(435M)
缓存命中率 99.82%
实际花费 约 12 美元
无缓存等价成本 约 61 美元(v4-flash 口径)
→ 约五分之一
项目文档另称:长会话缓存命中率可达 90% 以上,
输入 token 成本约为冷启动等价成本的 1/5。
这几个数字是项目方与用户提供的,不是第三方独立测评,且与具体模型定价、任务形态强相关。把它当作「架构方向的证据」而非「你一定能复现的收益」。真要评估,建议自己跑一周对比:同样的任务,用原有工具和 Reasonix 各做一遍,看账单。
Step 4:安装与第一次运行
# 进入你的项目目录
cd my-project
# 推荐方式:npx(总是拉最新版,无需预装)
npx reasonix code
# 首次运行时粘贴 DeepSeek API Key,之后自动持久化
# 需要 Node >= 22
# 已在 macOS / Linux / Windows(PowerShell、Git Bash、Windows Terminal)测试
# 如果打算天天用,想把 reasonix 放进 PATH:
reasonix update # 会替你执行 npm install -g
# 其他安装方式
npm i -g reasonix
brew install esengine/reasonix/reasonix # macOS
常用子命令速查:
| 命令 | 什么时候用 |
|---|---|
| reasonix code [dir] | 以项目为根的编码 Agent,从这里开始 |
| reasonix chat | 纯聊天,不带文件系统工具,历史持久化 |
| reasonix run "task" | 一次性任务,结果流式输出到 stdout,适合管道 |
| reasonix doctor | 环境体检:Node 版本、API Key、MCP 接线 |
| reasonix update | 升级自身 |
Step 5:四端形态与 MCP 接入
| 形态 | 说明 |
|---|---|
| CLI / TUI | 全屏终端界面,提供 Plan、Ask、Auto、YOLO 四种模式 |
| 桌面 App | 可视化会话管理、MCP 状态、检查点、工具审批、IM 机器人接入(飞书 / Lark / 微信) |
| 浏览器 UI | reasonix serve 启动本地前端 127.0.0.1:8787,可选 token 或密码鉴权用于远程共享 |
| VS Code 扩展 | 通过 reasonix acp(Agent Client Protocol)连接,不内置 CLI |
MCP 与插件
插件在 reasonix.toml 中声明
传输方式:stdio / SSE / Streamable HTTP
外部工具合并进统一注册表(带前缀区分)
MCP prompts → 变成斜杠命令
MCP resources → 用 @server:uri 引用
兼容 .mcp.json(Claude Code 的 mcpServers schema)
内置子代理:explore / research / review / security-review
沙箱:文件写入边界由 OS 级后端强制
macOS 用 Seatbelt,Linux 用 bubblewrap
并解析符号链接以防路径穿越逃逸
联网搜索:默认 Mojeek(零配置)
/search-engine searxng http://localhost:8080 # 切换到自建 SearXNG
(写入 ~/.reasonix/config.json,重启后仍生效)
MCP 插件是以子进程方式执行的。官方实现注意事项里明确提醒:要确保宿主环境有干净的 PATH、正确的信号处理和资源限制,尤其在跑不可信插件代码时。YOLO 模式和无人值守自动化上线前,务必先审一遍工具执行范围与审批流程。
Step 6:什么情况下别用它
✅ 适合
已经在用 DeepSeek 或 OpenAI 兼容端点
长会话、多步骤的编码与重构任务
成本敏感、需要把 token 账单压下来
想把 Agent 嵌进 CI / 本地开发循环 / IM 机器人
❌ 先别急
需要开箱即用的多云大模型抽象
(Anthropic、Google、带私有扩展的 Azure OpenAI 需自写 provider 插件)
需要成熟的企业级 UI 与审计日志
(桌面端相对年轻,生产环境建议以 CLI 为主)
期待即插即用的 SaaS 连接器
(MCP 兼容,但工具接入需要显式包装)
缺少安全的密钥管理设施
(API Key 走环境变量或 Reasonix 主目录的 .env,无内存加密说明)
一句话总结:Reasonix 最值钱的不是某个功能,而是它把「缓存稳定」当成了架构不变量而非优化选项。当你的 Agent 循环设计成每轮只计算新增部分时,长会话就从成本负担变成了成本优势。版本与定价请以 GitHub 仓库及 DeepSeek 官方最新说明为准。