Слепой тест моделей

Четыре модели, один мерзкий баг. Быстрее всех оказалась не самая дорогая

Kimi, DeepSeek, Qwen и GLM получили одно задание. Мы засекли время, записали цену и прогнали ответы через тесты — без судейства по красивому объяснению.

Марина, редакция TokenTool9 минут
Четыре ремонтные машины едут чинить трещину в бумажном мосту, одна уже закончила работу, а одна застряла на старте

В пятницу вечером кэш решил, что ноль — это не значение, а ошибка воспитания. Потом перестал забывать упавшие запросы. В итоге один клиент получил старые данные, второй — лишний счёт, разработчик — планы на выходные.

Такой баг удобен для проверки кодовых моделей. Он маленький, но одной заменой строчки не лечится. Нужно увидеть несколько связанных проблем и не сломать внешний интерфейс. Ровно та работа, ради которой люди и вставляют модель в редактор.

01

Задание, на котором нельзя победить хорошим тоном

Мы дали моделям одну и ту же TypeScript-функцию. Она хранит ответы в памяти, объединяет параллельные запросы и должна удалять результат после заданного времени. В исходнике было сразу несколько неприятностей: пустые значения не кэшировались, завершённый запрос оставался «в работе», ошибка могла отравить следующий вызов, а нулевой TTL всё равно сохранял данные.

Полный код в статью не тащим. Смысл теста не в копировании функции, а в выборе модели. На входе у всех был одинаковый исходник и семь требований. На выходе принимался только готовый код без объяснений.

Красиво рассказать, как работает кэш, нельзя было. Нужно было его починить.

02

Никаких баллов за уверенный голос

Kimi, DeepSeek и GLM запускались одновременно в режиме сравнения TokenTool. Они не видели ответы друг друга. Qwen проверили отдельно тем же промптом: сначала Max, затем Flash. Каждый маршрут получил минуту на результат.

1

Два одновременных обращения запускают дорогую функцию один раз.

2

Ноль, false и пустая строка не выпадают из кэша.

3

После временного сбоя следующий запрос пробует снова.

4

Завершённый запрос исчезает из списка выполняющихся.

5

Протухшее значение не возвращается.

6

При нулевом TTL кэш действительно отключён.

7

Публичная сигнатура функции не изменилась.

Ответы трёх финишировавших моделей мы сохранили как есть, собрали TypeScript и прогнали локальным тестом. Все семь условий прошли. После этого спор о том, чей код выглядит солиднее, можно было закрыть.

03

Таблица, ради которой всё затевалось

Playground · один промпт

Время и итоговая цена из карточек результата

7 проверок

GLM 5.2

первый
время6,63 с
цена2,84 ₽
тест7 из 7

Самый быстрый и самый дешёвый правильный ответ.

Kimi K2.7 Code

время20,03 с
цена3,93 ₽
тест7 из 7

Тоже прошёл всё. Код короткий, без лишнего ремонта вокруг.

DeepSeek V4 Pro

время55,78 с
цена4,57 ₽
тест7 из 7

Правильно, но для этой задачи заметно медленнее и дороже.

Qwen 3.8 Max / Flash

время> 60 с
цена
тестнет ответа

Оба маршрута остановлены после минуты без результата.

GLM 5.2 закончил за 6,63 секунды и списал 2,84 ₽. Kimi понадобилось втрое больше времени и 3,93 ₽. DeepSeek тоже решил задачу, но думал почти минуту и стоил 4,57 ₽. Разница в несколько рублей сама по себе смешная. В агентном цикле, который делает сотни попыток, она уже приходит с калькулятором.

04

Qwen не проиграл тест. Он в него не пришёл

Qwen 3.8 Max не вернул результат за минуту. Мы остановили запрос, переключились на Qwen 3.8 Flash и получили то же самое. Итоговой цены интерфейс не показал.

Это не доказательство, что Qwen плохо пишет код. Причиной мог быть временный сбой маршрута, провайдера или конкретной версии. Но пользователь покупает не абстрактную способность модели. Он нажимает кнопку и ждёт ответ. Поэтому в этом прогоне Qwen получает честное «нет результата», а не утешительный балл за репутацию.

Через неделю тест может закончиться иначе. Так и должно быть. Каталоги меняются быстрее, чем статьи успевают покрыться пылью, поэтому название модели полезно проверять на своей задаче, а не высекать в граните.

05

Для этого бага победил GLM. Для вашего проекта нужен новый забег

Здесь выбор простой: три решения прошли одинаковые тесты, значит берём самое быстрое и дешёвое. GLM 5.2 выиграл без оговорок. Доплата за Kimi и DeepSeek в этой конкретной задаче ничего не купила.

Делать из одного теста мировой рейтинг было бы глупо. Добавьте работу с несколькими файлами, большой контекст или архитектурное решение — порядок может поменяться. Но сама методика останется: одинаковый вход, критерии до запуска, тесты после ответа и цена только за законченную работу.

Мелкий фикс

Сначала быстрый кандидат. Флагман подключается, если тест не прошёл.

Большой рефакторинг

Одинаковый срез репозитория, сборка и скрытые проверки. Красота объяснения не считается.

Агентный цикл

Считайте не один ответ, а все чтения, повторы и исправления до зелёного теста.

Рабочий маршрут

Повторите задачу несколько раз. Один удачный ответ ещё не надёжность.

Десять минут на свой тест

Возьмите баг из своего проекта. Чужой рейтинг вам его не починит.

В TokenTool выберите режим сравнения, поставьте две или три модели и отправьте им один исходник. До запуска запишите, что именно считается готовым. После ответа прогоните сборку и тесты, затем сравните время и итоговое списание в карточках.

Для нового проекта заведите отдельный ключ и лимит. Тогда эксперимент не съест баланс рабочего продукта, а расходы останутся в своих логах. Модель после теста меняется одной строкой — интеграцию и кассу переделывать не нужно.

Протокол

Тест проведён 15 сентября 2026 года в TokenTool Playground. Результаты относятся только к указанным версиям, одному заданию и состоянию маршрутов в момент запуска. Суммы — итоговая цена для пользователя, показанная интерфейсом TokenTool. Внутренние цены поставщиков и служебные данные не публикуются.