Reasonix — DeepSeek-нативный coding-агент для терминала, заточенный под префиксный кэш

· 2 мин чтения
ai-coding cli terminal prompt-caching deepseek
📂 Исходный код на GitHub

DeepSeek-нативный AI coding-агент для терминала. Конфиг- и плагин-управляемый харнесс на одном статичном Go-бинарнике, спроектированный вокруг стабильности префиксного кэша DeepSeek, чтобы стоимость токенов оставалась низкой на длинных сессиях.

Reasonix — DeepSeek-нативный coding-агент для терминала, заточенный под префиксный кэш

Reasonix — это open-source AI coding-агент для терминала, который отличается от большинства аналогов одной главной идеей: он спроектирован вокруг префиксного кэша модели DeepSeek. Это не «ещё один агент с поддержкой DeepSeek», а инструмент, где кэш-стабильность — не включаемая опция, а инвариант, вокруг которого построен весь цикл работы. Проект живёт на GitHub (32k звёзд, MIT-лицензия), развивается сообществом, а в основе лежит один статичный Go-бинарник.

Что такое Reasonix

Reasonix позиционируется как DeepSeek-нативный AI coding-агент для терминала. Ключевые характеристики из README:

  • Конфиг-управляемость. Провайдеры, сам агент, включённые инструменты и плагины описываются в файле reasonix.toml. В коде нет захардкоженных моделей.
  • Мультимодельность. DeepSeek поставляется как пресет, но любой OpenAI-совместимый эндпоинт добавляется конфигом, а не новой порцией кода. При желании можно запустить две модели вместе (executor + planner) в раздельных кэш-стабильных сессиях.
  • Плагин-управляемость. MCP-серверы добавляют инструменты, промпты и ресурсы; «сайдкары» по Extension Protocol v1 могут перехватывать события рантайма, добавлять свои Provider'ы и даже структурированный UI.
  • Кэш-осознанное поддержание контекста. При старте сессии инжектится небольшой стабильный снимок окружения, устаревшие выводы инструментов вырезаются/подрезаются перед компактификацией саммари.
  • Нулевое трение распространения. CGO_ENABLED=0 — один бинарник без зависимостей; кросс-компиляция под шесть таргетов одной командой. Единственная зависимость — парсер TOML.

Важный нюанс истории проекта: активная разработка ведётся в ветке main-v2 — это переписанный на Go вариант. Прежняя TypeScript-линия (Reasonix 0.x) переведена в режим поддержки и получает только исправления багов. Ниже всё описывает именно актуальный Go-релиз.

Главная идея: стабильный префиксный кэш

Основной сценарий DeepSeek — префиксный кэш: если начало запроса (общий префикс) не меняется между вызовами, DeepSeek переиспользует закэшированные токены по заметно более низкой цене. Большинство агентских фреймворков проектируются под другую механику кэша, поэтому у них префикс постоянно «дёргается», и экономия не работает. Reasonix же подходит к этому системно:

  • при старте сессии в префикс попадает небольшой стабильный снимок окружения, который не «мусорит» контекст;
  • устаревший вывод инструментов вырезается ещё до компактификации саммари, чтобы не раздувать префикс;
  • контракт схемы встроенных инструментов задокументирован — его можно ревьюить и не менять нечаянно, сохраняя байт-стабильность.

В README приведён пример из реальной эксплуатации: за один день один пользователь потратил 435M входных токенов при 99.82% cache hit — примерно $12 вместо ~$61, которые тот же объём работы стоил бы без кэша на v4-flash. Цифры живут в отдельном каталоге benchmarks/, потому что зависят от текущих цен на модели.

Установка

У Reasonix четыре пути установки, и все они используют один и тот же локальный движок.

Путь A — CLI / TUI (основной):

npm i -g reasonix                    # любой ОС; тянет готовый нативный бинарник
brew install esengine/reasonix/reasonix   # macOS

Готовые архивы (darwin|linux|windows × amd64|arm64) и SHA256SUMS лежат в каждом GitHub-релизе.

Путь B — десктопное приложение. Нативный Tauri-клиент с официальной страницы загрузки. Мультитаб, правая панель показывает файлы, которые агент читал или правил за сессию, внизу — счётчики стоимости, кэша и токенов. Использует тот же API-ключ и ту же конфигурацию ~/.reasonix, Node.js встроен в сам бандл. Пока статус — prerelease: движок и протокол те же, но UI шлифуется, а установщики ещё не подписаны.

Путь C — расширение VS Code. Сначала ставится CLI, расширение его не бандлит: оно поднимает локальный бэкенд reasonix acp и добавляет нативный чат, редакторный контекст, подтверждения вызовов инструментов и выбор модели. Для VS Code — Visual Studio Marketplace, для VSCodium/Eclipse Theia — Open VSX Registry (ID SivanLiu.reasonix-agent, исходники и гайд — в SivanCola/reasonix-vscode).

Путь D — сборка из исходников:

git clone https://github.com/esengine/DeepSeek-Reasonix.git
cd DeepSeek-Reasonix
make build      # -> bin/reasonix(.exe)
make cross      # -> dist/ (darwin|linux|windows x amd64|arm64)

Быстрый старт

Три команды для старта в CLI:

reasonix setup                      # настроить провайдера и модель
reasonix                            # интерактивная сессия
reasonix run "implement the TODOs in main.go"

В интерактивной сессии /init попросит Reasonix создать проектные инструкции. Если нужно работать не в текущей директории — reasonix code --dir /path/to/project. Mid-session переключение папки не поддерживается намеренно: пути памяти запутались бы со старыми корнями, поэтому проще перезапустить.

Режим code — основной, это единственный режим с доступом к файловой системе, shell и ревью правок в формате SEARCH/REPLACE (на диск ничего не пишется, пока не подтвердишь через /apply). Режим chat — лёгкая оболочка без инструментов для «собеседника» с подключённым MCP, но без доступа к диску. Память (remember / recall_memory) в code работает на уровне проекта + глобала, в chat — только глобально.

Возможности и конфигурация

Конфигурация — один JSON-файл ~/.reasonix/config.json плюс переопределения на проект в <project>/.reasonix/. Полный справочник всех ключей, слэш-команд и формата скиллов/памяти/хуков живёт в Configuration Guide (есть и на русском в сообществе, и на китайском).

Что настраивается из коробки:

  • MCP-серверы — stdio, SSE, Streamable HTTP; один формат описания работает и для config.json, и для флага --mcp.
  • Скиллы — Markdown-плейбуки, которые модель может вызывать, в режиме inline или subagent. Свой скилл создаётся командой /skill new (проектный или --global), обновляется через /skill list. Работают и Claude-форматные скиллы из <project>/.claude/skills/ и ~/.claude/skills/, так что тулинг, генерирующий их, подключается без адаптеров. Флаг runAs: subagent запускает скилл в изолированном цикле субагента.
  • Память — пользовательские знания, «вшитые» прямо в префикс; типы user / feedback / project / reference.
  • Хуки — shell-команды на события жизненного цикла: PreToolUse (гейтинг), PostToolUse, UserPromptSubmit, Stop.
  • Права — per-workspace allowlist для shell-команд, точное совпадение префикса.
  • Веб-поиск — Bing по умолчанию; переключается через /search-engine на Baidu AI Search, self-hosted SearXNG, Metaso, Tavily, Perplexity, Exa, Brave или Ollama.
  • Семантический индексreasonix index: локальный Ollama или любой OpenAI-совместимый эмбеддинг-эндпоинт.

Ещё из CLI-инструментария: reasonix doctor (проверка Node, API-ключа и MCP-связки), reasonix update, авто-чекпоинты и rewind, регулятор усилий /effort, переигрывание транскриптов (replay), просмотр событий (events) и статистики (stats), пристыковка удалённого QQ-канала (/qq connect), через который можно продолжать сессию с телефона.

Экосистема и расширяемость

Заметная часть дизайна — расширяемость за пределы базовых инструментов:

  • MCP приносит инструменты, промпты и ресурсы.
  • Extension Protocol v1 — «сайдкары», которые перехватывают события рантайма, добавляют Provider'ы и структурированный UI.
  • Плагинные пакеты — версионируемые пакеты с манифестом v1.
  • Go SDK и стартер — для разработки собственных расширений на Go.

Один и тот же движок работает и в CLI/TUI, и в десктоп-приложении, и в VS Code-расширении — это обещает согласованное поведение независимо от того, из какого интерфейса вы запускаете агента.

Сравнение с альтернативами

В README приведена сравнительная таблица с популярными агентами:

Reasonix Claude Code Cursor Aider
Бэкенд DeepSeek Anthropic OpenAI / Anthropic любой (OpenRouter)
Лицензия MIT закрытая закрытая Apache 2
Стоимость низкая за задачу премиум подписка + использование варьируется
Префиксный кэш DeepSeek спроектирован неприменимо неприменимо случайный
Встроенный веб-дашборд есть n/a (IDE)
Настраиваемый веб-поиск /search-engine
Постоянные сессии на воркспейс есть частично n/a
Plan mode · MCP · hooks · skills есть есть есть частично

Осознанные ограничения

Разработчики прямо заявляют, чего Reasonix намеренно не делает, чтобы можно было выбрать правильный инструмент под задачу:

  • Мультипровайдерность. DeepSeek-only — это осознанный выбор: завязка на один бэкенд и есть фича, а не недостаток, именно она позволяет инвариантно поддерживать кэш.
  • IDE-интеграция. Терминал-first. Дифф — в git diff, дерево файлов — в ls. Дашборд — компаньон, а не замена Cursor.
  • Самые сложные задачи «на доску лидера». На некоторых бенчмарках Claude Opus всё ещё выигрывает; DeepSeek силён в кодинге, но если задача «решить PhD-доказательство», а не «починить баг с авторизацией», лучше начать с Claude.
  • Air-gapped / бесплатный режим. Нужен платный DeepSeek API-ключ; для офлайн-или-бесплатных сценариев рекомендуют Aider + Ollama или Continue.

Итог

Reasonix — хороший пример, когда агент строят вокруг конкретной экономической механики модели, а не вокруг «фич». Если вы плотно работаете с DeepSeek и вас беспокоит стоимость длинных агентных сессий, подход Reasonix — с кэш-стабильным префиксом, снайпингом устаревших выводов и документированным контрактом инструментов — стоит изучить. Полезные ссылки: репозиторий, сайт, документация по архитектуре и миграции с 0.x, каталог benchmarks/ с реальными показателями кэш-хитов.

Источник: https://github.com/esengine/DeepSeek-Reasonix