Загрузка...

Reasonix через RouterAI: coding-агент на DeepSeek V4.1 Flash, GLM 5.3 и Claude

Reasonix

Reasonix — открытый coding-агент для терминала с десктопным приложением и интеграцией с редакторами. Исходники лежат в репозитории esengine/DeepSeek-Reasonix, лицензия MIT, текущая версия CLI — 2.57.0. Устроен он как один Go-бинарник: движок, терминальный интерфейс, настольное приложение и ACP-сервер для редакторов работают поверх одной и той же локальной сессии.

Агент читает и правит файлы, запускает команды, ведёт план задачи, поддерживает скиллы, MCP-серверы и контрольные точки для отката изменений. Отдельно он считает расход: после каждого запроса показывает, сколько токенов ушло, сколько из них попало в кеш и во сколько это обошлось.

Reasonix ставит DeepSeek пресетом по умолчанию, но провайдеры задаются в конфиге: глобальный ~/.reasonix/config.toml, проектный reasonix.toml в корне репозитория. Любой OpenAI-совместимый сервис — это одна запись в конфиге, поэтому RouterAI подключается без правки кода. В одном агенте получаете DeepSeek, GLM и Claude из каталога моделей, работу из России без VPN и оплату в рублях.

Требования

  • macOS, Linux или Windows (PowerShell, Git Bash или Windows Terminal)
  • Node.js не нужен: npm i -g reasonix ставит готовый бинарник под вашу платформу
  • API-ключ из личного кабинета
  • Go 1.26+ — только если собираете из исходников

Установка

CLI и TUI:

npm i -g reasonix
reasonix --version

На macOS тот же бинарник ставится через Homebrew:

brew install esengine/reasonix/reasonix

Готовые архивы под darwin|linux|windows × amd64|arm64 и SHA256SUMS лежат на странице релизов.

Настольное приложение Reasonix Studio скачивается с официальной страницы: .dmg для macOS, .exe или portable .zip для Windows, .deb, .rpm и .AppImage для Linux. Внутри тот же движок и тот же домашний каталог ~/.reasonix, отдельная установка npm для него не требуется.

Расширение для VS Code ставится после CLI — оно запускает локальный reasonix acp и не содержит собственного бинарника:

Подключение к RouterAI

С версии 1.8.1 у Reasonix один домашний каталог: ~/.reasonix на macOS и Linux, %APPDATA%\reasonix на Windows. Переопределяется переменной REASONIX_HOME. Внутри:

  • config.toml — глобальный конфиг (CLI и Studio читают его оба);
  • .env — ключи провайдеров;
  • skills/, commands/ и остальные пользовательские данные.

Проектный конфиг называется reasonix.toml и кладётся в корень проекта. Приоритет такой: флаги командной строки, затем ./reasonix.toml, затем глобальный config.toml, затем встроенные значения.

Мастер настройки

Быстрый путь — reasonix setup. Это пошаговый менеджер провайдеров: он показывает список подключений, умеет добавлять OpenAI- и Anthropic-совместимые сервисы, править адреса и списки моделей, проверять ключ и обновлять список моделей.

reasonix setup: провайдер routerai — OpenAI-совместимый, 3 модели, ключ сохранён; пункты меню для добавления провайдера

Внутри интерактивной сессии тот же мастер открывается командой /setup, /auth — её псевдоним.

Запись в конфиге

Провайдер RouterAI описывается блоком [[providers]]. Ключи в конфиге не хранятся — вместо значения указывается имя переменной в api_key_env, а сама переменная живёт в <Reasonix home>/.env:

ROUTERAI_API_KEY=sk-xxxxxxxxxxxxxxxx

Глобальный ~/.reasonix/config.toml:

config_version = 12
default_model = "routerai/deepseek/deepseek-v4.1-flash"

[[providers]]
name        = "routerai"
kind        = "openai"
base_url    = "https://routerai.ru/api/v1"
models      = ["deepseek/deepseek-v4.1-flash", "deepseek/deepseek-v4-pro", "z-ai/glm-5.3"]
default     = "deepseek/deepseek-v4.1-flash"
api_key_env = "ROUTERAI_API_KEY"

Поля простые: name — идентификатор подключения, он же префикс в ссылке на модель; kind = "openai" — протокол OpenAI-совместимого чата; base_url — адрес API RouterAI с обязательным /v1; models — список id из каталога; default — модель, которую берёт сессия, если не указана другая; api_key_env — имя переменной с ключом.

Файл ~/.reasonix/config.toml: провайдер routerai с base_url https://routerai.ru/api/v1, списком моделей и api_key_env

Проектный вариант — тот же блок в ./reasonix.toml. Отличие в одном: Reasonix запускает код из проектного конфига, поэтому такой файл нужно сначала одобрить.

reasonix trust --yes --allow-providers

Без этого предупреждения ignored: it runs only after you approve it остаются, и провайдер из проекта не применяется. После любой правки провайдера — адреса, ключа или модели — подтверждение запрашивается заново.

Ключи читаются только из <Reasonix home>/.env. Переменная окружения в шелле, export в ~/.zshrc, проектный .env и связка ключей ОС провайдерными источниками не считаются — если ключ не виден, проверьте именно этот файл.

Выбор модели

Id проверены по каталогу RouterAI; актуальные цены смотрите там же — они меняются.

Модель Для чего
deepseek/deepseek-v4.1-flash Основная рабочая модель: правки, тесты, разбор кода; контекст 1M токенов
deepseek/deepseek-v4-pro Сложные многошаговые задачи, где важно качество рассуждения
z-ai/glm-5.3 Альтернатива DeepSeek: длинный контекст, другой стиль правок
anthropic/claude-sonnet-5.5 Сложный рефакторинг и архитектурные решения
anthropic/claude-haiku-5.5 Быстрые мелкие запросы и вспомогательные подзадачи

Сменить модель в сессии — команда /model, переключить провайдера — /provider. Обе открывают поиск по настроенным подключениям. Однократный запуск с другой моделью:

reasonix --model routerai/anthropic/claude-sonnet-5.5

Ссылка на модель состоит из имени провайдера и id из каталога. Две модели можно совмещать: исполнитель в default_model и планировщик в [agent].planner_model работают в отдельных сессиях и не мешают друг другу.

Проверка подключения

Самый быстрый способ — одноразовый запуск без интерфейса:

cd ~/projects/invoices
reasonix run "Прогони npm test и покажи результат"

Команда выполнит запрос, покажет вызовы инструментов и вернёт ответ в терминал. Если ключ не найден, Reasonix сообщит об этом прямо: no stored key for ROUTERAI_API_KEY.

Интерактивная сессия запускается командой reasonix без аргументов. Задача формулируется обычным текстом, правки агент показывает диффом, команды просит подтвердить.

Сессия Reasonix: diff правки invoices.js с функцией totalByCustomer, счётчик токенов turn и запрос разрешения на команду bash

Для проверки без подтверждений на каждый шаг есть режимы разрешений: --permission-mode acceptEdits применяет правки файлов автоматически, --permission-mode bypassPermissions (он же --yolo) снимает запросы совсем, оставляя песочницу и правила запретов.

Итог задачи в Reasonix: функция totalByCustomer, четыре зелёных теста npm test и статусная строка с моделью deepseek/deepseek-v4.1-flash

Решение проблем

no stored key for DEEPSEEK_API_KEY

Reasonix взял пресет DeepSeek вместо вашего провайдера: в default_model осталась модель без префикса или проектный конфиг не одобрен. Проверьте, что в default_model стоит routerai/<id модели>, а провайдер виден в reasonix setup.

ignored: it runs only after you approve it

Проектный reasonix.toml не подтверждён. Выполните reasonix trust --yes --allow-providers в каталоге проекта. Отдельного подтверждения мало: без флага --allow-providers провайдер, которому передаётся ключ, остаётся неодобренным.

bash sandbox requested but unavailable on this host

Для запуска команд Reasonix использует bubblewrap. В контейнерах и на хостах без поддержки пространств имён он отказывается выполнять шелл «без изоляции». Варианты: поставить bubblewrap, либо отключить песочницу для bash в [sandbox] bash = "off" — осознанно, понимая, что команды пойдут без изоляции.

edit_file blocked by permission policy

Неинтерактивный запуск (reasonix run) некому подтверждать правки. Запускайте с --permission-mode acceptEdits или опишите разрешения в [permissions]:

[permissions]
mode  = "allow"
allow = ["Bash(npm test:*)", "Bash(node --test:*)"]

Правило сравнивается с началом команды, поэтому cd /work && npm test под шаблон Bash(npm test:*) не подходит — нужен отдельный шаблон на cd либо запуск из нужного каталога.

401 или 404 от провайдера

401 — ключ не тот или не попал в .env. 404 — почти всегда адрес: для OpenAI-совместимого протокола нужен https://routerai.ru/api/v1, с /v1. Если сервис отвечает 402, закончились средства на балансе — пополните его в разделе Биллинг.

Что дальше