Загрузка...

Вайб-кодинг в Qwen Code: Настройка через RouterAI (Qwen, Claude, GPT, DeepSeek)

Qwen Code

Qwen Code — открытый (Apache-2.0) ИИ-агент для программирования в терминале от команды Qwen. Он читает и правит файлы проекта, запускает команды, работает с MCP-серверами, а ещё подключается к IDE (VS Code, Zed, JetBrains). Главное для нас: агент не привязан к одному вендору и поддерживает OpenAI-, Anthropic- и Gemini-совместимые API, так что к нему можно подключить любой сторонний провайдер.

Бесплатный тариф Qwen OAuth закрыт: по документации Qwen Code он прекращён 15.04.2026. RouterAI решает это одним ключом: работа из России без VPN, оплата в рублях и сотни моделей в одном каталоге — Qwen, Claude, GPT, DeepSeek, GLM. Меняете модель командой /model, не трогая ключи и аккаунты.

Требования

Установка

Через npm:

npm install -g @qwen-code/qwen-code@latest

Или через Homebrew (macOS / Linux):

brew install qwen-code

Также есть автономный установщик, который не требует Node.js — команды для Linux/macOS и Windows приведены в README проекта. Проверьте версию:

qwen --version

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

Qwen Code описывает провайдеров в блоке modelProviders файла ~/.qwen/settings.json (общий для пользователя) или .qwen/settings.json в корне проекта. Ключ в настройки не записывается: в поле envKey указывается имя переменной окружения, а значение агент читает из process.env.

  1. Сохраните ключ в переменную окружения (macOS / Linux; для постоянной настройки добавьте строку в ~/.zshrc или ~/.bashrc):

    export ROUTERAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
    

    Вместо export можно положить строку ROUTERAI_API_KEY=... в файл ~/.qwen/.env — Qwen Code подхватит его автоматически.

  2. Создайте или откройте ~/.qwen/settings.json и добавьте провайдера:

    {
      "modelProviders": {
        "openai": [
          {
            "id": "anthropic/claude-sonnet-5.5",
            "name": "Claude Sonnet 5.5 (RouterAI)",
            "envKey": "ROUTERAI_API_KEY",
            "baseUrl": "https://routerai.ru/api/v1"
          },
          {
            "id": "qwen/qwen3.8-max-0902",
            "name": "Qwen3.8 Max (RouterAI)",
            "envKey": "ROUTERAI_API_KEY",
            "baseUrl": "https://routerai.ru/api/v1"
          }
        ]
      },
      "security": { "auth": { "selectedType": "openai" } },
      "model": { "name": "anthropic/claude-sonnet-5.5" }
    }
    
  3. Запустите агента в папке проекта:

    cd /path/to/your/project
    qwen
    

Версия Qwen Code и файл ~/.qwen/settings.json с провайдерами RouterAI

Что значат поля:

Поле Назначение
id Идентификатор модели, который уходит в API. Берите точно как в каталоге RouterAI
name Подпись в меню /model (необязательно)
envKey Имя переменной окружения с ключом
baseUrl Корень API, без /chat/completions — путь SDK добавит сам
security.auth.selectedType Протокол при старте: openai или anthropic
model.name Модель по умолчанию, должна совпадать с одним из id

Блок "env": { "ROUTERAI_API_KEY": "..." } в settings.json тоже работает, но это запасной вариант с наименьшим приоритетом, и ключ лежит в файле открытым текстом. Не коммитьте такие файлы в git.

Протокол Anthropic Messages API

Модели Claude можно подключить и по нативному протоколу Anthropic. Для этого добавьте провайдера в секцию anthropic, а baseUrl укажите без /v1:

{
  "modelProviders": {
    "anthropic": [
      {
        "id": "anthropic/claude-sonnet-5.5",
        "name": "Claude Sonnet 5.5 (Messages API)",
        "envKey": "ROUTERAI_API_KEY",
        "baseUrl": "https://routerai.ru/api"
      }
    ]
  }
}

Оба протокола можно держать в одном файле: Qwen Code сгруппирует модели по протоколам в меню /model.

Переключение модели на лету

Внутри сессии выполните /model и выберите нужную запись стрелками. Правки в modelProviders подхватываются без перезапуска — достаточно заново открыть /model. Выбор запоминается между сессиями. Модель можно задать и при запуске:

qwen --model "qwen/qwen3.8-max-0902"

Меню /model в Qwen Code: модели RouterAI по протоколам openai и anthropic

Выбор модели

Все id ниже есть в каталоге RouterAI и отвечают на запросы через https://routerai.ru/api/v1. Актуальные цены смотрите там же — они зависят от модели и объёма контекста.

Модель Контекст Для чего
qwen/qwen3.8-max-0902 1 млн Max-модель Qwen3.8: сложные задачи и рефакторинг
qwen/qwen3.8-flash 1 млн Быстрые и недорогие правки, повседневные вопросы по коду
qwen/qwen3-coder-next 262 тыс. Модель серии Qwen Coder для работы с кодом
anthropic/claude-sonnet-5.5 1 млн Основная рабочая модель для агентных задач
deepseek/deepseek-v4.1-flash 1 млн Дешёвая быстрая модель для рутины
z-ai/glm-5.3 1 млн Универсальная модель семейства GLM с большим контекстом
openai/gpt-5.5 1,05 млн Сложные задачи, когда нужна модель OpenAI

Чтобы все они были в /model, добавьте по записи на каждую в массив openai с тем же envKey и baseUrl.

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

Запустите qwen в папке проекта и дайте короткое задание — например, прочитать файл и ответить на вопрос по нему. В строке состояния внизу должна быть выбранная модель, а в шапке — API Key | <имя модели>.

Qwen Code отвечает на задание по invoices.csv через RouterAI: в шапке и строке состояния видна модель

Быстро проверить сам ключ и эндпоинт можно и без агента:

curl https://routerai.ru/api/v1/chat/completions \
  -H "Authorization: Bearer $ROUTERAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "anthropic/claude-sonnet-5.5", "max_tokens": 64, "messages": [{"role": "user", "content": "Привет!"}]}'

Для разового запуска в скриптах и CI есть headless-режим: qwen -p "ваш запрос".

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

401 Unauthorized

Ключ неверный, отозван или переменная ROUTERAI_API_KEY не передана процессу qwen. Проверьте echo $ROUTERAI_API_KEY в том же терминале, где запускаете агента, и сверьтесь с ключом в личном кабинете. Помните: в envKey пишется имя переменной, а не сам ключ. Если переменная вообще не найдена, Qwen Code может открыть меню /auth — выйдите из него и задайте ключ.

Model not found (400)

Такого id нет в каталоге. Скопируйте точное значение со страницы каталога моделей: у Qwen, DeepSeek и GLM id содержит префикс вендора (qwen/..., deepseek/..., z-ai/...).

Модели нет в меню /model

Скорее всего, ключ провайдера в modelProviders не входит в список поддерживаемых: допустимы openai, anthropic, gemini, vertex-ai, а запись с произвольным именем (например, openai-custom) пропускается с предупреждением. Проверьте и синтаксис JSON — лишняя запятая ломает файл.

Ошибка wireApi

В записи openai можно указать "wireApi": "chat-completions" (значение по умолчанию) или "responses". Любые другие значения, а также wireApi у моделей в секциях anthropic и gemini — ошибка конфигурации. Режим responses требует эндпоинта, совместимого с OpenAI Responses API; если не уверены — не задавайте поле вообще.

Неверный baseUrl

Проверьте адрес: для openai это https://routerai.ru/api/v1 (без /chat/completions), для anthropic — https://routerai.ru/api (без /v1).

402 Payment Required

Недостаточно средств на балансе. Пополните его в разделе Биллинг.

Что дальше