Тестування GLM 5.2 у Claude Code за допомогою справжнього SDK за п’ять доларів.
Експеримент з OpenRouter вартістю п’ять доларів: маршрутизація Claude Code до GLM 5.2, аудит та зміна SDK React Native, скільки коштувала кожна завдання та де закінчується економія.
Джерела: 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 та приклад додатку з його бекендом-агентом, тоді як комерційний код залишився на власному диску розробника. Потім відбулася нудна, але важлива перевірка: у копії шукали слова, які могли б розкрити секрети гри, такі як onboarding, billing, tenant та stripe, і результатом стало нуль знахідок ще до того, як хоча б один токен покинув пристрій.
Саме ця звичка є справжнім уроком. Дешева модель не змінює правил: публічний код може потрапити до хостованої API, а приватний код залишається локально або взагалі не використовується. Такий самий підхід колись спонукав розробника обрати дорожчу, але безпечну для ЄС модель для бекенду клієнта, і він так само ефективний, навіть коли експеримент проводиться лише для розваги.
Перше завдання: прочитати SDK та вказати, де він не працює
Перша робота була суто тестом на читання. Від GLM вимагали провести аудит архітектури так, ніби мали створити нове покоління інструментів на її основі: знайти критичні елементи, назвати файли та визначити, що першим пошкодиться. Найважливішим було одне правило — кожне твердження мусило посилатися на конкретний файл та рядок, а невизначеність слід було визнати, а не приховувати вигадками.
Модель прочитала сорок один файл та надала звіт про аудит, у якому було виявлено три реальні проблеми, про які розробник вже знав:
- Типи компонентів закріплюються у пакеті під час запуску додатку, тому агент не може створити новий компонент під час роботи, що саме потрібно для наступної функції.
- Функція потокового передавання безшумно нічого не робить на основному шляху агента, оскільки відповідний адаптер так і не отримав реалізованого методу потокового передавання.
Нічого з цього не було прийнято на віру. Кожне посилання перевірялося за допомогою grep у коді, і вони виявилися правильними. Шляхи до файлів та номери рядків були точними, і модель не вигадала жодної функції. Вона навіть виявила те, що ніхто не позначив: коментар у бекенді, який з гордістю стверджував, що використовує найновіші моделі Claude, розташований прямо над кодом, який насправді використовує дешевшу модель OpenAI. Старий коментар перетворився на невелику брехню. Це чудове виявлення з боку моделі, яку розробник був готовий проігнорувати.
Аудит коштував 59 центів та тривав шість хвилин.
Завдання два: змінити код
Під час читання кожна модель виглядає розумною, тому наступним кроком було дати їй можливість працювати з кодом. Вона отримала найскладніше завдання в рамках власної перевірки – остаточно покласти край змінам компонентів. SDK мав стати єдиним джерелом істини; з нього мав генеруватися маніфест, а сервер мав читати саме цей маніфест замість ручно введеного списку, щоб обидва елементи більше ніколи не відрізнялися. Якщо вони все ж таки почнуть відрізнятися, тест мав зазнати невдачі.
Модель виконала всі завдання. З SDK було створено маніфест, сервер було налаштовано на його використання, два компоненти, які раніше не функціонували, стали справжніми вбудованими елементами та нарешті стали доступними, а також було додано тест на виявлення відхилень. Власні тести розробника показали 92 пройдені тести: початкові 87 без змін плюс ще 5 нових. Потім була спроба навмисно зламати систему — видалення компонента з маніфесту вручну та повторний запуск тесту. Це провалилося, але саме там, де потрібно. Система безпеки справді була ефективною.
По дорозі модель також натрапила на проблему з інструментальною сумішшю — синтаксичну проблему React Native, яка заважала тестувальному засобу завантажувати певні файли. Вона не приховувала проблему та не здавалася. Вона створила невеликий обхідний шлях та задокументувала цю проблему у своєму звіті як застереження; така чесність цінується більше, ніж ідеальний результат.
Підводні камені
Процес створення коштував чотири долари проти 59 центів для процедури читання, і саме цю різницю ігнорують рекламні відео. Під час читання GLM безумовно виявився кращим варіантом: приблизно в десять разів дешевшим за звичайну конфігурацію та в три рази швидшим. При створенні він також справився з завданням, але більша частина чотирьох доларів пішла на безкінечні тести — цикл, що складався з запуску, читання помилки, її виправлення та повторного запуску, який повторювався близько трьохсот разів. Лише близько тридцяти з цих кроків стосувалися справжніх змін у коді. Решта — це просто витривалість.
Отже, висновок є вужчим, ніж «GLM замінює існуючу систему». Для читання, перегляду, аудиту та пояснення кодової бази, коли модель ретельно обмірковує ситуацію та надає відповідь, GLM 5.2 є справжньою вигодою та вартою свого вибору. Для тривалої роботи без нагляду, коли витрати зростають через цикли виправлення помилок, він все одно підходить, проте економія зменшується, і знову виникає потреба у передовій моделі.
Одного дня після обіду п’ять доларів та знайомий код дали чітку відповідь, чого ніколи не змогли б зробити навіть найрізноманітніші дані, що зробило це найдешевшим дослідженням місяця.
Його щоденне використання
Залежно від коду існують два підходи.
Для всього публічного конфігурація OpenRouter зберігається у прокоментованому блоку всередині налаштувань Claude Code. Щоб отримати недорогу додаткову думку щодо репозиторію з відкритим кодом, аналізу архітектури чи відповіді на запитання „що тут не так“, видаліть коментарі, встановіть провайдера як Z.ai та дозвольте GLM виконати складний аналіз за копійки. Claude залишається стандартним варіантом під час створення проекту.
Для всього приватного модель потрапляє у код, а не навпаки. Це означає, що можливі лише локальні ваги або їх відсутність.
Пов’язані матеріали
- Зниження витрат на токени RAG на 67% за допомогою Qdrant Multivectors та Sentence Isolation — це підхід для правового аналізу, який переранжує дані за допомогою ColBERT усередині Qdrant, ізолює відповідні речення та за рахунок певної затримки досягає зниження витрат на токени на 67,1%.