Заголовок: Практическое руководство по GLM-5.3: постоянное мышление, три уровня усилия и матрица поддержки API
Описание: Руководство по 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 ID модели:coding-glm-5.3(сейчас это route предварительного доступа с ограниченным сроком), модель доступна через API Chat Completions, Responses и Messages, совместимый с Claude. См. также: официальный релиз-блог 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 | Та же базовая модель, улучшенная за счёт постобучения: значительно лучшая производительность в программировании и длинных агентных задачах, а также новые возможности в области кибербезопасности |
| ID модели в AIHubMix | coding-glm-5.3 (route предварительного доступа с ограниченным сроком; мы сообщим, как только официальный коммерческий 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 токенов рассуждений для одного и того же арифметического вопроса.
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). Ограничения со стороны провайдера: до 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; провайдер не перечисляет режим 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 |
❗ не перечислено у провайдера, встройте схему в промпт | ❗ так же, как слева | ❗ так же, как слева |
| Автоматический учёт кэша | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ поле присутствует (попадание в этом раунде не воспроизведено) |
| Валидация максимального вывода | ✅ 400 с диапазоном [1,131072] | — | — |
| Валидация параметров сэмплирования вне диапазона | ❗ молчаливый 200 | ❗ молчаливый 200 | ✅ 400 с диапазоном [0,1] |
FAQ
Какой 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 Schema в промпт и проверяйте результат на стороне клиента.
Является ли coding-glm-5.3 производственным релизом?
Сейчас это маршрут предварительного доступа с ограниченным сроком (в документации Z.ai к API модели официальный API помечен как «скоро»). AIHubMix сообщит об обновлении, как только коммерческий API станет доступен. Актуальные цены и статус см. на странице модели.
Актуальные цены и статус в реальном времени см. на странице модели GLM-5.3; больше моделей можно найти в галерее моделей.



