GLM-5.3 Практическое руководство: всегда активное мышление, три уровня усилий и матрица поддержки API

AIHubMix7 мин чтения
GLM-5.3 Практическое руководство: всегда активное мышление, три уровня усилий и матрица поддержки API

Название: 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 идентификатор модели — coding-glm-5.3 (в настоящее время это ограниченный предварительный доступ), доступный через API Chat Completions, Responses и совместимые с Claude Messages. Также смотрите: официальный блог выпуска 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 Та же базовая модель, обновленная за счет постобучения: значительно более высокая производительность в кодировании и долгосрочных задачах, а также новые киберспособности
Идентификатор модели 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, по умолчанию 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" по одному и тому же вопросу.

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="Какова столица Франции? Только название города.",
)

# Наблюдаемые типы response.output: ["reasoning", "message"]
# элемент reasoning: {"type": "reasoning", "summary": [{"type": "summary_text", "text": "Пользователь спрашивает..."}]}
# 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": "Какова столица Франции? Только название города."}
    ],
)

# Наблюдаемые типы 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.

Chat Completions

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"]},
        },
    }],
)

# Наблюдаемое: finish_reason "tool_calls", с вызовом get_weather в tool_calls
Проверено: tool_choice: "none" работает — тот же вопрос о погоде возвращает простой текст без вызова инструмента.

Responses

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 параллельных элемента вывода function_call (по одному для каждого города)
Проверено: 2 параллельных вызова инструментов в одном запросе, соответствующие официальному заявлению supports_parallel_tool_calls: true.

Messages

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": "Какова погода в Пекине сегодня?"}],
)

# Наблюдаемое: stop_reason "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-схему в запрос и проверьте на стороне клиента.

Chat Completions

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    messages=[
        {"role": "user", "content": "Какова столица Франции? Ответьте в JSON с ключом \"answer\"."}
    ],
    response_format={"type": "json_object"},
)

# Наблюдаемое содержимое ответа: {"answer": "Париж"}
Проверено: вывод является допустимым JSON, содержащим запрашиваемый ключ.

Responses

response = client.responses.create(
    model="coding-glm-5.3",
    input="Какова столица Франции? Ответьте в JSON с ключом \"answer\".",
    text={"format": {"type": "json_object"}},
)

# Наблюдаемый текст вывода: {"answer": "Париж"}

Messages

# Укажите структуру JSON в запросе; наблюдаемый вывод является допустимым JSON
response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Какова столица Франции? Ответьте в JSON с ключом \"answer\"."}
    ],
)

# Наблюдаемый текст ответа: {"answer": "Париж"}

5. Автоматическое кэширование контекста

Неявное кэширование включено по умолчанию без параметров для передачи; повторные длинные префиксы сообщают о попаданиях в кэш в использовании (имя поля варьируется в зависимости от API).

Chat Completions

# использование второго вызова с идентичным длинным префиксом
"prompt_tokens_details": {"cached_tokens": 960}
Проверено: второй из двух последовательных вызовов попал на 960 кэшированных токенов.

Responses

# использование второго вызова с идентичным длинным префиксом
"input_tokens_details": {"cached_tokens": 960}

Messages

# попадания сообщаются через 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 Messages отклоняет значение temperature: 3 вне диапазона с 400, который указывает допустимый диапазон [0,1], в то время как Chat Completions / Responses молча принимают то же значение вне диапазона с 200. При миграции между API не полагайтесь на шлюз, чтобы поймать значения выборки вне диапазона за вас.
# API Messages с 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, и мышление продолжается (семантика преобразования в низкий уровень) ➖ нет параметра переключения ❗ то же самое, что и 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]

Часто задаваемые вопросы

Какой идентификатор модели 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?
Та же базовая модель — все улучшения получены за счет постобучения (официальная формулировка: «Она использует ту же базовую модель, что и 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; для получения дополнительных моделей посетите галерею моделей.