GLM-5.3: guía práctica con pensamiento siempre activo, tres niveles de esfuerzo y matriz de soporte de API

Guía de agosto de 2026 para llamar a GLM-5.3: pensamiento siempre activo con tres niveles de reasoning_effort, resúmenes de razonamiento, llamadas paralelas a herramientas, salida estructurada y caché automática, con ejemplos probados para las API Chat, Responses y Messages de AIHubMix.

AIHubMix7 min de lectura
GLM-5.3: guía práctica con pensamiento siempre activo, tres niveles de esfuerzo y matriz de soporte de API

Título: Guía práctica de GLM-5.3: pensamiento siempre activo, tres niveles de esfuerzo y matriz de soporte de API

Descripción: Guía de GLM-5.3 de agosto de 2026: pensamiento siempre activo con tres niveles de reasoning_effort, resúmenes de razonamiento, llamadas paralelas a herramientas, salida estructurada y caché automática, con ejemplos verificados para Chat / Responses / Messages de AIHubMix.


Este artículo cubre los cambios clave de la API y las notas de uso de GLM-5.3. GLM-5.3 es el modelo insignia de Z.ai, lanzado el 2026-08-14; usa exactamente el mismo modelo base que GLM-5.2, y todas las mejoras provienen del post-entrenamiento. En AIHubMix, el ID del modelo es coding-glm-5.3 (actualmente una ruta de vista previa por tiempo limitado), disponible a través de las API Chat Completions, Responses y Messages compatible con Claude. Véase también: el anuncio oficial de lanzamiento de Z.ai.

Las conclusiones "Verificado" y las respuestas de ejemplo de cada sección provienen de llamadas reales realizadas el 2026-08-14 a través de las API de AIHubMix (Chat Completions / Responses / Messages).

1. Especificaciones del modelo de un vistazo

Elemento Valor
Ventana de contexto 1M tokens (valor exacto oficial: 1,048,576)
Salida máxima 128K (valor máximo verificado de max_tokens: 131,072; superarlo devuelve 400)
Modalidades de entrada Texto
Razonamiento Siempre activo, no se puede desactivar; reasoning_effort tiene tres niveles: low / high / max, por defecto max
Relación con GLM-5.2 Mismo modelo base, mejorado mediante post-entrenamiento: rendimiento mucho mejor en programación y en tareas de horizonte largo, además de capacidades cibernéticas emergentes
ID del modelo en AIHubMix coding-glm-5.3 (ruta de vista previa por tiempo limitado; daremos seguimiento en cuanto se lance la API comercial oficial)
Verificado: max_tokens: 999999 devuelve 400 con el rango válido detallado en el cuerpo del error; el límite está realmente validado, no se trunca silenciosamente.
# max_tokens=999999 -> HTTP 400
"max_tokens parameter invalid: value must be within [1,131072]"

2. GLM-5.3 frente a GLM-5.2: pensamiento siempre activo, intensidad mediante reasoning_effort

Elemento GLM-5.2 GLM-5.3
Modelo base — Idéntico a 5.2 (todas las mejoras provienen del post-entrenamiento)
thinking.type enabled / disabled: se puede desactivar enabled únicamente: no se puede desactivar
reasoning_effort Mapeo de compatibilidad de 7 valores (niveles efectivos: max/high) Tres niveles low / high / max, por defecto max
Posicionamiento Modelo insignia de propósito general Reforzado para programación y tareas agénticas de horizonte largo, con capacidades cibernéticas emergentes

Estos son los dos cambios más importantes de la API en GLM-5.3 respecto a GLM-5.2:

  1. thinking.type ya no admite disabled: el razonamiento no se puede desactivar. El consejo oficial de migración es que las aplicaciones que enviaban {"type": "disabled"} cambien a {"type": "enabled"} y establezcan reasoning_effort en "low".
  2. reasoning_effort se reduce a tres niveles: low (ligero) / high (mejorado) / max (profundo, el valor por defecto). El mapeo de compatibilidad de 7 valores de la era GLM-5.2 ya no se aplica; Z.ai recomienda max para tareas de programación.
Verificado: enviar thinking: {"type": "disabled"} a través de AIHubMix devuelve 200 y el razonamiento sigue ocurriendo (reasoning_content se devuelve como de costumbre); el valor se convierte automáticamente según la semántica oficial del canal en lugar de rechazarse. Si tu cliente dependía de "desactivar el razonamiento para ahorrar tokens", cambia a reasoning_effort: "low".

Verificado: los valores fuera de enumeración para reasoning_effort también devuelven 200 sin error (recurriendo al valor por defecto max según la documentación oficial); low frente a max muestra la tendencia esperada de razonamiento más ligero (27 frente a 39 tokens de razonamiento en la misma pregunta aritmética).

Chat Completions

El contenido del razonamiento se devuelve en el campo reasoning_content; en streaming llega como 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"
Verificado: usage.completion_tokens_details.reasoning_tokens informa el uso del razonamiento: 27 con reasoning_effort="low" y 39 con "max" en la misma pregunta.

Responses

El contenido del razonamiento se devuelve como un elemento de salida reasoning, con el texto dentro del arreglo summary como 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
Verificado: la solicitud predeterminada (sin ningún parámetro reasoning) ya incluye el elemento reasoning con summary_text; no se requiere activación explícita.

Messages

El contenido del razonamiento se devuelve como bloques de contenido thinking nativos.

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"]
Verificado: los bloques thinking se devuelven por defecto; thinking: {"type": "disabled"} en esta API también devuelve 200 y el razonamiento sigue ocurriendo (coherente con la semántica oficial de "disabled se convierte en low, la solicitud continúa").

3. Llamadas a herramientas y herramientas paralelas

Las llamadas a funciones están verificadas en las tres API; en la API Responses también observamos llamadas paralelas a herramientas en un mismo turno (Z.ai declara explícitamente supports_parallel_tool_calls: true para GLM-5.3). Límites del upstream: hasta 128 funciones en tools; tool_choice admite de forma nativa solo 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
Verificado: tool_choice: "none" funciona; la misma pregunta sobre el clima devuelve texto plano sin llamada a herramienta.

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)
Verificado: 2 llamadas paralelas a herramientas en un turno, coincidiendo con la declaración oficial 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
❗ Verificado: en esta API, el modelo sigue produciendo llamadas a herramientas tras tool_choice: {"type": "none"}; para desactivar las herramientas, elimina por completo el parámetro tools, o usa tool_choice: "none" en la API Chat Completions en su lugar.

4. Salida estructurada

response_format admite text y json_object; el upstream no lista un modo json_schema. Cuando necesites conformidad estricta con un esquema, incluye el JSON Schema en el prompt y valida en el cliente.

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"}
Verificado: la salida es JSON válido que contiene la clave solicitada.

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. La caché de contexto es automática

La caché implícita está activada por defecto y no requiere parámetros; los prefijos largos repetidos reportan aciertos de caché en usage (el nombre del campo varía según la API).

Chat Completions

# usage of the second call with an identical long prefix
"prompt_tokens_details": {"cached_tokens": 960}
Verificado: la segunda de dos llamadas consecutivas obtuvo 960 tokens en caché.

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
Verificado: no reproducimos un acierto de caché en esta API en esta ronda (las cachés se calientan por canal; un cambio del balanceador de carga puede causar un fallo). El campo de contabilidad de aciertos sigue la semántica de Anthropic.

6. Muestreo y validación de parámetros

El muestreo sigue las convenciones de endpoint de la familia GLM: rango de temperature [0, 1] con valor por defecto 1.0 (nota: más estrecho que el [0, 2] del protocolo OpenAI); top_p rango [0.01, 1] con valor por defecto 0.95. Z.ai recomienda ajustar solo uno de los dos.

Verificado: la validación de parámetros varía según la API: la API Messages rechaza una temperature: 3 fuera de rango con un 400 que detalla el rango válido [0,1], mientras que Chat Completions / Responses aceptan en silencio el mismo valor fuera de rango con 200. Al migrar entre API, no confíes en que el gateway detecte por ti los valores de muestreo fuera de rango.
# Messages API with temperature=3 -> HTTP 400
"temperature parameter invalid: value must be within [0,1]"

7. Matriz de soporte capacidad × API

Cada celda siguiente se verificó con llamadas reales a las API en vivo de AIHubMix el 2026-08-14; las celdas muestran la escritura del parámetro o campo de cada API.

Capacidad Chat Completions Responses Messages
Generación básica / streaming ✅ ✅ ✅
Contenido del razonamiento ✅ campo reasoning_content ✅ elemento de salida reasoning (summary_text) ✅ bloque de contenido thinking
Intensidad del razonamiento ✅ reasoning_effort (low/high/max, por defecto max) ✅ igual que a la izquierda ✅ aceptado con 200
Desactivar razonamiento ❗ No posible: disabled devuelve 200 y el razonamiento continúa (semántica de conversión a low) ➖ sin parámetro de conmutación ❗ igual que Chat
Llamadas a funciones ✅ ✅ ✅
Llamadas paralelas a herramientas — ✅ 2 elementos function_call en un turno —
Desactivar llamadas a herramientas ✅ tool_choice: "none" funciona ✅ 200 (no se observaron llamadas) ❗ siguen produciéndose llamadas tras {"type": "none"}
Salida estructurada (modo JSON) ✅ response_format: json_object ✅ text.format: json_object ✅ mediante convención en el prompt
Modo estricto json_schema ❗ no listado en el upstream: incluye el esquema en el prompt ❗ igual que a la izquierda ❗ igual que a la izquierda
Contabilidad automática de caché ✅ usage.prompt_tokens_details.cached_tokens ✅ usage.input_tokens_details.cached_tokens ✅ campo presente (no se reprodujo ningún acierto en esta ronda)
Validación de salida máxima ✅ 400 con rango [1,131072] — —
Validación de muestreo fuera de rango ❗ 200 silencioso ❗ 200 silencioso ✅ 400 con rango [0,1]

Preguntas frecuentes

¿Cuál es el ID del modelo GLM-5.3 en AIHubMix? ¿Necesito el sufijo [1m]?
El ID del modelo es coding-glm-5.3; úsalo tal cual. glm-5.3[1m] es la sintaxis de nombres de modelo de Z.ai para el cliente Claude Code y no tiene nada que ver con las llamadas a AIHubMix; ninguna de las tres API necesita ningún sufijo.

¿Puedo desactivar el razonamiento?
No. El razonamiento de GLM-5.3 está siempre activo y thinking.type solo admite enabled; en nuestras pruebas, enviar disabled devuelve 200 y el razonamiento sigue ocurriendo (convertido al nivel low según la semántica oficial). Para ahorrar tokens de razonamiento, envía reasoning_effort: "low".

¿Cómo se relaciona GLM-5.3 con GLM-5.2?
Es el mismo modelo base: todas las mejoras provienen del post-entrenamiento (redacción oficial: "usa el mismo modelo base que GLM-5.2; todas las mejoras provienen del post-entrenamiento"). Hay dos cambios importantes en la API: el razonamiento ya no se puede desactivar, y reasoning_effort se reduce a tres niveles low/high/max (por defecto max).

¿Qué hago si necesito salida estructurada estricta con json_schema?
El upstream no lista un modo response_format: json_schema. En nuestras pruebas, el modo JSON json_object produjo JSON válido en las tres API; para esquemas estrictos, incluye el JSON Schema en el prompt y valida en el cliente.

¿Es coding-glm-5.3 la versión de producción?
Actualmente es una ruta de vista previa por tiempo limitado (la documentación de la API de modelos de Z.ai marca la API oficial como "próximamente"); AIHubMix hará un seguimiento en cuanto se publique la API comercial. Consulte la página del modelo para conocer los precios y el estado actuales.


Para ver los precios y el estado en tiempo real, consulte la página del modelo GLM-5.3; para más modelos, visite la galería de modelos.

Un solo gateway para varios proveedores de IA. Diseñado para producción.

Visitar AIHubMix