Сравнение 8 AI-моделей для TypeScript: реальная задача с /rename командой | AiManual
AiManual Logo Ai / Manual.
15 Мар 2026 Гайд

Сравнение 8 моделей для кодинга на реальном TypeScript-проекте: кто лучше интегрирует /rename команду

Практический тест 8 кодинговых моделей на проекте OpenCode. Смотрим, кто лучше пишет TypeScript код и интегрирует функционал. Результаты на 15.03.2026.

Когда синтетические бенчмарки врут, а реальный код бьет по башке

ELO-рейтинги и HumanEval — это красиво на бумаге. Пока не попробуешь заставить модель дописать команду в существующий, живьем дышащий проект. Теория разбивается о практику. Каждый раз.

Я взял OpenCode Telegram Bot — opensource бота на grammY для управления задачами через Телеграм. Проект на TypeScript, средняя сложность, пара десятков файлов. Задача: добавить команду /rename, которая меняет название существующей задачи. Звучит просто. На деле — нужно понять структуру бота, найти правильное место для хендлера, работать с базой данных, не сломать типы и существующую логику.

Именно такие задачи показывают, где модель реально понимает код, а где просто генерирует синтаксически правильный мусор.

Почему именно /rename? Это идеальный микс: нужно прочитать контекст (как уже работают команды /add, /list), понять схему БД, правильно вписать новую функцию в архитектуру. Не просто написать функцию «в вакууме».

Методология: как мы ломали модели (и свои нервы)

Никаких специально подготовленных промптов. Никаких подсказок по архитектуре. Только:

  • Исходный код проекта (репозиторий на GitHub).
  • Промпт: «Добавь команду /rename в этого Telegram бота. Команда должна принимать два аргумента: ID задачи и новое название. Нужно обновить запись в базе данных и подтвердить изменение пользователю. Используй существующую структуру проекта.»
  • Одна попытка. Без уточнений и доработок.
  • Оценка по четырем критериям: Работоспособность (запускается ли код), Интеграция (логично ли вписан в проект), Качество TypeScript (типы, ошибки, null safety), Безопасность (валидация input, обработка ошибок).

Все тесты проводились 12-14 марта 2026 года. Модели запускались локально (где возможно) или через официальные API с одинаковыми параметрами (temperature=0.1, max_tokens=4000).

Участники боя: кто вышел на ринг в 2026 году

Отобрал 8 моделей, которые либо доминируют в рейтингах, либо активно обсуждаются в коммьюнити. Все — самые свежие версии на момент теста.

Модель Версия (на 15.03.2026) Тип Контекст
DeepSeek Coder 3.2 Instruct Локальная / API 128K
Qwen3.5 Coder 72B Instruct Локальная 32K
GLM 4 4.7 Coder API 128K
Claude Code Claude 3.7 Sonnet Coder Облачный API 200K
MiniMax M2.1 Coder Specialized API 128K
Devstral Small 2 (обновление 2026) Локальная 64K
Qwen3 Coder Next 34B (январский релиз) Локальная 64K
IQuest-Coder V1-40B-Instruct (финальный патч) Локальная 32K

Да, Claude Code остался в облаке, но его до сих пор используют. Для локальных альтернатив смотрел на новые инструменты 2026 года. GLM 4.7 и MiniMax-M2.1 — прямые конкуренты из Азии, про которых много писали в прошлом году.

Результаты: кто прошел, а кто упал лицом в TypeScript компилятор

Модель Работоспособность Интеграция Качество TS Безопасность Итог
DeepSeek Coder 3.2 ✅ С первого раза Нашла правильный файл bot.ts, добавила хендлер рядом с другими командами Безупречные типы, использовала существующие интерфейсы Валидация ID, try-catch на запрос к БД 9.5/10
Qwen3.5 Coder 72B ✅ После исправления импорта Создала отдельный файл rename.ts, что нарушило структуру Не импортировала тип Task, пришлось править Нет проверки на существование задачи 7/10
GLM 4.7 Coder ⚠️ Ошибка рантайма Правильное место, но использовала устаревший метод grammY Использовала any для аргументов команды Инъекция через название (конкатенация строк в SQL) 5/10
Claude Code 3.7 ✅ Идеально Лучшая интеграция — даже добавила логгирование как в других хендлерах Типы perfect, создала вспомогательную функцию validateTaskId Полная валидация, escaping названия 9.8/10
MiniMax M2.1 ❌ Не скомпилировалось Переписала половину bot.ts, сломала существующие команды Синтаксические ошибки, несовместимые типы 3/10
Devstral Small 2 ✅ Стабильно Код рабочий, но стиль отличается от проекта Использовала unknown вместо конкретных типов Базовая обработка ошибок 7.5/10
Qwen3 Coder Next ✅ Быстро и правильно Хорошо вписала код, но пропустила middleware авторизации Отличные типы, async/await корректно Не проверила права пользователя на задачу 8/10
IQuest-Coder 40B ⚠️ Работает, но с багами Добавила команду, но хендлер срабатывает на любое сообщение Типы через as assertion, что опасно Нет валидации вообще 4.5/10

Разбор полетов: как модели облажались по-разному

1 Проблема с контекстом: GLM 4.7 и устаревший grammY

GLM 4.7 Coder использовала метод bot.command('rename', ...) который в grammY 2026 года уже deprecated. Вместо него нужно использовать bot.on('message:text', ...) с фильтрацией. Модель не знала о последних изменениях фреймворка. Это частая болезнь моделей, которые обучаются на датасетах полугодовой давности.

Вывод: всегда проверяйте, на каких данных обучена модель. Если в промпте не указать версию фреймворка, получите устаревший код. Лучшие модели (как DeepSeek 3.2) сами проверяют импорты в проекте и адаптируются.

2 Типобезопасность как индикатор интеллекта

MiniMax M2.1 и IQuest-Coder просто проигнорировали систему типов проекта. Первая использовала const id = ctx.match[1] без преобразования в число (хотя в БД ID — integer). Вторая написала const task = await db.get(taskId) as Task — опасный as, который подавляет проверку TypeScript.

Claude Code и DeepSeek Coder сделали правильно: const id = parseInt(ctx.match[1], 10); if (isNaN(id)) { return ctx.reply('Invalid ID'); }

3 Интеграция vs. Изоляция

Qwen3.5 Coder 72B создала новый файл commands/rename.ts. В теории — модульность. На практике — в проекте все команды были в одном файле bot.ts. Модель не поняла конвенцию проекта. Devstral Small 2 и Qwen3 Coder Next справились лучше, но пропустили middleware (проверка прав). Только Claude Code заметил, что другие команды используют authMiddleware, и добавил его.

Итоговый рейтинг и что брать в работу

  1. Claude Code 3.7 — безоговорочный лидер. Понимание контекста, безопасность, качество кода. Платишь за облако — получаешь идеальный код. Если бюджет есть, это выбор.
  2. DeepSeek Coder 3.2 — лучшая локальная модель. Почти догнала Claude, стоит дешевле, работает оффлайн. Для тех, кто ценит стабильность больше скорости.
  3. Qwen3 Coder Next — сюрприз года. Быстрая, умная, но иногда пропускает детали. Хороший баланс скорости и качества.
  4. Devstral Small 2 — надежный работяга. Не блещет, но и не подводит. Как универсальный конфиг — всегда пригодится.

Остальные — с оговорками. GLM 4.7 и MiniMax M2.1, несмотря на хайп, показали слабое понимание реальных проектов. IQuest-Coder, как и писалось ранее, действительно превратился в цифровую пыль.

💡
Главный урок: самая большая модель не гарантирует лучший код. Devstral Small 2 (7B параметров) обогнала Qwen3.5 (72B) в интеграции. Все упирается в обучение на качественных данных по реальным проектам, а не на синтетике. Смотрите не на размер, а на бенчмарки вроде APEX Testing, которые тестируют именно интеграцию.

Что делать прямо сейчас? Если нужен продакшен — бери DeepSeek Coder 3.2. Если экспериментируешь с агентами — смотри на Qwen3 Coder Next. И никогда не доверяй моделям безопасность кода на 100%. Проверяй вручную. Всегда.

Подписаться на канал