它到底是什么
一句话:Reasonix 是一个专为 DeepSeek 模型深度优化的终端 Coding Agent。
市面上的 Coding Agent——Claude Code、Codex、Cursor——都是"模型无关"的,换模型只改个 API Key。Reasonix 反其道而行:它从架构层面围绕 DeepSeek 的 Prefix Cache 机制设计,把上下文维护、工具输出剪枝、启动注入全部做成 Cache 友好型。
效果是什么?你在同一个会话里写代码越久,每次请求命中的缓存越多,Token 成本越低。而不像其他 Agent,上下文越长越贵。
为什么 Prefix Cache 这么重要
先搞清楚一个概念。DeepSeek 的 API 支持 Prefix Cache:如果你多次请求的前缀部分(系统提示 + 历史对话)相同,API 会跳过这部分的计算,直接复用之前的 KV Cache。这意味着:
- 首请求:全价,因为没有缓存
- 后续请求:前缀命中部分只收 1/10 的价格
- 关键条件:前缀必须完全一致,任何变动都会导致缓存失效
问题来了:大多数 Coding Agent 的上下文管理是"滚动压缩"——每隔一段时间把旧对话摘要一下,腾出空间。每一次压缩都会改变前缀,缓存全部失效。
Reasonix 的核心设计就是:尽量不动前缀,只追加新内容。
技术架构拆解
Cache 友好的上下文管理
Reasonix 的上下文管理分三层:
| 层级 | 内容 | Cache 行为 |
|---|---|---|
| 稳定层(Stable Layer) | 系统提示 + 环境摘要 + 工具 Schema | 永远不改,从头到尾保持一致 |
| 累积层(Accumulating Layer) | 工具调用结果、代码变更记录 | 只追加,不回改 |
| 压缩层(Compacting Layer) | 旧的对话历史 | 只在必要时压缩,且保留原始前缀 |
对比其他 Agent 的做法:
| Agent | 上下文策略 | Cache 影响 |
|---|---|---|
| Claude Code | 滚动摘要压缩 | 每次压缩后缓存失效,重新计费 |
| Cursor | 窗口截断 + 摘要 | 同上 |
| Reasonix | 前缀稳定 + 追加 + 剪枝旧输出 | 前缀始终命中缓存,成本递减 |
工具输出剪枝(Tool Result Snipping)
这是 Reasonix 最聪明的设计之一。Agent 调用工具后会产生大量输出(比如 cat 一个大文件、grep 搜索结果),这些输出在后续对话中会变成"过期数据"。
Reasonix 的做法:不是删除旧的工具输出,而是按比例剪枝。配置项 tool_result_snip_ratio = 0.6 表示:旧工具输出保留 60% 的内容,剩下的用摘要替代。这样既减少了 Token 数,又保持了前缀结构不变。
# reasonix.toml
[agent]
tool_result_snip_ratio = 0.6 # 旧工具输出保留比例
max_steps = 0 # 0 = 无限制
双模型协作(Two-Model Collaboration)
Reasonix 支持同时跑两个模型:一个 Executor(执行者)负责写代码,一个 Planner(规划者)负责读代码和规划。两个模型各自维护独立的 Cache 会话。
# reasonix.toml
default_model = "deepseek-flash" # 执行者:快且便宜
[agent]
planner_model = "deepseek-pro" # 规划者:强但贵
为什么这么设计?因为规划和执行的上下文差异很大。规划需要看全局,执行只需要看当前任务。分开后,两个会话的前缀各自稳定,Cache 命中率都比混在一起高。
Go 重写,单二进制分发
Reasonix 1.0 是从 TypeScript 完全重写为 Go 的。收益:
- 单文件分发 —
CGO_ENABLED=0编译,零依赖,跨平台交叉编译一行命令 - 启动快 — 从 Node.js 的 ~800ms 降到 Go 的 ~50ms
- 内存低 — 常驻内存从 ~120MB 降到 ~15MB
怎么装
# npm(任何系统,拉预编译二进制)
npm i -g reasonix
# macOS Homebrew
brew install esengine/reasonix/reasonix
# 首次配置
reasonix setup # 交互式向导 → 生成 ./reasonix.toml
export DEEPSEEK_API_KEY=***
# 开始用
reasonix run "implement the TODOs in main.go"
reasonix run --model deepseek-pro "review this module for security issues"
# 管道模式
echo "explain this code" | reasonix run
和同类方案对比
| 方案 | 定位 | Reasonix 的区别 |
|---|---|---|
| Claude Code | Anthropic 亲儿子,Claude 模型深度集成 | Reasonix 是 DeepSeek 的"亲儿子",围绕 Prefix Cache 优化 |
| Aider | 通用 Git-aware Coding Agent | Aider 不做 Cache 优化,上下文管理是通用策略 |
| Cursor / Windsurf | IDE 集成,GUI 为主 | Reasonix 是纯终端 TUI,面向 "活在终端里" 的开发者 |
| OpenCode | 开源通用终端 Agent | OpenCode 模型无关;Reasonix 深度绑定 DeepSeek 的 API 特性 |
| Continue / Cline | VS Code 插件 | 完全不同的使用场景,Reasonix 不做 IDE 集成 |
MCP 插件系统
Reasonix 支持 MCP(Model Context Protocol)插件,通过 stdio JSON-RPC 通信:
# reasonix.toml
[[plugins]]
name = "github"
command = "reasonix-plugin-github"
call_timeout_seconds = 600
# 每个工具可以单独设置超时
tool_timeout_seconds = { "generate_video" = 1800 }
内置工具在编译时自注册,外部工具通过插件加载。权限系统支持 ask/allow/deny 三种模式,可以精确控制 Agent 能做什么。
权限与沙箱
Reasonix 有一套完整的权限系统:
# reasonix.toml
[permissions]
mode = "ask" # 无匹配规则时的默认行为
deny = ["Bash(rm -rf*)", "Bash(git push*)"] # 永远禁止
allow = ["Bash(go test:*)"] # 永远允许
[sandbox]
workspace_root = "" # 写操作限制在当前目录
allow_write = ["/tmp"] # 额外允许写的目录
forbid_read = ["${HOME}/.ssh"] # 禁止读取的目录
还有 Checkpoints 机制:每次编辑前自动快照,按 Esc-Esc 或 /rewind 可以回退。比 Git stash 轻量,比 Undo 可靠。
实际体验的坑
- 只能用 DeepSeek — 虽然支持自定义 OpenAI 兼容端点,但 Prefix Cache 优化只有 DeepSeek API 支持,用其他模型等于白装
- 1.0 是全新 Go 重写 — 老用户从 0.x TypeScript 版迁移需要看迁移指南,部分配置项改了名字
- TUI 界面比较朴素 — 用 Ink(React for CLI)做的终端 UI,比 Claude Code 的体验差一截
- 中文文档质量参差 — 官方有中文 README,但 Guide 和 Spec 主要是英文,中文翻译有些地方机翻痕迹明显
- Star 数增长很快但社区还年轻 — 26K Star 主要是最近几个月冲上来的,核心贡献者不到 10 人
- 不支持 Plan Mode 的自动触发 — 需要手动进入 Plan Mode,不像 Claude Code 那样自动判断什么时候该规划
谁在做
Reasonix 由 esengine 团队开发,核心维护者是 yuhuahui。项目 2026 年 4 月发布 1.0 Go 重写版,之前是 0.x 的 TypeScript 版本。
项目采用 MIT 协议,社区通过 Discord 和 GitHub Discussions 交流。Windows 构建有 SignPath Foundation 提供的代码签名。
总结
Reasonix 的核心价值不是"又一个 Coding Agent",而是第一个真正围绕 DeepSeek API 特性设计的 Agent。Prefix Cache 不是新概念,但之前没有 Agent 把它当成一等公民来优化。
如果你主要用 DeepSeek 写代码,而且经常有长时间的开发会话(超过 30 分钟),Reasonix 的 Cache 优化能实实在在地省钱。如果你用 Claude 或 GPT,这个工具对你没什么意义。
项目地址:github.com/esengine/DeepSeek-Reasonix
官方文档:esengine.github.io/DeepSeek-Reasonix
Discord 社区:discord.gg/XF78rEME2D