esengine/DeepSeek-Reasonix
Reasonix 是一个面向终端的原生 DeepSeek AI 编程 agent,由 esengine 团队开发并开源(MIT 许可)。其核心设计围绕 prefix-cache 稳定性展开,通过缓存优先循环、工具调用修复和成本控制三大支柱,在长会话中保持低 token 成本。单日实测数据显示,4.35 亿输入 token 实现 99.82% 缓存命中率,成本约 12 美元,而无缓存时需约 61 美元。支持 code、chat、run 等 CLI 子命令,具备 MCP、skills、memory、hooks、网络搜索、语义索引等功能,并提供预发布版 Tauri 桌面客户端。
[!TIP] 缓存稳定性不是一个可以“开启”的功能;它是整个循环设计所围绕的不变量。 这正是 Reasonix 只支持 DeepSeek 的全部原因——每一层都针对字节稳定的 prefix-cache 机制进行了调优。
[!NOTE] 真实用户,单日(2026-05-01): 4.35 亿输入 token,99.82% 缓存命中率,约 12 美元,而同样的工作负载在
v4-flash上无缓存时需花费约 61 美元——详见案例研究。DeepSeek 提供可缓存的字节;支柱 1 中的四种机制则是 Reasonix 在长会话中保持这些字节可缓存的方法。
安装
需要 Node ≥ 22。适用于 macOS · Linux · Windows(PowerShell · Git Bash · Windows Terminal)。
如果你想在 PATH 中全局使用 reasonix 命令,请全局安装 Reasonix:
npm install -g reasonix
reasonix code my-project # 首次运行粘贴 DeepSeek API key;之后会持久化
或者不全局安装,直接运行一次:
cd my-project
npx reasonix code # 默认始终使用最新包
获取 DeepSeek API key → · 查看 reasonix code --help 了解所有参数。
如果你每天使用 Reasonix,全局安装是最简单的方式。如果只是想试用,使用 npx 即可。
| 命令 | 用途 |
|---|---|
reasonix code [dir] |
编程 agent。从这里开始。 |
reasonix chat |
纯聊天——没有文件系统或 shell 工具。 |
reasonix run "task" |
一次性执行,输出到 stdout。适合管道操作。 |
reasonix doctor |
健康检查:Node、API key、MCP 连接。 |
reasonix update |
升级 Reasonix 本身。 |
其他子命令(replay · diff · events · stats · index · mcp · prune-sessions)请查看 reasonix --help 和 CLI 参考。
桌面客户端(预发布版)
一个原生的 Tauri 客户端,适合希望在同一循环上使用 GUI 的用户。多标签页,右侧面板显示 agent 在此会话中读取或编辑过的文件,底部实时显示相同的成本/缓存/token 计量器。使用相同的 DeepSeek API key,相同的 ~/.reasonix 配置——桌面版自带 Node 运行时,无需单独的 npm install 步骤。
从 GitHub Releases 下载平台安装程序。桌面版以预发布版形式提供:循环和协议与 CLI 相同,但 UI 仍在打磨中,且安装程序尚未进行代码签名。
- macOS — 首次启动会触发 Gatekeeper。一次性修复:
xattr -dr com.apple.quarantine /Applications/Reasonix.app(或右键单击 → 打开 → 确认)。 - Windows — SmartScreen 会警告“未知发布者”。点击 更多信息 → 仍要运行。
- Linux —
.deb和.AppImage直接提供,无需额外步骤。
CLI 仍然是主要界面。CLI 中的任何功能也都可以在桌面版的 composer 中使用。
在不同的文件夹中工作。 Reasonix 将文件系统工具限定在启动目录内;传递 --dir 可以重新指定目标。出于设计考虑,不支持会话中途切换(内存路径会与过时的根目录纠缠不清)——请退出并重新启动。
npx reasonix code --dir /path/to/project
选择 chat 与 code。 code 是默认模式,也是唯一拥有文件系统/shell 工具和 SEARCH/REPLACE 审查的模式。chat 是更轻量、无工具的 shell——当你需要一个带有 MCP 但无磁盘访问权限的思考伙伴时,可以使用它。
| 你能得到什么 | code |
chat |
|---|---|---|
文件系统工具 + edit_file |
✓ | — |
SEARCH/REPLACE → /apply 审查 |
✓ | — |
| Shell 工具(需授权) | ✓ | — |
计划模式 · /todo · /skill new · /mcp add |
✓ | — |
记忆(remember / recall_memory) |
项目 + 全局 | 仅全局 |
配置文件中的 MCP 服务器 · 网络搜索 · ask_choice |
✓ | ✓ |
| 编程系统提示 | ✓ | 通用 |
| 会话范围 | 按目录 | 共享默认 |
编写你的第一个 skill。 没有远程注册中心——直接编写它们。编辑文件(description: 前置元数据 + 正文),然后使用 /skill list。添加 runAs: subagent 以生成一个隔离的 subagent 循环,而不是内联执行正文。
/skill new my-skill # <project>/.reasonix/skills/my-skill.md
/skill new my-skill --global # ~/.reasonix/skills 用于跨项目使用
配置
一个 JSON 文件位于 ~/.reasonix/config.json,外加每个项目的覆盖配置位于 <project>/.reasonix/。完整的双语参考——每个键、每个斜杠命令、skills/memory/hooks 的磁盘结构——都在这里:
| 主题 | 快速阅读 |
|---|---|
| MCP 服务器 | stdio · SSE · Streamable HTTP。一种规范格式同时适用于 config.json 和 --mcp。 |
| Skills | 模型可以调用的 Markdown 剧本。inline 或 subagent 模式。 |
| Memory | 固定在 prefix 中的用户私有知识。user / feedback / project / reference 类型。 |
| Hooks | 生命周期事件触发的 shell 命令。PreToolUse(授权)· PostToolUse · UserPromptSubmit · Stop。 |
| Permissions | 每个工作区的 shell 允许列表。精确前缀匹配。 |
| 网络搜索 | 默认使用 Mojeek;可通过 /search-engine 切换到自托管的 SearXNG。 |
| 语义索引 | reasonix index——本地 Ollama 或任何兼容 OpenAI 的 embedding 端点。 |
Reasonix 的与众不同之处
这个循环围绕三个支柱组织。每一个都解决了通用 agent 框架甚至没有意识到的问题——因为它们是为不同的缓存机制设计的。
点击查看完整的架构文档 → 支柱 1 — 缓存优先循环 · 支柱 2 — 工具调用修复 · 支柱 3 — 成本控制
能力
对比
| Reasonix | Claude Code | Cursor | Aider | |
|---|---|---|---|---|
| 后端 | DeepSeek | Anthropic | OpenAI / Anthropic | 任意(OpenRouter) |
| 许可证 | MIT | 闭源 | 闭源 | Apache 2 |
| 成本概况 | 每任务成本低 | 高端 | 订阅 + 使用量 | 因模型而异 |
| DeepSeek prefix-cache | 经过工程优化 | 不适用 | 不适用 | 附带支持 |
| 嵌入式 Web 仪表盘 | 是 | — | 不适用(IDE) | — |
| 可配置的网络搜索引擎 | /search-engine |
— | — | — |
| 每个工作区的持久化会话 | 是 | 部分 | 不适用 | — |
| 计划模式 · MCP · hooks · skills | 是 | 是 | 是 | 部分 |
| 网络搜索(Mojeek + SearXNG) | 是 | 是 | 是 | 是 |
| 开放的社区开发 | 是 | — | — | 是 |
有关实时的缓存命中率、成本和方法论,请参见 benchmarks/——这些数字会随着模型定价而变化,因此它们与测试框架放在一起,而不是放在 README 中。
文档
- 架构 — 三大支柱:缓存优先循环、工具调用修复、成本控制
- CLI 参考 — 每个 shell 子命令、每个斜杠命令、每个快捷键
- 基准测试 — τ-bench-lite 测试框架、转录、成本方法论
- 网站 — 入门指南、仪表盘模型、TUI 模型
- 贡献指南 — 注释策略、错误处理规则、库优先于手写
- 行为准则 · 安全策略
社区
[!NOTE] Reasonix 是开源并由社区开发的。下面的贡献者墙不是装饰——每个头像都是一个已合并的真实 PR。
范围明确的入门级任务——每个都包含背景、代码指引、验收标准和提示——位于 good first issue 标签下。选择任何开放的任务。
开放讨论——欢迎发表意见:
- #20 · CLI / TUI 设计 — 什么坏了,什么缺失了,你会改变什么?
- #21 · 仪表盘设计 — 针对提议的模型提出反馈
- #22 · 未来功能愿望清单 — 你希望 Reasonix 接下来构建什么?
已经在使用 Reasonix 并愿意帮助其他人发现它? 在 Show and tell 中发布博客文章、文章、截图、演讲或视频。该项目没有营销预算——社区口碑是新用户找到它的方式。持续的宣传者将获得下面的徽章,一旦授予,将显示在贡献者墙旁边:
在提交第一个 PR 之前:阅读 CONTRIBUTING.md——简短、严格的规则(注释、错误、库优先于手写)。tests/comment-policy.test.ts 强制执行注释规则;npm run verify 是推送前的检查。参与即表示你同意行为准则。安全问题 → SECURITY.md。
非目标
[!IMPORTANT] Reasonix 是有主见的。有些事情它刻意不做——列在这里,以便你可以为你的工作选择合适的工具。
- 多提供商灵活性。 有意只支持 DeepSeek。与一个后端耦合正是其特点,而非限制。
- IDE 集成。 终端优先。差异在
git diff中,文件树在ls中。仪表盘是辅助工具,而不是 Cursor 的替代品。 - 最难的排行榜推理。 Claude Opus 在某些 benchmark 上仍然胜出。DeepSeek 在编程方面具有竞争力;如果你的工作是“解决这个博士级证明”而不是“修复这个认证错误”,请从 Claude 开始。
- 离线/完全免费。 Reasonix 需要一个付费的 DeepSeek API key。对于离线或零成本运行,请参见 Aider + Ollama 或 Continue。