Главная / Статьи

Тестирование GLM 5.2 внутри Claude Code с использованием реального SDK за пять долларов.

Эксперимент с OpenRouter стоимостью пять долларов: маршрутизация Claude Code к GLM 5.2, аудит и изменение SDK React Native, стоимость каждого задания и где заканчиваются экономии.

Издатель: REACTAPP.TOP8 мин чтения1756 слов

Источники: I ran GLM 5.2 on my React Native SDK for five dollars

Постоянное повышение стоимости сервиса Claude Code — весомая причина искать более дешевый инструмент. Обычно в качестве альтернативы рассматривается GLM 5.2 — модель от китайской лаборатории с открытым исходным кодом, которую постоянно хвалят в тестовых отчетах. Вместо того чтобы читать еще больше таких отчетов, один разработчик потратил пять долларов на OpenRouter и применил эту модель к реальному кодовому базису — генеративному SDK интерфейса, созданному для React Native, тщательно проверив каждую строку кода, которую она выдала. Аудит обошелся в 59 центов, а сборка — в четыре доллара. Детали этого эксперимента стоят внимания, включая почти ошибку относительно того, какой код следует отправлять на хостинговую модель.

Зачем вообще его тестировать

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

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

Настройка оказалась проще, чем ожидалось

GLM 5.2 разработан компанией Z.ai. Он появился в середине июня, имеет окно контекста объемом в миллион токенов и часто описывается как модель для программирования высокого уровня по значительно более низкой цене. Официальные данные подтверждают этот интерес к нему. В рейтинге Design Arena от OpenRouter он входит в топ-1 процента инструментов для работы с кодом, сформированный на основе 3 243 соревнований. Однако это всё равно чужой критерий оценки, а критерии оценки — это код других людей.

Claude Code не обращает внимания на то, что стоит у него за спиной. Он использует формат API Anthropic и считывает две переменные среды, чтобы определить, куда направлять запросы. Если направить их на другой конечный пункт, инструмент будет продолжать работать: тот же агент, редактирование файлов и выполнение тестов, но уже с другим «мозгом» в качестве движущей силы.

OpenRouter выступал в роли конечной точки. Одна учетная запись и один API-ключ могут быть использованы для работы с десятками провайдеров, включая Z.ai, поэтому не было необходимости устанавливать отдельные отношения оплаты с зарубежной лабораторией лишь для проведения одного эксперимента. Небольшая сумма денег на счету даёт доступ ко всем моделям с помощью одного ключа. Процесс включает три шага.

Создание ключа. Создайте API-ключ на OpenRouter и добавьте небольшую сумму кредита. У GLM 5.2 нет бесплатного тарифа, однако кредит хватает на долгое время: весь эксперимент можно было провести, потратив всего пять долларов, и ещё оставалось средство. Поле лимита кредита на ключе служит страховкой; в данном случае он составлял фиксированный лимит в пять долларов. После завершения эксперимента на панели управления было отображено, что из этого лимита было потрачено 4,59 доллара, что покрывает всё, описанное ниже.

Направьте Claude Code на него. Для этого достаточно нескольких настроек: базовый URL указывается на API OpenRouter, токен авторизации — это ключ OpenRouter, а значения по умолчанию для моделей Opus и Sonnet устанавливаются как идентификатор GLM 5.2.

ANTHROPIC_BASE_URL = https://openrouter.ai/api
ANTHROPIC_AUTH_TOKEN = your_openrouter_key
ANTHROPIC_DEFAULT_OPUS_MODEL = z-ai/glm-5.2
ANTHROPIC_DEFAULT_SONNET_MODEL = z-ai/glm-5.2
ANTHROPIC_DEFAULT_HAIKU_MODEL = z-ai/glm-4.5-air

После настройки для запуска Claude Code достаточно начать общение с GLM. Чтобы вернуться к использованию Claude, нужно лишь удалить соответствующие строки — вот и вся процедура смены.

Фиксация поставщика. Большинство людей пропускают этот шаг, хотя он имеет большое значение. В OpenRouter одно название модели может обслуживаться множеством компаний, причем цены сильно различаются — от менее чем одного доллара за миллион токенов до более трех долларов. Такая разница не случайна. Некоторые хосты используют квантизированные версии модели, которые меньше по размеру, быстрее в работе, но заметно хуже по качеству; по этой причине вкладка «Поставщики» даже включает фильтр квантизации. Если оставить режим автоматического выбора хоста, запрос может попасть к одному из таких хостов, и тестер окажется оценивающим сжатую копию, думая, что это оригинал.

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

Почти ошибка: не весь код можно делиться

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

Прежде чем что-либо запустить, была создана чистая копия. В неё вошли только те элементы, которые должны были отображаться, а именно пакет SDK и примерное приложение с его бэкендом-агентом, в то время как коммерческий код остался на диске самого разработчика. Затем последовала скучная, но важная проверка: в копии искались слова, которые могли бы выдать секреты игры, такие как «онбординг», «оплата», «tenant» и «stripe», и результатом стало нулевое количество совпадений до того, как хотя бы один токен покинул устройство.

Именно этот подход является настоящим уроком. Дешевая модель не меняет правил: публичный код может быть размещен в хостинговом API, а приватный код остается локально или вообще не используется. Тот же принцип побудил разработчика выбрать более дорогую, но соответствующую стандартам ЕС модель для бэкенда клиента, и он остается актуальным даже тогда, когда эксперимент проводится лишь в ради развлечения.

Задание первое: прочитайте SDK и определите, где он дает сбои

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

Модель прочитала сорок один файл и предоставила отчёт, в котором были выявлены три реальных проблемы, о которых разработчик уже знал:

  • Типы компонентов закрепляются в пакете при запуске приложения, поэтому агент не может определить новый компонент во время выполнения, а именно этого требует следующая функция.
  • Функция потоковой передачи данных бесполезна на основном пути агента, поскольку соответствующий адаптер так и не получил реализацию метода потоковой передачи.
  • Была проигнорирована ошибка с дрифтом: SDK может отрисовывать тринадцать компонентов, но сервер разрешает только одиннадцать и сообщает модели о семи, в результате чего два совершенно рабочих компонента остаются недоступными через агента.
  • Ничего из этого не было принято на веру. Каждая цитата проверялась с помощью grep против кода, и все оказалось верным. Пути к файлам и номера строк были правильными, и модель не выдумала ни одной функции. Она даже обнаружила то, что никто не отметил: комментарий в бэкенде, гордо заявляющий о использовании самых новых моделей Claude, расположенный прямо над кодом, который на самом деле использует более дешевую модель OpenAI. Устаревший комментарий превратился в небольшую ложь. Это было точное обнаружение со стороны модели, которую разработчик собирался проигнорировать.

    Аудит стоил 59 центов и занял шесть минут.

    Задание два: изменить код

    При чтении каждая модель кажется умной, поэтому следующим шагом стало предоставление ей возможности работать с кодом. В ходе собственной проверки она получила самое серьезное требование к улучшению: окончательно прекратить отклонения компонентов. SDK должно было стать единственным источником истины; на его основе будет генерироваться манифест, а сервер будет читать этот манифест вместо вручную введенного списка, чтобы оба источника больше никогда не расходились. Если это произойдет, тест обязан будет сработать неверно.

    Модель выполнила все этапы. Из SDK был сгенерирован манифест, сервер был перенастроен для его использования, два ранее неисправных компонента превратились в полноценные встроенные элементы и наконец стали доступными, к тому же был добавлен тест на выявление отклонений. Сам тестировщик запустил весь набор тестов — 92 из них прошли: первоначальные 87 остались без изменений, плюс ещё 5 новых. Затем была сделана целенаправленная попытка нарушить работу системы: вручную был удалён один из компонентов из манифеста, после чего снова запущен тест. Он сразу же дал сигнал об ошибке в нужном месте. Система безопасности действительно сработала эффективно.

    По пути модель также столкнулась с надоедливой проблемой инструментальной среды — синтаксической ошибкой в React Native, из-за которой запускатель тестов не мог загрузить определённые файлы. Она не скрыла проблему и не сдалась. Модель создала небольшое решение и задокументировала эту проблему в отчёте как предупреждение; такая честность ценнее, чем идеально выглядящий результат.

    Ловушка

    Стоимость сборки составила четыре доллара против 59 центов при чтении, и именно эту разницу скрывают рекламные видео. При чтении GLM однозначно победил: он был примерно в десять раз дешевле обычной конфигурации и в три раза быстрее. При сборке он тоже справился, но большая часть четырех долларов ушла на выполнение тестового цикла — серии операций «запустить, прочитать ошибку, внести изменения и запустить снова», повторяемых примерно триста раз. Лишь около тридцати из этих шагов касались реальных изменений в коде. Остальное требовало физических усилий.

    Следовательно, вывод более узок, чем «GLM заменяет существующую систему». Для чтения, анализа, аудита и объяснения кодовой базы, когда модель тщательно обдумывает задачу и выдает ответ, GLM 5.2 — это действительно выгодный вариант, за который стоит специально выбирать его. В случае длительной работы без присмотра, когда расходы растут из-за бесконечных циклов отладки, он всё равно справляется, но экономия сокращается, и снова возникает необходимость в передовой модели.

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

    Применение в повседневной работе

    В зависимости от кода существуют два подхода.

    Для всего публичного конфигурация OpenRouter хранится в прокомментированном блоке внутри настроек Claude Code. Чтобы получить недорогую вторую точку зрения на репозиторий с открытым исходным кодом, изучить архитектуру или задать вопрос вроде «в чём здесь проблема», удалите комментарии, укажите провайдера как Z.ai и позвольте GLM выполнить тяжёлую обработку за копейки. Claude остаётся стандартным выбором при разработке.

    Для всего приватного модель попадает в код, а не наоборот. Это означает, что либо используются локальные веса, либо ничего.

    Связанные статьи

  • Почему разработка фронтенда становится сложной после React: состояние, эффекты, границы и инструменты ИИ — React сделал создание интерфейсов проще в реализации, но не в проектировании. Настоящая работа над фронтендом заключается в определении местоположения состояния, управлении запутанными эффектами, соблюдении системных границ и работе с кодом, сгенерированным ИИ.