A DeepSeek-native AI coding agent for your terminal. Engineered around prefix-cache stability — leave it running.
31.7k stars | 语言:Go(单静态二进制)| 协议:MIT | 创建:2026-04 | 极度活跃(每日推送)
DeepSeek 原生的终端 AI coding agent harness。与多数 coding agent 的区别在于:整个架构围绕 provider 侧 prefix cache 保持温热 设计——system prompt 前缀字节级稳定、上下文裁剪感知 cache TTL、内置 cache 诊断——让长会话 token 成本保持低位。配置与插件驱动,DeepSeek 只是预置项,任意 OpenAI 兼容端点都是一条配置。
官网:reasonix.io · Discord:社区
核心差异化:Prefix-Cache Stability
DeepSeek 的 Context Caching on Disk 会把请求前缀缓存”数小时到数天”(命中约 1/4 价格)。Reasonix 把这一点当作一等架构约束:
- 字节级稳定的 system prompt 前缀:base prompt + 工具 schema + memory(REASONIX.md 等)组成”cache-stable prefix”,跨轮次绝不中途变更;新增信息走 “turn tail”(轮次尾部追加)而不是改前缀(见
control.Compose)。 - Per-vendor cache TTL 策略(
internal/config/cache_policy.go):DeepSeek/未知厂商默认 24h,DashScope/Anthropic 按文档 5 分钟。会话冷恢复(cold-resume)时按 TTL 决定要不要 prune——TTL 设太小会烧掉还温着的缓存(实测约 4x miss 成本),设太大只损失一次 prune 机会,故刻意保守。 - Cache 诊断(
internal/agent/cache_shape.go):PrefixShape对 system prompt / 归一化排序后的工具 schema / 前缀整体分别做 SHA256 快照,跨轮对比可解释”这次 cache 为什么 miss 了”;工具 schema 契约有文档供回归审查。 - 上下文维护感知缓存:启动注入小型稳定环境摘要;过期的工具输出先 snip/prune,再做 summary 压缩(Context Engine v2,
docs/SESSION_MEMORY_RETRIEVAL.md)。
架构要点(docs/SPEC.md 是契约,代码跟随)
- Config-driven:provider / agent / 工具 / 插件全部声明在
reasonix.toml,无硬编码模型;配置层级 flag > project > user > defaults。 - 多模型可组合:可选双模型(executor + planner)各跑独立 cache-stable session。
- 单静态二进制:
CGO_ENABLED=0,一条命令交叉编译 6 目标(darwin|linux|windows × amd64|arm64);TUI 用 charmbracelet bubbletea。 - 接口 + 注册表:
Provider/Tool都是接口,init()自注册;依赖方向无环(cli → agent/plugin/config → tool/provider)。 - 两级扩展:编译期内建(blank-import)+ 运行时外部插件(stdio JSON-RPC 子进程,MCP 兼容)。Extension Protocol v1 sidecar 还能拦截运行时事件、贡献 Provider 和结构化 UI、发版化插件包(NDJSON 契约 + Go SDK)。
- 内置工具:read/write/edit/multi_edit/move/delete_range/delete_symbol、bash(含后台 jobs)、ls/glob/grep、codeindex(tree-sitter)、webfetch、todo、notebook_edit、update_goal 等。
Skill 与 Memory:Claude Code 约定直接迁移
- Skill(
internal/skill/):Markdown playbook,两种执行模式——inline(正文折叠进当前轮作工具结果)和 subagent(隔离子循环,只回最终答案,标[🧬 subagent])。发现机制扫.reasonix/.agents/.agent/.claude多约定目录,Claude Code 的 skill 原样迁入。索引进稳定前缀的只有 name + description(上限 4000 字符),正文按需加载——与 agent-skill-loading 的两阶段机制同构。 - Memory:层级式常驻指令
REASONIX.md/AGENTS.md/CLAUDE.md(含.local变体、祖先目录、用户全局);remember工具存 frontmatter 事实文件 +MEMORY.md索引(type 分类 + scope 控制项目/全局),结构与 mempalace / Claude Code memory 同源。 - Goal FSM:
update_goal工具(continue/complete/blocked)是唯一的跨轮决策点;预算分级(simple 10 轮/200k、write 20 轮/400k、AutoResearch 40 轮/800k)+ 无进展熔断 + 独立 bounded evaluator(无工具无历史)裁决 complete 声明,评估失败则安全暂停而非静默继续。
分发形态(四路同一引擎)
| 路径 | 说明 |
|---|---|
| CLI / TUI | npm i -g reasonix(拉预编译二进制)或 macOS brew install esengine/reasonix/reasonix |
| Desktop | Wails v2(Go + webview);Windows 安装包经 SignPath.io / SignPath Foundation 免费证书签名 |
| VS Code 扩展 | SivanLiu.reasonix-agent,本地起 reasonix acp 后端(ACP 协议,见 openclaw-acp-protocol / agent-client-protocol) |
| 源码构建 | make build / make cross |
另有 Remote-SSH 模块(SFTP 文件层 + 端口转发 + 远端 reasonix serve bootstrap)、checkpoint/rewind、subagent profiles、capability diagnostics。
工程观察
- SPEC.md 自称”contract — code follows it. Change the contract first, then the code”,docs/ 下 TOOL_CONTRACT / TASK_CONTRACT / EXTENSION_PROTOCOL 等契约文档密度很高,测试覆盖以 e2e 命名大量存在(cachehit_e2e、compact_loop_e2e 等)。
- 0.x 是 TypeScript(ink),1.0+ 重写为 Go;旧史在
v1分支。 - 对照 agent-harness-anatomy 六组件:Filesystem/Bash 工具面齐全,Memory 有独立子系统,Context 管理是其招牌长板,Long Horizon 靠 Goal FSM + 预算熔断兜底。
- 对 OpenClaw system prompt 优化的直接借鉴:前缀字节稳定 + 增量走轮次尾部、工具 schema 排序归一后哈希做回归哨兵、按厂商 cache TTL 决定 prune 时机。
资源
- GitHub: https://github.com/esengine/DeepSeek-Reasonix
- 官网/下载: https://reasonix.io/
- npm: https://www.npmjs.com/package/reasonix
- 文档: Guide · Spec · Extensions
- VS Code 扩展源码: https://github.com/SivanCola/reasonix-vscode