В феврале Qwen Code выглядел как бесплатная альтернатива Claude Code. 15 апреля Alibaba закрыла бесплатный доступ. Инструмент устарел за два месяца.

Это типичная проблема: привязка к одному вендору = риск. Сегодня бесплатно, завтра – нет. Поэтому перезапускаем тему с другим фокусом: tool-agnostic + model-agnostic. Выбираем CLI отдельно, модель отдельно, и собираем рабочий стек, который не сломается от решений чужого менеджмента.


Часть 1: Выбираем CLI

Три рабочих варианта на май 2026. Все – open-source, все работают с локальными моделями через Ollama.

OpenCode – швейцарский нож

OpenCode – 161K+ звёзд на GitHub, 75+ провайдеров, MIT-лицензия. TypeScript-проект от Anomaly (SST) с терминальным TUI.

Установка:

curl -fsSL https://opencode.ai/install | bash

Подключение к Ollama (~/.config/opencode/opencode.jsonc или opencode.json в корне проекта):

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "qwen3:14b": { "name": "Qwen 3 14B" },
        "gemma4:26b": { "name": "Gemma 4 26B MoE" }
      }
    }
  }
}

Плюсы: установка одной командой, переключение между облачными и локальными провайдерами одной командой (/models), MCP-серверы, tool calling, сессии с историей.

Минусы: конфиг многословный, кривая вхождения чуть круче, чем у Aider.

Кому: хочешь один инструмент на все случаи – и локальные модели, и Copilot, и Claude – через единый интерфейс.

Aider – ветеран pair programming

Aider – 30K+ звёзд, Python, заточен под работу с git-репозиториями. Строит структурную карту кодовой базы, автоматически запускает линтер и тесты после каждого изменения.

Установка:

python -m pip install aider-install && aider-install

Подключение к Ollama:

export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/qwen3:14b

Плюсы: лучшая интеграция с git (автокоммиты, диффы), repo-map для больших проектов, автозапуск тестов после правок.

Минусы: Python-зависимость, фокус на кодинге (не на DevOps-рутине), контекстное окно Ollama по умолчанию 4K – для больших проектов нужно вручную поднимать.

Кому: основная задача – писать и рефакторить код в репозитории с тестами.

Qwen Code – всё ещё жив (локально)

Qwen Code – облако мертво, но локальный режим через Ollama работает, как и раньше.

Установка:

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

Подключение к Ollama (~/.qwen/settings.json):

{
  "modelProviders": {
    "openai": [{
      "id": "qwen3:8b",
      "name": "Qwen3 8B (Ollama)",
      "baseUrl": "http://localhost:11434/v1"
    }]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "qwen3:8b" }
}

Важно: Ollama не требует API-ключ, но Qwen Code всё равно его проверяет. Установите любое непустое значение:

export OPENAI_API_KEY=ollama

Плюсы: если уже настроен – продолжает работать, знакомый интерфейс.

Минусы: зависимость от npm, будущее проекта туманно после закрытия free tier, меньше провайдеров, чем у OpenCode.

Кому: уже пользуешься, лень мигрировать, всё работает.

Сравнительная таблица CLI

OpenCodeAiderQwen Code
ЯзыкTypeScriptPythonNode.js
GitHub stars161K+30K+25K+
Ollama
Tool calling
MCP-серверы
Git-интеграциябазоваялучшаябазовая
Провайдеров75+20+~10
Установка1 командаpipnpm

Рекомендация: начинайте с OpenCode – максимальная гибкость, не привязан к экосистеме. Для code-heavy задач с git – Aider.


Часть 2: Выбираем модель

Критерий для DevOps-задач: tool calling + адекватное понимание bash/yaml/terraform/docker. Красивый бенчмарк на HumanEval вторичен – нам важнее, чтобы модель корректно вызывала инструменты и не галлюцинировала в командах.

MoE-модели – главный выбор для CPU

MoE (Mixture of Experts) – архитектура, где из 30B параметров на каждый токен активируется только 3B. Это принципиально меняет расклад для CPU: вы получаете качество большой модели при скорости маленькой.

МодельВсегоАктивныхRAM (Q4)Tool callingПримечание
Qwen 3.6 35B-A3B35B3B~21 GBСвежая (апрель 2026), SWE-bench 73.4%
Qwen 3 30B-A3B30B3B~22 GBПроверенная, хорошо документирована
Gemma 4 26B-A4B26B4B~20 GBGoogle, Apache 2.0, 256K контекст
Qwen 3.5 397B-A17B397B17B~230 GB+Флагман, нужна серверная машина

Qwen 3.6 35B-A3B – лучший выбор на сегодня для тех, у кого есть 20+ GB RAM. Специально обучена для agentic coding, tool calling из коробки, 73.4% на SWE-bench Verified – это уровень фронтирных моделей.

Gemma 4 26B-A4B – альтернатива, если нужен длинный контекст (256K токенов) или предпочитаете Google-экосистему. Чуть больше активных параметров (4B vs 3B), но и чуть качественнее на некоторых задачах.

Dense-модели – когда RAM ограничена

МодельПараметрыRAM (Q4)Tool callingСкорость CPU
Qwen 3 14B14B~10 GB5–6 t/s
Qwen 3 8B8B~5 GB9–10 t/s
Gemma 4 E4B4.5B eff / 8B total~5 GB12–18 t/s
Qwen 3 4B4B~3 GB16–18 t/s

Модели-ловушки (НЕ работают для agentic-сценариев)

Грабли, чтобы не тратить вечер:

  • qwen3-coder:30b (до ноября 2025) – шаблон Ollama был без tool calling, вызывал бесконечный retry в агентных CLI. Сейчас починено, но осадочек остался. Не путайте с qwen3.6:35b-a3b.
  • phi4-mini – мусор вместо JSON в tool calls.
  • qwen2.5-coder:32b – при tool calling возвращает JSON-строку в content, а не в поле tool_calls. CLI не парсит это как вызов инструмента.
  • Любая модель без native tool calling – просто не будет работать с агентными CLI.

Правило: перед установкой проверяйте на ollama.com/search?c=tools, есть ли у модели тег tools в capabilities. Но тег – необходимое, но не достаточное условие: phi4-mini имеет тег tools, а tool calls всё равно сломаны.


Часть 3: Матрица «Железо → Модель → CLI»

По доступной RAM

RAMМодельКоманда установкиЧего ожидать
8 GBQwen 3 4B (Q4)ollama run qwen3:4b~17 t/s, простые задачи
16 GBQwen 3 8B (Q4)ollama run qwen3:8b~9 t/s, золотая середина
24 GBGemma 4 26B-A4B (Q4)ollama run gemma4:26bMoE, ~16 t/s, 20 GB RAM, лучшее качество
24 GBQwen 3 30B-A3B (Q4)ollama run qwen3:30b-a3bMoE, ~20 t/s, 22 GB RAM
32+ GBQwen 3.6 35B-A3B (Q4)ollama run qwen3.6:35b-a3b~21 GB RAM, лучший MoE
32+ GBQwen 3 14B (Q8)ollama run qwen3:14bDense, стабильный, ~5 t/s

По задаче

ЗадачаМодельПочему
«Покажи порты / диски / процессы»Qwen 3 4B–8BСкорость важнее качества
Написать bash-скрипт мониторингаGemma 4 26B-A4BКомпактный код без болтовни, MoE-скорость
Разобрать Dockerfile / ComposeGemma 4 26B-A4BДлинный контекст, точные исправления
Отладить Terraform / AnsibleGemma 4 26B-A4B или Qwen 3 14B+Gemma точнее в CIDR/синтаксисе
Анализ логов (большой файл)Gemma 4 26B-A4B256K контекст
systemd / конфигиQwen 3 8B или Gemma 4 26B-A4BОбе справляются, 8B быстрее

Часть 4: Практическая настройка (15 минут)

Шаг 1: Ollama

curl -fsSL https://ollama.com/install.sh | sh
ollama pull qwen3:30b-a3b     # MoE, 18 GB – или qwen3:8b для слабого железа

Шаг 2: Поднимаем контекстное окно

По умолчанию Ollama даёт модели 4K токенов контекста (на машинах с GPU < 24 GB; с 24+ GB VRAM – автоматически 32K). Для агентной работы 4K мало – CLI отправляет системный промпт + историю + tool calls, и контекст кончается на первом же запросе.

# Вариант 1: через переменную окружения (для systemd – в override)
OLLAMA_CONTEXT_LENGTH=16384 ollama serve

# Вариант 2: внутри интерактивной сессии (REPL)
ollama run qwen3:30b-a3b
>>> /set parameter num_ctx 16384

Важно: /set parameter работает только внутри REPL (после >>>), не из командной строки.

Минимум – 16K. Если RAM позволяет – 32K.

Шаг 3: Отключаем thinking (опционально)

MoE-модели Qwen по умолчанию «думают вслух» – генерируют блок <think>...</think> перед ответом. На простых DevOps-командах это +3–5 секунд бессмысленного ожидания.

Важно: в Ollama 0.24+ thinking вынесен в отдельное поле API. Старый трюк /no_think в промпте больше не работает – модель всё равно думает, только в скрытое поле, расходуя токены. Правильный способ – передать "think": false в API-запросе.

Внимание: PARAMETER think false в Modelfile не поддерживается (Ollama 0.24.0 вернёт unknown parameter 'think'). Thinking отключается только через API-запрос ("think": false) или через шаблон с /no_think в Modelfile:

Кастомный Modelfile (Qwen 3 30B-A3B без thinking):

FROM qwen3:30b-a3b

TEMPLATE """{{- range .Messages }}
{{- if eq .Role "system" }}<|im_start|>system
{{ .Content }}<|im_end|>
{{- else if eq .Role "user" }}<|im_start|>user
{{ .Content }} /no_think<|im_end|>
{{- else if eq .Role "assistant" }}<|im_start|>assistant
{{ .Content }}<|im_end|>
{{- end }}
{{- end }}<|im_start|>assistant
"""

PARAMETER num_ctx 16384
ollama create qwen3:30b-nothink -f Modelfile

Для рутинных задач разницы в качестве нет, а скорость – вдвое выше. CLI (Aider, OpenCode) могут передавать think: false через API, но если используете ollama run напрямую – nothink-вариант через Modelfile удобнее.

Нюанс: даже с think: false модели Qwen 30B-A3B иногда «рассуждают вслух» прямо в ответе (не в <think> блоке, а в тексте). Gemma 4 26B-A4B этим не страдает – отвечает компактно и по делу.

Шаг 4: CLI

OpenCode:

curl -fsSL https://opencode.ai/install | bash
opencode
# В интерфейсе: /connect → Ollama → выбираем модель

Aider:

pip install aider-install && aider-install
export OLLAMA_API_BASE=http://127.0.0.1:11434
aider --model ollama_chat/qwen3.6:35b-a3b-nothink

Шаг 5: Проверяем

> покажи топ-5 процессов по RAM
> какие порты слушают на этой машине
> напиши systemd unit для бэкапа PostgreSQL

Если модель корректно вызывает bash-команды и возвращает отформатированный результат – всё работает.


Часть 5: CPU vs GPU – реальные замеры

Главный вопрос: «насколько терпимо на CPU?»

Замеры на Ryzen 9 7950X, 128 GB DDR5, RTX 3090 24 GB, Ollama 0.24.0. CPU-тесты с ограничением потоков через num_thread (8t ≈ i7, 4t ≈ i3/ноутбук). Thinking отключён (/no_think), генерация 200 токенов.

Результаты (t/s – токенов в секунду, генерация)

МодельТипGPUCPU 8tCPU 4t
Qwen 3 30B-A3BMoE16120.521.1
Gemma 4 26B-A4BMoE13815.515.6
Qwen 3 4BDense20416.617.5
Qwen 3 8BDense1339.19.3
Qwen 3 14BDense825.45.3

Ключевое наблюдение: MoE 30B-A3B на CPU быстрее, чем dense 4B – 20+ t/s против 17 t/s. При этом качество на уровне 30B-модели. Gemma 4 26B-A4B чуть медленнее (15.5 t/s), но всё равно быстрее dense 14B и близка к dense 8B – при значительно более высоком качестве. Это главный аргумент за MoE на CPU-only машинах.

5–20 t/s на CPU – вполне рабочая скорость. Для простых команд ответ приходит за 3–5 секунд, для длинных скриптов – 20–30 секунд. GPU ускоряет в 8–15x, но CPU – не «мучение», а адекватный вариант.

Почему 4 потока ≈ 8 потоков? Генерация токенов – это bandwidth-bound задача (чтение весов из RAM), а не compute-bound. Скорость определяется пропускной способностью памяти, не числом ядер. На DDR5 разница между 4 и 8 потоками минимальна.

Вывод: MoE 30B-A3B на CPU – лучший выбор по соотношению качество/скорость. Gemma 4 26B-A4B – отличная альтернатива с 256K контекстом и 16 t/s на CPU. Dense 8B – для тех, кому не хватает RAM на MoE.


Часть 6: Качество на DevOps-задачах – тест на практике

Скорость – это хорошо, но генерирует ли модель рабочий код? Прогнали 5 типовых DevOps-задач через все три модели, по 3 прогона каждая (thinking отключён через API think: false, temperature: 0.1, Ollama 0.24.0, RTX 3090):

Тестqwen3:8bqwen3:30b-a3bgemma4:26b
Bash-скрипт мониторинга дискаPASS 3/3 (110 tok)PARTIAL 2/3, RAMBLE 3/3PASS 3/3 (101 tok)
Починить Dockerfile (3 бага)3/3 fix, 3/3 consistent0–2/3, RAMBLE 3/33/3 fix, 3/3 consistent
Объяснить K8s StatefulSet4/4 3/3 consistent4/4 но RAMBLE 3/34/4 3/3 consistent
systemd unit (6 критериев)5/6 – BUG on_failure 3/36/6, RAMBLE 3/36/6 3/3 consistent
Найти баг в Terraform CIDRPASS concise 3/3PASS verbose, RAMBLE 3/3PASS concise 3/3

RAMBLE = модель «думает вслух» прямо в ответе (не в <think> блоке), тратит 500–1024 токена на рассуждения вместо кода.

Выводы (подтверждены 3x AB):

  • Gemma 4 26B-A4B – лидер: 5/5 тестов PASS, 0 ramble, компактные ответы (53–130 tok), 100% consistency. Лучший systemd (network-online.target), лучший Dockerfile (--no-cache-dir).
  • Qwen 3 8B – хорошая: 5/5 PASS, 0 ramble, но стабильный баг в systemd (on_failure вместо on-failure – воспроизводится 3/3).
  • Qwen 3 30B-A3B – быстрая (20 t/s на CPU), но проблемная: RAMBLE 15/15 прогонов (100%). Даже с think: false модель пишет рассуждения в content, расходуя токены. На Dockerfile – нестабильна (0–2/3 fix из 3 багов). Для агентных CLI это критично: CLI парсит ответ и ожидает код, а получает текст.

Часть 7: Грабли и лайфхаки

Контекстное окно – враг номер один

На CPU-only машинах Ollama по умолчанию ставит контекст в 4K токенов (с GPU 24+ GB – автоматически 32K). 4K – это мало. Модель просто забывает начало разговора. Симптом: на третьем вопросе в сессии ответы становятся неадекватными. Лечение: OLLAMA_CONTEXT_LENGTH=16384 или num_ctx 16384 в Modelfile.

Tool calling не работает?

  1. Проверьте, что модель поддерживает tools (на странице Ollama в capabilities должен быть тег tools)
  2. Увеличьте num_ctx – маленький контекст = обрезанные tool calls
  3. Попробуйте без thinking mode – <think> блоки иногда ломают парсинг tool calls в CLI

MCP-серверы

Работают в OpenCode и Qwen Code. Aider пока не поддерживает MCP. Если нужен доступ к файловой системе, GitHub, или кастомным API через MCP – выбирайте OpenCode.

Память при MoE

MoE-модели загружают все параметры в RAM, хотя активируют малую часть. По данным ollama ps: Qwen 3 30B-A3B – 22 GB, Gemma 4 26B-A4B – 20 GB (с контекстом 32K). Если у вас 16 GB RAM – MoE не влезет, берите dense Qwen 3 8B (~5 GB).


Итог

ЧтоРекомендация
CLIOpenCode (универсал) или Aider (code + git)
Модель, GPUGemma 4 26B-A4B или Qwen 3.6 35B-A3B
Модель, CPU, 32 GB RAMGemma 4 26B-A4B (лучшее качество на DevOps-задачах) или Qwen 3.6 35B-A3B
Модель, CPU, 24 GB RAMQwen 3 30B-A3B (MoE) – 20 t/s, быстрее dense 8B
Модель, CPU, 16 GB RAMQwen 3 8B (MoE-модели требуют 20+ GB – не влезут)
Модель, CPU, 8 GB RAMQwen 3 4B
Минимальный стартollama pull qwen3:8b && aider --model ollama_chat/qwen3:8b

Главный принцип: CLI и модель – независимые слои. Alibaba закроет Qwen Code – переключитесь на OpenCode за 5 минут. Qwen-модель станет хуже – смените на Gemma 4. Ничего не ломается, данные не теряются.


Telegram: @DevITWay Сайт: devopsway.ru