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 escoding-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:
thinking.typeya no admitedisabled: 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 establezcanreasoning_efforten"low".reasoning_effortse 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 recomiendamaxpara tareas de programación.
Verificado: enviarthinking: {"type": "disabled"}a través de AIHubMix devuelve 200 y el razonamiento sigue ocurriendo (reasoning_contentse 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 areasoning_effort: "low".
Verificado: los valores fuera de enumeración parareasoning_efforttambién devuelven 200 sin error (recurriendo al valor por defectomaxsegún la documentación oficial);lowfrente amaxmuestra 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_tokensinforma el uso del razonamiento: 27 conreasoning_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ámetroreasoning) ya incluye el elementoreasoningconsummary_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 trastool_choice: {"type": "none"}; para desactivar las herramientas, elimina por completo el parámetrotools, o usatool_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 unatemperature: 3fuera 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.



