Reasonix — DeepSeek-нативный coding-агент для терминала, заточенный под префиксный кэш
📂 Исходный код на GitHubDeepSeek-нативный AI coding-агент для терминала. Конфиг- и плагин-управляемый харнесс на одном статичном Go-бинарнике, спроектированный вокруг стабильности префиксного кэша DeepSeek, чтобы стоимость токенов оставалась низкой на длинных сессиях.
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/ с реальными показателями кэш-хитов.