Выбор LLM для агентного кодинга в OpenCode: цены и vision 2026
20 мин…обновлено 13 сентября 2026 г.
Выбор модели для агентного кодинга — не поиск «самой умной», а оптимизация по треугольнику: качество на SWE-bench, реальная стоимость с учётом кеширования и рабочая мультимодальность. Последний угол оказывается самым коварным: модель числится мультимодальной в спецификации, но в агенте — OpenCode, Kilo Code, Cline — картинок не видит.
Ниже — актуальный на 2026 год срез по OpenRouter с упором на OpenCode и разбором того, почему «✅ Vision» в таблице не гарантирует, что скриншот доедет до модели.
Актуальные цены и бенчмарки (OpenRouter)
Цена за запрос рассчитана для среднего профиля: 10 000 токенов вход / 2 000 токенов выход — типичный запрос на рефакторинг или генерацию модуля.
Почему «мультимодальная» ≠ «видит картинки в агенте»?
Это ключевой раздел, которого не хватает в большинстве обзоров. Знак «✅» в колонке «Изображения» означает, что модель умеет обрабатывать картинки. Он не означает, что скриншот из агента до модели доедет. Между запросом и весами модели три слоя, на каждом из которых изображение может потеряться.
Слой 1. Маршрутизация провайдеров на OpenRouter
OpenRouter — не сама модель, а маршрутизатор поверх нескольких провайдеров, которые хостят одни и те же веса. Для популярной модели изображение может отдавать провайдер A, тогда как провайдер B раздаёт только текстовый эндпоинт. OpenRouter по умолчанию балансирует нагрузку и вправе разроутить запрос на любого из них. Итог: одна и та же модель то видит, то не видит картинки — в зависимости от того, куда ушёл конкретный запрос.
Слой 2. Формат передачи изображения
Агент может слать картинку в двух несовместимых форматах: image_url (стиль OpenAI — ссылка или base64 в поле URL) и input_image (иной формат части провайдеров). Провайдер, принимающий только один из них, на другом вернёт ошибку. Знаменитое «Image input not supported» в MiMo-V2.5 base — часто не про отсутствие vision у модели, а про несовпадение формата на стороне провайдера. Это отдельная поломка, которую легко спутать с первым слоем.
Слой 3. Проверка vision за 30 секунд
Прежде чем доверять сессии отладки по скриншотам, канал проверяется явно, а не по факту первой сломавшейся задачи.
Взять скриншот, вписать в него маркер, который модель не может знать заранее — например, случайное число прямо на картинке.
Отправить и спросить: «Какое число написано на изображении?»
Назвала число → vision работает через текущего провайдера и формат. Пишет «не вижу изображений» или галлюцинирует случайное число → переключить провайдера или формат.
Тридцать секунд экономят час отладки не того слоя.
Как настроить модель с гарантированным vision в OpenCode?
В OpenCode список моделей приходит через models.dev, а конфигурация задаётся в opencode.json. В отличие от выпадающего списка в Kilo Code, здесь провайдер закрепляется жёстко — что и решает проблему первого слоя. Рабочий пример с закреплением провайдера, у которого мультимодальность подтверждена:
Ключевое — разница между двумя моделями. Qwen3.7 Plus раздаёт единственный провайдер, поэтому блок provider ей не нужен: запрос физически некуда разроутить, картинка всегда идёт по одному маршруту. MiniMax M3 хостят семь провайдеров, и тут allow_fallbacks: false с явным order обязателен — иначе запрос уйдёт на того, у кого vision не поднят.
Self-hosted OpenCode за nginx: обязательная правка
Если OpenCode Server развёрнут на VPS за обратным прокси nginx, есть подводный камень, который выглядит как «модель не видит картинки», а на деле — обрезанный запрос. Скриншот в base64 раздувает тело запроса до нескольких мегабайт, а nginx по умолчанию режет тело на 1 MB и возвращает 413 Request Entity Too Large. Агент при этом часто не показывает внятной ошибки — картинка просто молча не доходит.
Правка в конфигурации сайта nginx (либо в Nginx Proxy Manager — поле Advanced):
Без client_max_body_size отладка по скриншотам падает молча, и это легко перепутать с проблемой на стороне модели.
Какую модель выбрать для работы со скриншотами ошибок?
Сценарий «скриншот с ошибкой → агент правит код» требует одновременно качественного vision и сильного агентного кодинга. Сравнение актуальных вариантов:
Модель
$/запрос
SWE-bench Pro
Vision
Когда использовать
MiMo-V2.5 base
$0.0020
—
фото+видео+аудио
Чтение документации, визуальный контроль качества — не для отладки
MiniMax M3
$0.0054 (акция)
59.0%
фото+видео+компьютер
Лучший по цена/качество, пока действует акция
Qwen3.7 Plus
$0.0058
—
фото+GUI
Оптимум для скриншотов UI и отладки после окончания акции M3
MiMo-V2.5-Pro
$0.0061
57.2%
уровень Sonnet
Единая модель для кодинга + vision, стабильная цена
Claude Sonnet 4.6
$0.0600
—
нативный reasoning
Когда остальные дают поверхностные правки
Дешёвые vision-модели Qwen — недооценённый вариант с одним провайдером
Отдельно выделяется линейка Qwen с нативной мультимодальностью и единственным провайдером — то есть без риска попасть на текстовый эндпоинт. Для сценариев, где не нужен максимум качества кодинга (чтение документации, сверка макета со спецификацией, простой разбор скриншота), они дешевле всего перечисленного выше.
Модель
Вход $/1M
Выход $/1M
Модальности
Провайдеров
Qwen3.6 Flash
$0.1875
$1.125
текст+фото+видео
1 (Alibaba)
Qwen3.5 35B-A3B
$0.14
$1.00
текст+фото
1
Qwen3.5 122B-A10B
$0.26
$2.08
текст+фото
1
Qwen3.7 Plus
$0.32
$1.28
текст+фото+GUI
1 (Alibaba)
Qwen3.6 Flash при цене $0.1875/$1.125 — самая дешёвая надёжная опция с изображениями во всём обзоре: контекст 1M токенов, поддержка видео, кеширование с явным чтением и записью. Для отладки сложного кода она слабее Qwen3.7 Plus, но для сценария «прочитать скриншот и понять, что на экране» — оптимальна. Ещё одна свежая опция вне экосистемы Qwen — Step 3.7 Flash от stepfun: нативный vision, открытые веса, вход ниже $0.40/1M.
Почему кеширование DeepSeek меняет экономику агентного кодинга?
В любом агенте системный промпт, определения инструментов и контекст файлов повторяются в каждом запросе. DeepSeek применяет автоматическое кеширование без дополнительной настройки: если начало промпта совпадает с предыдущим запросом, совпавшие токены тарифицируются по цене попадания.
V4 Flash: попадание стоит $0.0028/1M — снижение на 98% относительно полной входной цены.
V4 Pro: попадание $0.0036/1M (~0.8% от входа).
Нет ни параметра cache_control, ни платы за запись, ни почасового хранения. Сравнение с альтернативами:
MiMo-V2.5: попадание в кеш до $0.20–0.40/1M — в 50–100 раз дороже DeepSeek.
Claude: требует явных точек останова cache_control, запись 1.25–2x, чтение 0.1x. Реально — около 39% попаданий при типичной сессии, остальное тарифицируется по полной.
При активном кешировании реальная цена запроса DeepSeek V4 Flash падает до $0.00003–0.00010 на повторяющемся контексте — это меняет сравнение с Claude не на порядок, а на два.
Разбор конкретных моделей
DeepSeek V4 Pro — основной текстовый инструмент
Архитектура MoE: 1.6T параметров, 49B активных, контекст 1M токенов. ~80.6% на SWE-bench Verified — на уровне Claude Opus 4.6 при цене $0.0061 за запрос против $0.10 у Opus 4.8. Лидирует среди open-weight моделей по LiveCodeBench (93.5) и Codeforces (рейтинг 3206). Ввод только текстовый — изображения через API не поддерживаются.
DeepSeek V4 Flash — дешёвый драйвер для рутины
~79% SWE-bench Verified, быстрее всех версий Opus по времени на задачу (~165 с). Цена запроса $0.0013 — в 46 раз дешевле Claude Sonnet 4.6 при сопоставимом SWE-bench. Режим thinking включён по умолчанию — для простых задач его стоит отключать: токены рассуждений тарифицируются как дорогой выход.
Конфигурация в OpenCode для рутинных операций (правки, тесты, чтение файлов):
MiniMax M3 — лучший по цена/качество для vision-кодинга, пока действует акция
Архитектура MiniMax Sparse Attention (MSA): 9.7x ускорение prefill и 15.6x ускорение декодирования на 1M токенах по сравнению с предыдущим поколением. Нативно мультимодальная система — обучена на чередующихся данных текста и изображений с нуля.
Бенчмарки: SWE-bench Pro 59.0% (выше GPT-5.5 при 58.6%), Terminal-Bench 2.1 66.0%, BrowseComp 83.5. Поддержка текста, изображений, видео и управления компьютером в едином конвейере. Напоминание из раздела выше: чтобы vision реально работал через OpenRouter, провайдер закрепляется через allow_fallbacks: false.
Qwen3.7 Plus — стабильный оптимум после окончания акции M3
Построен на базе Qwen3.7-Max с добавленным vision-стеком: читает скриншоты интерфейсов, локализует элементы UI, понимает контекст ошибки и генерирует патч в едином агентном цикле. ScreenSpot Pro 79.0 — верхний диапазон среди всех моделей. Terminal-Bench 2.0 70.3. Цена $0.0058/запрос стабильна, в отличие от акционной M3.
MiMo-V2.5 base — омнимодальная модель для простых визуальных задач
Xiaomi MoE: 310B параметров / 15B активных, лицензия MIT. Поддержка фото, видео и аудио. Цена $0.0020/запрос — самая низкая среди моделей с vision. Подходит для чтения документации, сверки UI со спецификациями, визуального контроля качества. Для отладки через скриншоты ошибок не оптимальна: кодинг не основной фокус модели, лимит выхода 8K токенов на ряде провайдеров.
MiMo-V2.5-Pro — надёжный резерв после окончания акции MiniMax M3
1.02T параметров, 42B активных. SWE-bench Verified 78.9%, SWE-bench Pro 57.2%, Terminal-Bench 2.0 68.4. Та же цена запроса, что у DeepSeek V4 Pro ($0.0061), но с подтверждённым vision на уровне Claude Sonnet и расходом на 40–60% меньше токенов на траекторию. Цена стабильна, без зависимости от акции.
Claude Sonnet 4.6 и Opus 4.8 — потолок качества
Sonnet 4.6 (~79.6% SWE-bench Verified) стоит $0.0600 за запрос. Vision интегрирован нативно в reasoning-конвейер: при передаче скриншота ошибки вместе с кодом модель корректно определяет корневую причину, а не применяет поверхностную правку. Opus 4.8 (~88.6% Verified, 69.2% Pro, $0.1000/запрос) оправдан для координационных задач, где другие модели зацикливаются.
Рекомендуемые связки для OpenCode
Распределение по задачам с готовыми моделями:
Основной кодинг (текст):deepseek/deepseek-v4-pro — $0.0061/запрос
Простые правки, тесты, чтение файлов:deepseek/deepseek-v4-flash с отключённым thinking — $0.0013/запрос
Скриншот ошибки → отладка (пока действует акция):minimax/minimax-m3 с закреплённым провайдером — $0.0054/запрос
Скриншот ошибки → отладка (после акции, приоритет GUI):qwen/qwen3.7-plus — $0.0058/запрос
Скриншот ошибки → отладка (после акции, единая модель):xiaomi/mimo-v2.5-pro — $0.0061/запрос
Альтернатива DeepSeek для текстового кодинга:z-ai/glm-5.2 — лучший open-weight кодер по независимому Intelligence Index (51), реализованная цена ~$0.447/$3.31 за 1M. Vision не поддерживает — только текст.
Сводная конфигурация opencode.json с рабочей текстовой моделью и закреплённой vision-моделью:
Обвязка важнее модели. На Terminal-Bench 2.0 один LLM может колебаться на 30–50 пунктов в зависимости от обвязки агента.
Цены и провайдеры меняются. Акция MiniMax M3 — без объявленной даты окончания. Список провайдеров, отдающих vision, у модели тоже плавает — закреплённого стоит периодически перепроверять.
MiMo-V2.5 и MiniMax M3 — свежие модели. Инфраструктура хостинга вне Китая ещё созревает; совместимость vision в агентных фреймворках требует проверки тестом на «случайное число».
Заключение
Оптимальная стратегия для агентного кодинга в OpenCode строится на трёх уровнях: DeepSeek V4 Flash ($0.0013/запрос) для рутины, DeepSeek V4 Pro ($0.0061/запрос) как основная текстовая модель и vision-модель под текущую ситуацию — MiniMax M3 ($0.0054) пока действует акция, затем Qwen3.7 Plus ($0.0058) для GUI-отладки или MiMo-V2.5-Pro ($0.0061) как единая стабильная модель, с эскалацией на Claude Sonnet 4.6 ($0.0600) там, где нужен глубокий анализ корневых причин. Но выбор модели — только половина дела: «✅ Vision» не гарантирует, что скриншот доедет, поэтому закрепление провайдера через allow_fallbacks: false, проверка формата передачи, client_max_body_size на nginx и тест на «случайное число» перед сессией — те четыре шага, что отделяют модель, которая видит картинки в спецификации, от модели, которая видит их в OpenCode.