Перейти к содержимому
EN

Qwen Code

Подключите Qwen Code — терминального агента от команды Qwen (форк Gemini CLI) — к Mixen: оплата с баланса в рублях, стриминг и tool calling через наш OpenAI-совместимый /v1/chat/completions.

Окно терминала
npm install -g @qwen-code/qwen-code@latest

Требуется Node.js 22+. Альтернативы — Homebrew (brew install qwen-code) и standalone-скрипты для Linux/macOS и Windows в официальном репозитории.

Qwen Code говорит на нескольких протоколах (openai, anthropic, gemini, vertex-ai), и Mixen подключается как провайдер с протоколом openai — CLI поддерживает любые OpenAI-совместимые эндпоинты, у каждой модели свой baseUrl.

Создайте ~/.qwen/settings.json (рекомендованный уровень для modelProviders — пользовательский):

{
"security": {
"auth": { "selectedType": "openai" }
},
"modelProviders": {
"openai": [
{
"id": "openai/gpt-5.6-sol",
"name": "GPT-5.6 Sol (Mixen)",
"envKey": "MIXEN_API_KEY",
"baseUrl": "https://api.mixen.ai/v1"
},
{
"id": "z-ai/glm-5.3-flash",
"name": "GLM 5.3 Flash (Mixen)",
"envKey": "MIXEN_API_KEY",
"baseUrl": "https://api.mixen.ai/v1"
}
]
},
"model": { "name": "openai/gpt-5.6-sol" }
}

Ключевые моменты:

  • security.auth.selectedType: "openai" — какой протокол использовать на старте; без него CLI останется на провайдере по умолчанию и в Mixen не пойдёт.
  • id — это ID модели Mixen, он уходит в API как есть; model.name должен совпадать с одним из id в списке.
  • envKeyимя переменной окружения с ключом, а не сам ключ. Если поле опустить, для протокола openai возьмётся OPENAI_API_KEY — но тогда реальный ключ OpenAI на той же машине будет конфликтовать, поэтому удобнее своё имя.
  • Записи различаются парой id + baseUrl — держите в списке сколько нужно моделей Mixen.

Переменная окружения с ключом (mxn-… выпускается в кабинете):

Окно терминала
export MIXEN_API_KEY="ваш-api-ключ" # добавить в ~/.bashrc или ~/.zshrc для постоянства

CLI ищет .env в порядке .qwen/.env.env~/.qwen/.env~/.env (первый найденный файл выигрывает, переменные не склеиваются). Приоритет источника: флаги CLI → переменные shell → .envenv в settings.json.

Окно терминала
qwen

Полезные команды сессии: /auth — сменить провайдера/протокол, /model — сменить модель (выбор сохраняется между сессиями), /effort — уровень рассуждения.

Быстрая проба без правки конфига — два флага креденшелов (единственные существующие):

Окно терминала
qwen --auth-type openai --model z-ai/glm-5.3-flash \
--openai-api-key ваш-api-ключ --openai-base-url https://api.mixen.ai/v1

Ключ и баланс проверяются минимальным генерирующим запросом:

curl https://api.mixen.ai/v1/chat/completions \
-H "Authorization: Bearer ваш-api-ключ" \
-H "Content-Type: application/json" \
-d '{"model":"z-ai/glm-5.3-flash","messages":[{"role":"user","content":"ping"}],"max_tokens":5}'

200 — ключ и баланс рабочие; 401 — ключ скопирован не целиком или это не API-ключ Mixen; 402 — на балансе нет средств. GET /v1/models ключ не проверяет — он отвечает и без него.

Каждый ход агента заново отправляет накопленный контекст, поэтому цена входа важнее, чем кажется. Цены — за 1M токенов, вход/выход; полные таблицы с кэш-колонками — в каталоге.

Задача Модель Вход / выход
Вопросы по коду, ревью, мелкие правки GLM 5.3 Flash (z-ai/glm-5.3-flash) 8,4 / 27,9 ₽
Многофайловые правки в знакомом коде GLM 5.3 (z-ai/glm-5.3) 156 / 490,2 ₽
Сложные агентные задачи, незнакомая кодовая база GPT-5.6 Sol (openai/gpt-5.6-sol) 213,9 / 1069,5 ₽

Все три — reasoning-модели: размышления заработают без дополнительной настройки; поддержку tool calling у конкретной модели видно в карточке каталога.

  • Кэш-экономия сессий. Повторный контекст в течение 5 минут считается по ~10% цены входа (21.4 ₽ за 1M у gpt-5.6-sol вместо 213.9 ₽, 1.7 ₽ у glm-5.3-flash), и каждое попадание продлевает окно ещё на 5 минут — плотная сессия живёт в кэше от начала до конца. Не редактируйте правила проекта (QWEN.md, AGENTS.md) посреди сессии: изменение префикса сбрасывает кэш.
  • Лимит 60 RPM на ключ. Для плотной агентной работы этого достаточно; при ошибках 429 снизьте параллелизм подзадач в клиенте.
  • Рассуждение расходует бюджет ответа — на простых задачах глушить его выгоднее.
  • 401 / Invalid API KeyMIXEN_API_KEY не задана в сессии, где запущен CLI (проверьте echo $MIXEN_API_KEY), либо ключ скопирован не целиком.
  • «Модель не найдена»model.name должен совпадать с id записи в modelProviders, а не с полем name.
  • Запросы уходят не в Mixen — не задан security.auth.selectedType (проверьте /auth) либо в /model выбрана модель другого провайдера.
  • Приложение не видит переменные из .env — срабатывает только первый найденный .env в цепочке поиска; переменные из разных файлов не объединяются.