Назва: GLM-5.3 Практичний посібник: Завжди активне мислення, три рівні зусиль та матриця підтримки API
Опис: Посібник GLM-5.3 серпня 2026 року: завжди активне мислення з трьома рівнями зусиль, підсумки міркувань, паралельні виклики інструментів, структурований вихід та автоматичне кешування — з перевіреними прикладами AIHubMix Chat / Responses / Messages.
Ця стаття охоплює основні зміни API та примітки щодо використання для GLM-5.3. GLM-5.3 є флагманською моделлю Z.ai, випущеною 2026-08-14 — вона використовує точно таку ж базову модель, як GLM-5.2, з усіма перевагами, отриманими після навчання. На AIHubMix ID моделі —coding-glm-5.3(в даний час обмежений попередній перегляд), доступний через API Chat Completions, Responses та Messages, сумісні з Claude. Дивіться також: офіційний блог випуску Z.ai.
Висновки та приклади відповідей у кожному розділі отримані з фактичних викликів, зроблених 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 | Та сама базова модель, оновлена через після навчання: значно краща продуктивність кодування та виконання завдань на довгий термін, плюс нові кіберздатності |
| ID моделі 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:
thinking.typeбільше не підтримуєdisabled— мислення не може бути вимкнене. Офіційна порада щодо міграції: програми, які раніше надсилали{"type": "disabled"}, повинні перейти на{"type": "enabled"}і встановитиreasoning_effortна"low".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 токенів міркування на одному й тому ж арифметичному запитанні).
Чат Завершення
Вміст мислення повертається в полі 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, за замовчуванням max
extra_body={"thinking": {"type": "enabled"}},
messages=[
{"role": "user", "content": "Обчисліть квадратний корінь з (17*23-19*11), округлений до цілого. Тільки цифри."}
],
)
print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content) # Спостережено: "13"
Перевірено:usage.completion_tokens_details.reasoning_tokensповідомляє про використання мислення — 27 зreasoning_effort="low", 39 з"max"на одному й тому ж запитанні.
Відповіді
Вміст мислення повертається як елемент виходу 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="Яка столиця Франції? Тільки назва міста.",
)
# Спостережені типи response.output: ["reasoning", "message"]
# елемент reasoning: {"type": "reasoning", "summary": [{"type": "summary_text", "text": "Користувач запитує..."}]}
# usage.output_tokens_details.reasoning_tokens: 80
Перевірено: стандартний запит (без параметраreasoning) вже включає елементreasoningзsummary_text— явна згода не потрібна.
Повідомлення
Вміст мислення повертається як рідні блоки 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": "Яка столиця Франції? Тільки назва міста."}
],
)
# Спостережені типи response.content: ["thinking", "text"]
Перевірено: блоки мислення повертаються за замовчуванням; thinking: {"type": "disabled"} на цьому API також повертає 200, при цьому мислення все ще відбувається (відповідає офіційній семантиці "вимкнення перетворюється на низький, запит триває").3. Виклики інструментів та паралельні інструменти
Виклики функцій підтверджено на всіх трьох API; на API Responses ми також спостерігали паралельні виклики інструментів в одному запиті (Z.ai явно оголошує supports_parallel_tool_calls: true для GLM-5.3). Верхні обмеження: до 128 функцій у tools; tool_choice нативно підтримує тільки auto.
Чат Завершення
completion = client.chat.completions.create(
model="coding-glm-5.3",
messages=[{"role": "user", "content": "Яка погода в Пекіні сьогодні?"}],
tools=[{
"type": "function",
"function": {
"name": "get_weather",
"description": "Отримати погоду для міста",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
},
}],
)
# Спостережено: причина завершення "tool_calls", з викликом get_weather у tool_calls
Перевірено: tool_choice: "none" працює — те ж питання про погоду повертає простий текст без виклику інструменту.Відповіді
response = client.responses.create(
model="coding-glm-5.3",
input="Перевірте погоду сьогодні в Шанхаї та Пекіні",
parallel_tool_calls=True,
tools=[{
"type": "function",
"name": "get_weather",
"description": "Отримати погоду для міста",
"parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
)
# Спостережено: один запит повертає 2 паралельні елементи output function_call (по одному для кожного міста)
Перевірено: 2 паралельні виклики інструментів в одному запиті, що відповідає офіційній декларації supports_parallel_tool_calls: true.Повідомлення
response = client.messages.create(
model="coding-glm-5.3",
max_tokens=4096,
tools=[{
"name": "get_weather",
"description": "Отримати погоду для міста",
"input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
}],
messages=[{"role": "user", "content": "Яка погода в Пекіні сьогодні?"}],
)
# Спостережено: причина зупинки "tool_use"; вміст містить блок tool_use
❗ Перевірено: на цьому API модель все ще виконує виклики інструментів післяtool_choice: {"type": "none"}— щоб вимкнути інструменти, повністю видаліть параметрtools, або використовуйтеtool_choice: "none"на API Chat Completions замість цього.
4. Структурований вихід
response_format підтримує text та json_object; верхній рівень не вказує режим json_schema. Коли вам потрібна сувора відповідність схемі, вбудуйте JSON-схему в запит і перевірте на стороні клієнта.
Чат Завершення
completion = client.chat.completions.create(
model="coding-glm-5.3",
messages=[
{"role": "user", "content": "Яка столиця Франції? Відповідь у JSON з ключем \"answer\"."}
],
response_format={"type": "json_object"},
)
# Спостережений вміст відповіді: {"answer": "Париж"}
Перевірено: вихід є дійсним JSON, що містить запитуваний ключ.
Відповіді
response = client.responses.create(
model="coding-glm-5.3",
input="Яка столиця Франції? Відповідь у JSON з ключем \"answer\".",
text={"format": {"type": "json_object"}},
)
# Спостережений вихідний текст: {"answer": "Париж"}
Повідомлення
# Вкажіть структуру JSON у запиті; спостережений вихід є дійсним JSON
response = client.messages.create(
model="coding-glm-5.3",
max_tokens=4096,
messages=[
{"role": "user", "content": "Яка столиця Франції? Відповідь у JSON з ключем \"answer\"."}
],
)
# Спостережений текст відповіді: {"answer": "Париж"}
5. Автоматичне кешування контексту
Імпліцитне кешування увімкнено за замовчуванням без параметрів для передачі; повторні довгі префікси повідомляють про кешування в використанні (ім'я поля варіюється в залежності від API).
Чат Завершення
# використання другого виклику з ідентичним довгим префіксом
"prompt_tokens_details": {"cached_tokens": 960}
Перевірено: другий з двох послідовних викликів потрапив на 960 кешованих токенів.
Відповіді
# використання другого виклику з ідентичним довгим префіксом
"input_tokens_details": {"cached_tokens": 960}
Повідомлення
# кешування повідомляється через usage.cache_read_input_tokens
"cache_read_input_tokens": 0
Перевірено: ми не відтворили кешування на цьому API в цьому раунді (кеші нагріваються за каналом; перемикання балансувальника навантаження може викликати пропуск). Поле обліку кешу відповідає семантиці Anthropic.
6. Вибірка та перевірка параметрів
Вибірка слідує конвенціям кінцевих точок сімейства GLM: діапазон temperature [0, 1] з за замовчуванням 1.0 (зауважте — вужче, ніж протокол OpenAI [0, 2]); діапазон top_p [0.01, 1] з за замовчуванням 0.95. Z.ai рекомендує налаштовувати лише один з двох параметрів.
Перевірено: перевірка параметрів відрізняється між API — API Повідомлень відхиляє значенняtemperature: 3з 400, що вказує дійсний діапазон[0,1], тоді як Chat Completions / Responses тихо приймають те ж значення за межами діапазону з 200. При міграції між API не покладайтеся на шлюз, щоб виявити значення вибірки за межами діапазону для вас.
# API Повідомлень з temperature=3 -> HTTP 400
"temperature parameter invalid: value must be within [0,1]"
7. Матриця підтримки можливостей × API
Кожна клітинка нижче була перевірена з реальними викликами через живі API AIHubMix 2026-08-14; клітинки показують написання параметра/поля для кожного API.
| Можливість | Чат Завершення | Відповіді | Повідомлення |
|---|---|---|---|
| Основне генерування / потокове | ✅ | ✅ | ✅ |
| Вміст мислення | ✅ reasoning_content поле |
✅ reasoning елемент виходу (summary_text) |
✅ thinking блок вмісту |
| Інтенсивність мислення | ✅ reasoning_effort (low/high/max, за замовчуванням max) |
✅ те ж саме, що й ліворуч | ✅ прийнято з 200 |
| Вимкнути мислення | ❗ Неможливо: disabled повертає 200, і мислення триває (семантика перетворення на низький) |
➖ немає параметра перемикання | ❗ те ж саме, що й чат |
| Виклик функцій | ✅ | ✅ | ✅ |
| Паралельні виклики інструментів | — | ✅ 2 function_call елементи в одному запиті |
— |
| Вимкнути виклики інструментів | ✅ tool_choice: "none" працює |
✅ 200 (викликів не спостерігалося) | ❗ виклики все ще виробляються після {"type": "none"} |
| Структурований вихід (JSON режим) | ✅ response_format: json_object |
✅ text.format: json_object |
✅ через конвенцію запиту |
json_schema суворий режим |
❗ не вказано на верхньому рівні — вбудуйте схему в запит | ❗ те ж саме, що й ліворуч | ❗ те ж саме, що й ліворуч |
| Автоматичне облікування кешу | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ поле присутнє (кешування не відтворено в цьому раунді) |
| Перевірка максимального виходу | ✅ 400 з діапазоном [1,131072] | — | — |
| Перевірка вибірки за межами діапазону | ❗ тихий 200 | ❗ тихий 200 | ✅ 400 з діапазоном [0,1] |
Часті запитання
Який ID моделі GLM-5.3 на AIHubMix? Чи потрібен мені суфікс [1m]?
ID моделі — 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?
Та сама базова модель — всі переваги походять з після навчання (офіційна формулювання: "Вона використовує ту ж базову модель, що й GLM-5.2 — кожна перевага походить з після навчання"). Два серйозні зміни API: мислення більше не може бути вимкнене, а reasoning_effort звужується до трьох рівнів low/high/max (за замовчуванням max).
Що робити, якщо мені потрібен суворий структурований вихід json_schema?
Верхній рівень не вказує режим response_format: json_schema. У наших тестах режим JSON json_object дав дійсний JSON на всіх трьох API; для суворих схем вбудуйте JSON-схему в запит і перевірте на стороні клієнта.
Чи є coding-glm-5.3 виробничим випуском?
Це наразі обмежений попередній перегляд (документи API моделі Z.ai позначають офіційний API як "скоро"); AIHubMix повідомить, як тільки комерційний API буде запущено. Дивіться сторінку моделі для актуальних цін і статусу.
Для цін і статусу в реальному часі дивіться сторінку моделі GLM-5.3; для інших моделей відвідайте галерею моделей.




