GLM-5.3 Hands-on Guide: Always-on Thinking, Three Effort Levels, and the API Support Matrix

Посібник зі використання GLM-5.3 на серпень 2026 року: завжди увімкнене мислення, три рівні reasoning_effort, підсумки міркувань, паралельні виклики інструментів, структурований вивід і автоматичне кешування — з перевіреними прикладами для API AIHubMix Chat, Responses і Messages.

AIHubMix7 хв читання
GLM-5.3 Hands-on Guide: Always-on Thinking, Three Effort Levels, and the API Support Matrix

Title: GLM-5.3 Hands-On Guide: Always-On Thinking, Three Effort Levels & API Support Matrix

Description: Посібник із GLM-5.3 на серпень 2026 року: завжди увімкнене мислення, три рівні reasoning_effort, підсумки міркувань, паралельні виклики інструментів, структурований вивід і автоматичне кешування — з перевіреними прикладами для AIHubMix Chat / Responses / Messages.


Ця стаття описує ключові зміни в API та особливості використання GLM-5.3. GLM-5.3 — флагманська модель Z.ai, випущена 2026-08-14; вона використовує ту саму базову модель, що й GLM-5.2, а всі покращення досягнуто за рахунок післятренування. На AIHubMix ідентифікатор моделі — coding-glm-5.3 (наразі маршрут попереднього перегляду з обмеженим часом), доступна через API Chat Completions, Responses та сумісний із Claude API Messages. Див. також: офіційний блог Z.ai про випуск.

Висновки «Verified» і зразки відповідей у кожному розділі отримано з реальних викликів, виконаних 2026-08-14 через API AIHubMix (Chat Completions / Responses / Messages).

1. Технічні характеристики моделі

Параметр Значення
Контекстне вікно 1M токенів (точне офіційне значення: 1,048,576)
Максимальний вивід 128K (перевірена межа max_tokens: 131,072 — перевищення повертає 400)
Модальності вводу Текст
Мислення Завжди увімкнене, вимкнути не можна; reasoning_effort має три рівні — low / high / max, за замовчуванням max
Зв'язок з GLM-5.2 Та сама базова модель, покращена через післятренування: значно сильніші результати в кодуванні та довгих агентних завданнях, а також нові кіберможливості
Ідентифікатор моделі в AIHubMix coding-glm-5.3 (маршрут попереднього перегляду з обмеженим часом; ми оновимо статтю одразу після запуску офіційного комерційного API)
Перевірено: max_tokens: 999999 повертає 400 з вказаним у тілі помилки допустимим діапазоном — межа справді перевірена, а не мовчки обрізана.
# max_tokens=999999 -> HTTP 400
"max_tokens parameter invalid: value must be within [1,131072]"

2. GLM-5.3 проти GLM-5.2: завжди увімкнене мислення, інтенсивність через reasoning_effort

Параметр GLM-5.2 GLM-5.3
Базова модель — Ідентична 5.2 (усі покращення від післятренування)
thinking.type enabled / disabled — можна вимкнути enabled лише — вимкнути не можна
reasoning_effort Сумісність зі 7 значеннями (фактичні рівні: max/high) Три рівні low / high / max, за замовчуванням max
Позиціонування Універсальна флагманська модель Посилена для кодування та довгих агентних завдань, з новими кіберможливостями

Ось дві найважливіші зміни API у GLM-5.3 порівняно з GLM-5.2:

  1. thinking.type більше не підтримує disabled — мислення не можна вимкнути. Офіційна порада щодо міграції: застосунки, які раніше надсилали {"type": "disabled"}, мають перейти на {"type": "enabled"} і встановити reasoning_effort у "low".
  2. reasoning_effort звужено до трьох рівнів: low (легкий) / high (посилений) / max (глибокий, за замовчуванням). Сумісність зі 7 значеннями, що діяла в GLM-5.2, більше не застосовується; Z.ai рекомендує max для завдань з кодування.
Перевірено: надсилання thinking: {"type": "disabled"} через AIHubMix повертає 200, і мислення все одно відбувається (reasoning_content повертається як зазвичай) — значення автоматично перетворюється відповідно до офіційної семантики каналу, а не відхиляється. Якщо ваш клієнт покладався на «вимкнути мислення для економії токенів», перейдіть на reasoning_effort: "low".

Перевірено: значення поза переліком для reasoning_effort також повертають 200 без помилки (із переходом до значення за замовчуванням max згідно з офіційною документацією); low проти max показує очікувану тенденцію до легшого мислення (27 проти 39 токенів міркування для одного й того самого арифметичного питання).

Chat Completions

Вміст мислення повертається в полі reasoning_content; у потоковому режимі він надходить як delta.reasoning_content.

from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    reasoning_effort="max",          # low / high / max, default max
    extra_body={"thinking": {"type": "enabled"}},
    messages=[
        {"role": "user", "content": "Compute the square root of (17*23-19*11), rounded down. Digits only."}
    ],
)

print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content)   # Observed: "13"
Перевірено: usage.completion_tokens_details.reasoning_tokens показує витрати на мислення — 27 при reasoning_effort="low" і 39 при "max" для одного й того самого питання.

Responses

Вміст мислення повертається як елемент виводу reasoning, а текст у масиві summary має тип summary_text.

from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

response = client.responses.create(
    model="coding-glm-5.3",
    input="What is the capital of France? City name only.",
)

# Observed response.output item types: ["reasoning", "message"]
# reasoning item: {"type": "reasoning", "summary": [{"type": "summary_text", "text": "The user is asking..."}]}
# usage.output_tokens_details.reasoning_tokens: 80
Перевірено: стандартний запит (без параметра reasoning взагалі) вже містить елемент reasoning з summary_text — явне ввімкнення не потрібне.

Messages

Вміст мислення повертається як нативні блоки вмісту thinking.

from anthropic import Anthropic

client = Anthropic(
    api_key="<AIHUBMIX_API_KEY>",
    base_url="https://aihubmix.com"
)

response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "What is the capital of France? City name only."}
    ],
)

# Observed response.content block types: ["thinking", "text"]
Перевірено: блоки thinking повертаються за замовчуванням; thinking: {"type": "disabled"} у цьому API так само повертає 200, а мислення триває (узгоджується з офіційною семантикою «disabled перетворюється на low, запит продовжується»).

3. Виклики інструментів і паралельні інструменти

Виклики функцій перевірено як працюючі в усіх трьох API; у Responses API ми також спостерігали паралельні виклики інструментів в одному ході (Z.ai прямо оголошує supports_parallel_tool_calls: true для GLM-5.3). Обмеження з боку upstream: до 128 функцій у tools; tool_choice нативно підтримує лише auto.

Chat Completions

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    messages=[{"role": "user", "content": "What's the weather in Beijing today?"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get weather for a city",
            "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
        },
    }],
)

# Observed: finish_reason "tool_calls", with a get_weather call in tool_calls
Перевірено: tool_choice: "none" працює — на те саме питання про погоду повертається звичайний текст без виклику інструмента.

Responses

response = client.responses.create(
    model="coding-glm-5.3",
    input="Check today's weather in Shanghai and Beijing",
    parallel_tool_calls=True,
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Get weather for a city",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
)

# Observed: a single turn returns 2 parallel function_call output items (one for each city)
Перевірено: 2 паралельні виклики інструментів в одному ході, що відповідає офіційному оголошенню supports_parallel_tool_calls: true.

Messages

response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    tools=[{
        "name": "get_weather",
        "description": "Get weather for a city",
        "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    messages=[{"role": "user", "content": "What's the weather in Beijing today?"}],
)

# Observed: stop_reason "tool_use"; content contains a tool_use block
❗ Перевірено: у цьому API модель все ще створює виклики інструментів після tool_choice: {"type": "none"} — щоб вимкнути інструменти, повністю видаліть параметр tools або використовуйте tool_choice: "none" в API Chat Completions.

4. Структурований вивід

response_format підтримує text і json_object; upstream не вказує режиму json_schema. Якщо потрібна сувора відповідність схемі, вбудуйте JSON Schema в промпт і валідуйте на боці клієнта.

Chat Completions

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    messages=[
        {"role": "user", "content": "What is the capital of France? Answer in JSON with the key \"answer\"."}
    ],
    response_format={"type": "json_object"},
)

# Observed response content: {"answer": "Paris"}
Перевірено: вивід є коректним JSON із потрібним ключем.

Responses

response = client.responses.create(
    model="coding-glm-5.3",
    input="What is the capital of France? Answer in JSON with the key \"answer\".",
    text={"format": {"type": "json_object"}},
)

# Observed output text: {"answer": "Paris"}

Messages

# Specify the JSON structure in the prompt; observed output is valid JSON
response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "What is the capital of France? Answer in JSON with the key \"answer\"."}
    ],
)

# Observed response text: {"answer": "Paris"}

5. Кешування контексту працює автоматично

Неявне кешування увімкнено за замовчуванням, жодних параметрів передавати не потрібно; повторювані довгі префікси повідомляють про попадання в кеш у полі usage (назва поля залежить від API).

Chat Completions

# usage of the second call with an identical long prefix
"prompt_tokens_details": {"cached_tokens": 960}
Перевірено: другий із двох послідовних викликів отримав 960 токенів з кешу.

Responses

# usage of the second call with an identical long prefix
"input_tokens_details": {"cached_tokens": 960}

Messages

# hits are reported via usage.cache_read_input_tokens
"cache_read_input_tokens": 0
Перевірено: у цьому раунді попадання в кеш на цьому API відтворити не вдалося (кеші прогріваються окремо для кожного каналу; перемикання балансувальника може спричинити промах). Поле обліку попадань відповідає семантиці Anthropic.

6. Семплінг і валідація параметрів

Семплінг відповідає конвенціям ендпоінтів сімейства GLM: temperature у діапазоні [0, 1] зі значенням за замовчуванням 1.0 (зверніть увагу — вужче, ніж [0, 2] у протоколі OpenAI); top_p у діапазоні [0.01, 1] зі значенням за замовчуванням 0.95. Z.ai рекомендує змінювати лише один із двох параметрів.

Перевірено: валідація параметрів різниться між API — Messages API відхиляє поза діапазоном temperature: 3 з помилкою 400, у тілі якої вказано допустимий діапазон [0,1], тоді як Chat Completions / Responses мовчки приймають те саме значення поза діапазоном з відповіддю 200. Під час міграції між API не покладайтеся на шлюз, що він сам відловить некоректні значення семплінгу.
# Messages API with temperature=3 -> HTTP 400
"temperature parameter invalid: value must be within [0,1]"

7. Матриця підтримки можливостей за API

Кожну клітинку нижче перевірено реальними викликами через живі API AIHubMix 2026-08-14; у клітинках наведено написання параметра або поля для кожного API.

Можливість Chat Completions Responses Messages
Базова генерація / потокова передача ✅ ✅ ✅
Вміст мислення ✅ поле reasoning_content ✅ елемент виводу reasoning (summary_text) ✅ блок вмісту thinking
Інтенсивність мислення ✅ reasoning_effort (low/high/max, за замовчуванням max) ✅ так само, як зліва ✅ приймається з 200
Вимкнути мислення ❗ Неможливо: disabled повертає 200, а мислення триває (семантика перетворення на low) ➖ немає перемикача-параметра ❗ так само, як у Chat
Виклики функцій ✅ ✅ ✅
Паралельні виклики інструментів — ✅ 2 елементи function_call в одному ході —
Вимкнути виклики інструментів ✅ tool_choice: "none" працює ✅ 200 (викликів не спостерігалося) ❗ виклики все ще створюються після {"type": "none"}
Структурований вивід (режим JSON) ✅ response_format: json_object ✅ text.format: json_object ✅ через домовленість у промпті
Суворий режим json_schema ❗ не вказано в upstream — вбудуйте схему в промпт ❗ так само, як зліва ❗ так само, як зліва
Автоматичний облік кешу ✅ usage.prompt_tokens_details.cached_tokens ✅ usage.input_tokens_details.cached_tokens ✅ поле присутнє (попадання в цьому раунді не відтворено)
Валідація максимального виводу ✅ 400 з діапазоном [1,131072] — —
Валідація параметрів семплінгу поза діапазоном ❗ мовчазне 200 ❗ мовчазне 200 ✅ 400 з діапазоном [0,1]

FAQ

Який ідентифікатор моделі GLM-5.3 на AIHubMix? Чи потрібен суфікс [1m]?
Ідентифікатор моделі — coding-glm-5.3, використовуйте його без змін. glm-5.3[1m] — це синтаксис назви моделі Z.ai для клієнта Claude Code, який не стосується викликів AIHubMix; жодному з трьох API суфікс не потрібен.

Чи можна вимкнути мислення?
Ні. Мислення GLM-5.3 завжди увімкнене, а thinking.type підтримує лише enabled; у наших тестах надсилання disabled повертає 200, а мислення триває (перетворюється на рівень low відповідно до офіційної семантики). Щоб економити токени мислення, надішліть reasoning_effort: "low".

Який зв'язок між GLM-5.3 і GLM-5.2?
Та сама базова модель — усі покращення отримано за рахунок післятренування (офіційне формулювання: «It uses the same base model as GLM-5.2 — every gain comes from post-training»). Дві жорсткі зміни API: мислення більше не можна вимкнути, а reasoning_effort звужено до трьох рівнів low/high/max (за замовчуванням max).

Що робити, якщо потрібен суворий структурований вивід json_schema?
Upstream не вказує режиму response_format: json_schema. У наших тестах режим JSON json_object створював коректний JSON на всіх трьох API; для суворих схем вбудуйте JSON Schema в промпт і валідуйте на боці клієнта.

Чи є coding-glm-5.3 продуктовим релізом?
Наразі це обмежений у часі прев'ю-маршрут (документація API моделей Z.ai позначає офіційний API як "coming soon"); AIHubMix повідомить про оновлення, щойно комерційний API стане доступним. Актуальні ціни та статус дивіться на сторінці моделі.


Ціни та статус у реальному часі дивіться на сторінці моделі GLM-5.3; більше моделей — у галереї моделей.

Один шлюз до багатьох провайдерів ШІ. Створено для продакшену.

Перейти на AIHubMix