Загрузка...

Open Interpreter через RouterAI: терминальный coding-агент с любым OpenAI-совместимым провайдером

Open Interpreter (openinterpreter/openinterpreter) — терминальный coding-агент: читает проект, запускает команды, правит файлы и гоняет тесты. Он работает не только со своими моделями, но и с любым провайдером, который описан в config.toml. Через RouterAI агенту доступны Claude, GPT, DeepSeek, GLM и Kimi с одним ключом, работой из России без VPN и оплатой в рублях. Дешёвые агентные модели подходят для рутины, флагманы остаются на сложные задачи.

В статье проверена версия 0.0.59, бинарник называется interpreter.

Требования

  • Linux, macOS или Windows (PowerShell).
  • Ключ RouterAI из личного кабинета.
  • Для запуска тестов на примере из статьи нужен Node.js.

Установка

macOS и Linux:

curl -fsSL https://www.openinterpreter.com/install | sh

Windows (PowerShell) — скрипт install.ps1 с того же сайта, команда есть на странице установки.

Проверьте, что бинарник виден в PATH:

interpreter --version

Если команда не найдена, добавьте в PATH каталог ~/.local/bin и откройте новый терминал.

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

Open Interpreter описывает провайдеров в секциях [model_providers.<имя>] файла ~/.openinterpreter/config.toml. Подключение делится на три шага.

  1. Экспортируйте ключ в переменную окружения. Имя переменной вы выбираете сами и указываете его в env_key:

    export ROUTERAI_API_KEY=sk-xxxxxxxxxxxxxxxx
    

    Чтобы переменная переживала перезапуск терминала, добавьте строку в ~/.bashrc или ~/.zshrc.

  2. Создайте ~/.openinterpreter/config.toml:

    model_provider = "routerai"
    model = "deepseek/deepseek-v4.1-flash"
    harness = "minimal"
    
    [model_providers.routerai]
    name = "RouterAI"
    base_url = "https://routerai.ru/api/v1"
    env_key = "ROUTERAI_API_KEY"
    wire_api = "chat"
    
    Поле Что делает
    model_provider Какую секцию model_providers использовать
    model Id модели из каталога RouterAI
    harness Набор инструкций и инструментов агента, см. ниже
    base_url Адрес API без /chat/completions на конце
    env_key Имя переменной окружения с ключом
    wire_api Протокол: chat, responses или messages

    Конфиг config.toml с провайдером routerai и версия interpreter

  3. Запустите агент в каталоге проекта:

    cd invoices
    interpreter
    

    В шапке сессии видна связка «провайдер модель»: routerai deepseek/deepseek-v4.1-flash.

Провайдер, модель и harness

Это три независимые настройки, и путаница между ними — частый источник ошибок.

  • Провайдер отвечает за адрес API, ключ и протокол (wire_api).
  • Модель — id из каталога RouterAI, например deepseek/deepseek-v4.1-flash.
  • Harness — «обвязка» агента: системные инструкции и набор инструментов. Подробнее о понятии — в глоссарии. Open Interpreter по умолчанию подбирает harness под семейство модели, а переопределить его можно командой /harness или полем harness в конфиге.

Команда /model внутри сессии открывает выбор провайдера (Select Provider). RouterAI в списке отмечен как current, рядом указана переменная ROUTERAI_API_KEY.

Меню /model: выбор провайдера, RouterAI отмечен как текущий

Список моделей в этом меню встроенный. Модель из каталога RouterAI задаётся полем model в конфиге или флагом -m при запуске:

interpreter -m z-ai/glm-5.3

Три протокола: chat, responses, messages

wire_api base_url Когда использовать
chat https://routerai.ru/api/v1 OpenAI-совместимый Chat Completions. Подходит для всех моделей каталога
responses https://routerai.ru/api/v1 Responses API, если модель и сценарий его требуют
messages https://routerai.ru/api Anthropic Messages API, только для моделей Claude

Для Claude можно добавить второго провайдера рядом с первым:

[model_providers.routerai-claude]
name = "RouterAI (Anthropic)"
base_url = "https://routerai.ru/api"
env_key = "ROUTERAI_API_KEY"
wire_api = "messages"

Выбрать его для одного запуска: interpreter -c 'model_provider="routerai-claude"' -m anthropic/claude-sonnet-5.5.

Выбор модели

Id берите только из каталога RouterAI: список меняется, а цены зависят от модели и объёма контекста.

Модель Для чего
deepseek/deepseek-v4.1-flash Дешёвая агентная модель для рутины: запуск тестов, мелкие правки
z-ai/glm-5.3 Универсальный вариант для задач на несколько файлов
moonshotai/kimi-k3 Длинные сессии с чтением кода
anthropic/claude-sonnet-5.5 Сложный рефакторинг, через wire_api = "messages" или chat
openai/gpt-6.1-terra Флагман OpenAI, подробности в обзоре

Начните с дешёвой модели и переходите на флагман, когда она не справляется. Менять модель можно без правки файла: interpreter -m <id>.

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

Одноразовый запуск без интерактивного режима делает interpreter exec. На демо-проекте Invoices:

cd invoices
interpreter exec "Run npm test and tell me in one sentence whether tests pass"

Агент запускает npm test, читает вывод и отвечает одной фразой. В шапке вывода видны model: deepseek/deepseek-v4.1-flash и provider: routerai.

interpreter exec на демо-проекте Invoices: провайдер routerai, модель deepseek/deepseek-v4.1-flash

Флаг --chat-completions включает транспорт Chat Completions для разового запуска. Для провайдера с wire_api = "chat" он не нужен.

Режим песочницы задаёт флаг -s (например, -s workspace-write), остальные флаги покажет interpreter exec --help.

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

Ошибка сразу при первом запросе, хотя ключ верный. Open Interpreter сам подбирает harness по id модели. Для ряда моделей через wire_api = "chat" выбранный автоматически harness не работает, а harness = "minimal" работает. Задайте его в конфиге или переключите командой /harness. Флаг --chat-completions в этом случае не помогает.

401 Unauthorized. Ключ не попал в окружение процесса. Переменную из export видит только та оболочка, в которой она выставлена, поэтому после правки ~/.bashrc откройте новый терминал. Проверьте, что env_key в конфиге совпадает с именем переменной, и что ключ скопирован целиком.

404 или «not found». В base_url лишний путь. Правильно https://routerai.ru/api/v1, без /chat/completions на конце. Для wire_api = "messages" адрес другой: https://routerai.ru/api.

Неверный wire_api. Chat Completions-запрос уходит на адрес Messages API или наоборот. Правило: chat и responses идут на /api/v1, messages на /api.

Модель не найдена. Id указан не так, как в каталоге. Берите строку целиком, вместе с префиксом провайдера: z-ai/glm-5.3, а не glm-5.3.

Что дальше