Qwen3.6-35B пишет код вместо Claude: экономия вдвое — но с подвохом
Проводил сегодня интересный эксперимент. Всё то же техническое задание в файле, на создание markdown-редактора на Rust и GTK. Два разных подхода.
- Задание целиком выполняется с помощью Claude Code моделью Opus 5. Для этого Claude Code запустил отдельного субагента с новым контекстом для чистоты эксперимента.
- Задание выполняется связкой Opus 5 и локально запущенной модели Qwen3.6-35B-A3B. Здесь Opus 5 выступает как оркестратор и мозги, а всё написание кода делегируется модели Qwen. Оркестратор — тоже отдельный субагент с чистым контекстом, чтобы условия у обоих подходов были одинаковые.
В ТЗ есть список критериев, которым приложение должно отвечать — интерфейсы, функционал, тесты, — плюс валидация внешними скриптами, которые проверяют работоспособность.
Во-первых, было интересно, справится ли связка двух моделей с заданием. Во-вторых, хотелось выяснить, будет ли разница в расходе токенов. Результаты довольно интересные.
Результаты
Справились оба.
| Только Opus 5 | Opus 5 + Qwen | |
|---|---|---|
| Приёмочные тесты | 27/27 | 27/27 |
| Проверки контракта | 13/13 | 13/13 |
| Проверки интерфейса | 7/7 | 7/7 |
| Выходных токенов Claude | 87 999 | 49 678 |
| Чтений кеша | 29 810 434 | 14 339 262 |
| Своих тестов | 157 | 63 |
| Строк кода | 5058 | 1972 |
| Необязательных пунктов ТЗ | 12 | 0 |
| Время | 39 мин | 80 мин |
По формальному критерию — ничья. По токенам связка дешевле в 1,77 раза по выводу и в 2,08 раза по чтению кеша, и это реальная экономия: локальная модель своих лимитов не тратит.
Но за вдвое меньшую цену я получил почти втрое меньше кода. Связка сделала ровно то, что я заказывал по этапам, — обязательное ядро, и ни шага дальше. Opus сам, без всяких указаний, доделал ещё двенадцать пунктов, помеченных в ТЗ как необязательные: подсветку синтаксиса, разделённый вид, темы, восстановление сессии, слежение за изменениями файла на диске, экспорт в HTML, режим одного экземпляра.
Экономия при этом в лимитах, а не в скорости: по времени связка вдвое медленнее.
Отдельное наблюдение, скорее про меня, чем про модели. Мои проверочные скрипты оказались слабее, чем я думал. Они смотрят, что окно открылось, что элементы управления есть и что нажатие их не роняет приложение. А главный сценарий — набрать текст и сохранить — не покрыт вообще. В прогоне со связкой Qwen выдала код, который скрипты пропускали, но изменения из редактора не доходили до модели документа: «Сохранить» писало пустоту. Оркестратор нашёл это чтением кода, а не запуском скриптов, и отправил на исправление.
Выводы
Делегировать локальной модели стоит, если нужен ровно оговорённый результат и ты готов сам нарезать задачу на этапы и проверять каждый. Лимиты это экономит почти вдвое.
Оркестратор при этом обязан работать из свежего контекста. У меня был и третий прогон, где я управлял Qwen прямо из длинной рабочей сессии, — он съел втрое больше только на том, что каждый ход перечитывал накопленную историю. Всю выгоду это сожрало.
Но платишь за экономию инициативой. Связка закрывает список требований, а не делает продукт. Если нужно второе — дешевле не делегировать.