Reasonix

DeepSeek 専用 · プレフィックスキャッシュ前提 · ターミナルファーストのコーディングエージェント(npm: reasonix)

1 — 概要

Reasonix(旧称 DeepSeek-Reasonix)は、DeepSeek API だけをバックエンドに据えたターミナル向けコーディングエージェント。多プロバイダ対応ではなく、DeepSeek のプレフィックスキャッシュ(前ターンとバイト単位で一致した先頭部分は課金が大幅に安い)を前提にループ全体を設計している。

製品の北極星は「動かしっぱなしでも安いコーディングエージェント」。Ink ベースの TUI、組み込み Web ダッシュボード、Tauri デスクトップ(プレリリース)、MCP・スキル・メモリ・フックなど、長時間セッションを支える周辺機能が同梱される。

MITライセンス
Node 22+実行要件
99.82%実測キャッシュヒット例
4設計の柱
キャッシュは機能フラグではない。 タイムスタンプ注入やログの並べ替えでプレフィックスが壊れる一般的なエージェントループとは異なり、Reasonix はコンテキストを「不変プレフィックス」「追記のみログ」「揮発スクラッチ」の3領域に分割し、キャッシュヒット率を TUI のトップバーで可視化する。
2 — インストールとエントリポイント

DeepSeek API キーが必要。platform.deepseek.com で取得し、初回起動時に貼り付けると ~/.reasonix/config.json に保存される。

# グローバルインストール
npm install -g reasonix
reasonix code my-project

# 一度だけ試す
npx reasonix code

# 短いエイリアス(同じ CLI)
npm install -g dsnix
dsnix code

サブコマンドなしの reasonix はカレントディレクトリで code を起動する。ファイルシステム・シェル・SEARCH/REPLACE 編集は code モードが担い、ツールなしの軽量チャットは chat。

コマンド用途
reasonix / reasonix code [dir]コーディングエージェント(デフォルト)
reasonix chatツールなしの対話(MCP は接続可)
reasonix run "task"ワンショット実行(パイプ向け)
reasonix doctorNode・API キー・MCP の健全性チェック
reasonix updateパッケージ自身のアップグレード
3 — 設計の4本柱

汎用フレームワーク向けの機能は意図的に削ぎ落としている。各柱は docs/ARCHITECTURE.md の一次情報に対応する。

Pillar 1
Cache-First Loop
不変プレフィックス・追記ログ・揮発スクラッチの3分割。並列ツール dispatch(parallelSafe)で読み取り系を束ねつつ、書き込み順序は保持。
Pillar 2
Tool-Call Repair
flatten · scavenge · truncation · storm の4パス。推論ブロック内の JSON 取りこぼしや引数欠落を修復。
Pillar 3
Cost Control
flash-first プリセット、ターン末の結果圧縮、/model による明示的ティア切替、<<<NEEDS_PRO>>> による自己申告エスカレーション。
周辺
観測可能性と修復
JSONL イベントログ、トランスクリプト replay/diff、ダッシュボード API、テレメトリでキャッシュヒット率とコストをセッション単位で追跡。

コンテキストの3領域

flowchart TB
  subgraph PREFIX["IMMUTABLE PREFIX"]
    SYS["system + tool_specs + few_shots"]
  end
  subgraph LOG["APPEND-ONLY LOG"]
    TURNS["assistant / tool / user turns..."]
  end
  subgraph SCRATCH["VOLATILE SCRATCH"]
    R1["R1 thought · transient plan"]
  end
  PREFIX --> LOG
  LOG --> SCRATCH
  SCRATCH -. distill via repair .-> LOG

Repair パイプライン

1
flatten
深いスキーマを dot 記法に平坦化し、dispatch 時に再ネスト。
2
scavenge
reasoning_content から取りこぼした tool call を回収。
3
truncation
途中で切れた JSON を閉じるか、継続 completion を要求。
4
storm
同一 (tool, args) の連打を抑止し、反射ターンを注入。

コスト制御のプリセット

プリセットモデル相対コスト備考
flashv4-flash1×既定。補助呼び出しも flash に固定
autoflash → 難ターンで pro1–3×バランス型
prov4-pro~12×/model pro で明示切替
4 — モジュール構成
flowchart LR
  CLI["cli/ · Ink TUI"] --> LOOP["loop.ts"]
  LOOP --> CLIENT["client.ts"]
  LOOP --> REPAIR["repair/"]
  LOOP --> TOOLS["tools/"]
  TOOLS --> MCP["mcp/"]
  LOOP --> CORE["core/ events"]
  SERVER["server/ · dashboard API"] --> LOOP
  MEMORY["memory/ · skills"] --> LOOP
パス役割
src/loop.tsキャッシュファーストのメインループ(Pillar 1 + 3)
src/repair/ツール呼び出し修復パイプライン(Pillar 2)
src/tools/filesystem · shell · web · plan · subagent · memory など
src/mcp/MCP クライアント(stdio / SSE / Streamable HTTP)
src/core/イベントログ・純粋 reducer・eventize
src/code/SEARCH/REPLACE 編集ブロックと apply ゲート
src/server/ダッシュボード用 HTTP API
src/cli/ui/Ink TUI、スラッシュコマンド、カードストリーム
dashboard/ · desktop/Web SPA と Tauri ネイティブ UI(CLI と同一ループ)
ポート/アダプタ層: src/ports/ に ModelClient・ToolHost・EventSink などの境界があり、src/adapters/ が JSONL シンク等の具体実装を提供。テストでは in-process fake MCP が使われる。
5 — CLI と実行モード
能力codechat
ファイルシステム + edit_fileありなし
SEARCH/REPLACE → /apply レビューありなし
シェル(承認ゲート付き)ありなし
Plan · /todo · スキル作成ありなし
MCP · Web 検索 · ask_choiceありあり
メモリスコープproject + globalglobal のみ

作業ディレクトリは起動時のカレント(または --dir)に固定される。セッション途中のルート切替は意図的に未対応(メモリパスと整合のため)。

編集フロー(code モード)

# アシスタントが SEARCH/REPLACE ブロックを提案
# ディスクへ書き込むのはユーザーが /apply を承認したときだけ
/apply          # 提案中の編集を適用
/undo           # 直近の適用を巻き戻し(edit history)

リモートチャネルとして QQ / Telegram から既存セッションにメッセージを流し込むこともできる(デスクトップまたは CLI 上の /qq connect 等)。

6 — 設定と拡張

グローバル設定は ~/.reasonix/config.json。プロジェクト単位の上書きは <project>/.reasonix/ 配下。詳細キーは公式 Configuration Guide を参照。

トピック要点
MCPstdio / SSE / Streamable HTTP。設定と --mcp で同一スペック
SkillsMarkdown プレイブック。inline または subagent。Claude 形式 SKILL.md も読み込み
Memoryuser / feedback / project / reference をプレフィックスへピン留め
HooksPreToolUse · PostToolUse · UserPromptSubmit · Stop
Permissionsワークスペースごとのシェル許可リスト(前方一致)
Semantic indexreasonix index — Ollama または OpenAI 互換 embedding
Web searchBing 既定。/search-engine で Baidu・SearXNG・各種 API に切替
# スキル作成(ネイティブ形式)
/skill new my-skill              # <project>/.reasonix/skills/my-skill.md
/skill new my-skill --global     # ~/.reasonix/skills/

# 開発者向け(リポジトリルート)
npm run dev          # tsx src/cli/index.ts
npm run verify       # build + lint + typecheck + test
7 — 比較と非目標
ReasonixClaude CodeCursorAider
バックエンドDeepSeekAnthropicOpenAI / Anthropic任意(OpenRouter 等)
ライセンスMITクローズドクローズドApache 2
プレフィックスキャッシュ設計中核該当なし該当なし副次的
組み込み Web ダッシュボードあり—IDE 内—
Plan · MCP · hooks · skillsありありあり一部

意図的な非目標

  • マルチプロバイダ — DeepSeek 専用が設計上の前提
  • IDE 統合 — 差分は git diff、ツリーはターミナル前提
  • 最難関ベンチ専用の推論 — コーディング向けコスト曲線を優先
  • 完全オフライン / 無料運用 — 有料 DeepSeek API キーが必要