Guía Práctica de GLM-5.3: Pensamiento Siempre Activo, Tres Niveles de Esfuerzo y la Matriz de Soporte de la API

AIHubMix7 min de lectura
Guía Práctica de GLM-5.3: Pensamiento Siempre Activo, Tres Niveles de Esfuerzo y la Matriz de Soporte de la API

Título: Guía Práctica de GLM-5.3: Pensamiento Siempre Activo, Tres Niveles de Esfuerzo & Matriz de Soporte de la API

Descripción: Guía de GLM-5.3 de agosto de 2026: pensamiento siempre activo con tres niveles de esfuerzo de razonamiento, resúmenes de razonamiento, llamadas a herramientas en paralelo, salida estructurada y almacenamiento en caché automático — con ejemplos verificados de AIHubMix Chat / Respuestas / Mensajes.


Este artículo cubre los cambios clave en la API y notas de uso para GLM-5.3. GLM-5.3 es el modelo insignia de Z.ai lanzado el 2026-08-14 — utiliza el mismo modelo base que GLM-5.2, con cada mejora proveniente 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 APIs de Chat Completions, Respuestas y Mensajes compatibles con Claude. Ver también: el blog oficial de lanzamiento de Z.ai.

Las conclusiones y respuestas de muestra "Verificadas" en cada sección provienen de llamadas reales realizadas el 2026-08-14 a través de las APIs de AIHubMix (Chat Completions / Respuestas / Mensajes).

1. Especificaciones del Modelo a Primera Vista

Elemento Valor
Ventana de contexto 1M tokens (valor exacto oficial: 1,048,576)
Máxima salida 128K (max_tokens techo verificado: 131,072 — excederlo devuelve 400)
Modalidades de entrada Texto
Pensamiento 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 a través del post-entrenamiento: rendimiento de codificación y tareas de largo horizonte mucho más fuertes, además de capacidades cibernéticas emergentes
ID del modelo AIHubMix coding-glm-5.3 (ruta de vista previa por tiempo limitado; haremos un seguimiento tan pronto como se lance la API comercial oficial)
Verificado: max_tokens: 999999 devuelve 400 con el rango válido especificado en el cuerpo del error — el techo está genuinamente validado, no truncado silenciosamente.
# max_tokens=999999 -> HTTP 400
"max_tokens parameter invalid: value must be within [1,131072]"

2. GLM-5.3 vs GLM-5.2: Pensamiento Siempre Activo, Intensidad a través de 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 solo — 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 Fortalecido para tareas de codificación y de largo horizonte, con capacidades cibernéticas emergentes

Estos son los dos cambios más importantes en la API en GLM-5.3 en relación con GLM-5.2:

  1. thinking.type ya no soporta disabled — el pensamiento no se puede desactivar. Consejo oficial de migración: las aplicaciones que solían enviar {"type": "disabled"} deben cambiar a {"type": "enabled"} y establecer reasoning_effort en "low".
  2. reasoning_effort se reduce a tres niveles: low (ligero) / high (mejorado) / max (profundo, el predeterminado). El mapeo de compatibilidad de 7 valores de la era GLM-5.2 ya no se aplica; Z.ai recomienda max para tareas de codificación.
Verificado: enviar thinking: {"type": "disabled"} a través de AIHubMix devuelve 200 y el pensamiento sigue ocurriendo (reasoning_content se devuelve como de costumbre) — el valor se convierte automáticamente según la semántica del canal oficial en lugar de ser rechazado. Si su cliente dependía de "desactivar el pensamiento para ahorrar tokens", cambie a reasoning_effort: "low".

Verificado: los valores fuera de enum para reasoning_effort también devuelven 200 sin un error (retrocediendo al valor predeterminado max según la documentación oficial); low vs max muestra la tendencia esperada de pensamiento más ligero (27 vs 39 tokens de razonamiento en la misma pregunta aritmética).

Completaciones de Chat

El contenido del pensamiento 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, por defecto max
    extra_body={"thinking": {"type": "enabled"}},
    messages=[
        {"role": "user", "content": "Calcula la raíz cuadrada de (17*23-19*11), redondeada hacia abajo. Solo dígitos."}
    ],
)

print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content)   # Observado: "13"
Verificado: usage.completion_tokens_details.reasoning_tokens informa sobre el uso del pensamiento — 27 con reasoning_effort="low", 39 con "max" en la misma pregunta.

Respuestas

El contenido del pensamiento regresa como un ítem de salida reasoning, con el texto dentro del array 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="¿Cuál es la capital de Francia? Solo el nombre de la ciudad.",
)

# Tipos de ítems de respuesta.output observados: ["reasoning", "message"]
# ítem de razonamiento: {"type": "reasoning", "summary": [{"type": "summary_text", "text": "El usuario está preguntando..."}]}
# usage.output_tokens_details.reasoning_tokens: 80
Verificado: la solicitud predeterminada (sin parámetro reasoning en absoluto) ya incluye el ítem reasoning con summary_text — no se necesita una opción explícita.

Mensajes

El contenido del pensamiento 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": "¿Cuál es la capital de Francia? Solo el nombre de la ciudad."}
    ],
)

# Tipos de bloques de respuesta.content observados: ["thinking", "text"]
Verificado: los bloques de pensamiento se devuelven por defecto; thinking: {"type": "disabled"} en esta API también devuelve 200 con el pensamiento aún ocurriendo (consistente con la semántica oficial de "desactivado se convierte en bajo, la solicitud continúa").

3. Llamadas a Herramientas y Herramientas en Paralelo

La llamada a funciones se verificó como funcional en las tres APIs; en la API de Respuestas también observamos llamadas a herramientas en paralelo dentro de un solo turno (Z.ai declara explícitamente supports_parallel_tool_calls: true para GLM-5.3). Límites ascendentes: hasta 128 funciones en tools; tool_choice solo admite auto de forma nativa.

Completaciones de Chat

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    messages=[{"role": "user", "content": "¿Cuál es el clima en Pekín hoy?"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Obtener el clima para una ciudad",
            "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
        },
    }],
)

# Observado: finish_reason "tool_calls", con una llamada a get_weather en tool_calls
Verificado: tool_choice: "none" funciona — la misma pregunta sobre el clima devuelve texto plano sin llamada a la herramienta.

Respuestas

response = client.responses.create(
    model="coding-glm-5.3",
    input="Verifica el clima de hoy en Shanghái y Pekín",
    parallel_tool_calls=True,
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Obtener el clima para una ciudad",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
)

# Observado: un solo turno devuelve 2 ítems de salida de function_call en paralelo (uno para cada ciudad)
Verificado: 2 llamadas a herramientas en paralelo en un solo turno, coincidiendo con la declaración oficial supports_parallel_tool_calls: true.

Mensajes

response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    tools=[{
        "name": "get_weather",
        "description": "Obtener el clima para una ciudad",
        "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    messages=[{"role": "user", "content": "¿Cuál es el clima en Pekín hoy?"}],
)

# Observado: stop_reason "tool_use"; el contenido contiene un bloque de tool_use
Verificado: en esta API, el modelo todavía produce llamadas a herramientas después de tool_choice: {"type": "none"} — para desactivar herramientas, elimine el parámetro tools por completo, o use tool_choice: "none" en la API de Completaciones de Chat en su lugar.

4. Salida Estructurada

response_format admite text y json_object; el upstream no lista un modo json_schema. Cuando necesite una conformidad estricta con el esquema, incruste el esquema JSON en el aviso y valide del lado del cliente.

Completaciones de Chat

completion = client.chat.completions.create(
    model="coding-glm-5.3",
    messages=[
        {"role": "user", "content": "¿Cuál es la capital de Francia? Responde en JSON con la clave \"answer\"."}
    ],
    response_format={"type": "json_object"},
)

# Contenido de respuesta observado: {"answer": "París"}
Verificado: la salida es JSON válido que contiene la clave solicitada.

Respuestas

response = client.responses.create(
    model="coding-glm-5.3",
    input="¿Cuál es la capital de Francia? Responde en JSON con la clave \"answer\".",
    text={"format": {"type": "json_object"}},
)

# Texto de salida observado: {"answer": "París"}

Mensajes

# Especificar la estructura JSON en el aviso; salida observada es JSON válido
response = client.messages.create(
    model="coding-glm-5.3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "¿Cuál es la capital de Francia? Responde en JSON con la clave \"answer\"."}
    ],
)

# Texto de respuesta observado: {"answer": "París"}

5. El Almacenamiento en Caché del Contexto es Automático

El almacenamiento en caché implícito está activado por defecto sin parámetros que pasar; los prefijos largos repetidos informan sobre aciertos en la caché en el uso (el nombre del campo varía según la API).

Completaciones de Chat

# uso de la segunda llamada con un prefijo largo idéntico
"prompt_tokens_details": {"cached_tokens": 960}
Verificado: la segunda de dos llamadas consecutivas alcanzó 960 tokens en caché.

Respuestas

# uso de la segunda llamada con un prefijo largo idéntico
"input_tokens_details": {"cached_tokens": 960}

Mensajes

# los aciertos se informan a través de usage.cache_read_input_tokens
"cache_read_input_tokens": 0
Verificado: no reproducimos un acierto en la caché en esta API en esta ronda (las cachés se calientan por canal; un cambio en el 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 del endpoint de la familia GLM: rango de temperature [0, 1] con un valor predeterminado de 1.0 (nota: más estrecho que el protocolo de OpenAI [0, 2]); rango de top_p [0.01, 1] con un valor predeterminado de 0.95. Z.ai recomienda ajustar solo uno de los dos.

Verificado: la validación de parámetros difiere entre APIs — la API de Mensajes rechaza un temperature: 3 fuera de rango con un 400 que especifica el rango válido [0,1], mientras que Completaciones de Chat / Respuestas aceptan silenciosamente el mismo valor fuera de rango con 200. Al migrar entre APIs, no confíe en que la puerta de enlace detecte valores de muestreo fuera de rango por usted.
# API de Mensajes con temperature=3 -> HTTP 400
"temperature parameter invalid: value must be within [0,1]"

7. Matriz de Soporte de Capacidades × API

Cada celda a continuación fue verificada con llamadas reales a través de las APIs en vivo de AIHubMix el 2026-08-14; las celdas muestran la ortografía de parámetros/campos para cada API.

Capacidad Completaciones de Chat Respuestas Mensajes
Generación básica / streaming
Contenido de pensamiento reasoning_content field reasoning output item (summary_text) thinking content block
Intensidad del pensamiento reasoning_effort (low/high/max, por defecto max) ✅ igual que a la izquierda ✅ aceptado con 200
Desactivar el pensamiento ❗ No es posible: disabled devuelve 200 y el pensamiento continúa (semántica convertida a bajo) ➖ sin parámetro de alternancia ❗ igual que Chat
Llamada a funciones
Llamadas a herramientas en paralelo ✅ 2 function_call items en un solo turno
Desactivar llamadas a herramientas tool_choice: "none" funciona ✅ 200 (sin llamadas observadas) ❗ llamadas aún producidas después de {"type": "none"}
Salida estructurada (modo JSON) response_format: json_object text.format: json_object ✅ a través de la convención de aviso
json_schema modo estricto ❗ no listado en upstream — incruste el esquema en el aviso ❗ 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 (sin aciertos reproducidos en esta ronda)
Validación de máxima salida ✅ 400 con rango [1,131072]
Validación de muestreo fuera de rango ❗ silencioso 200 ❗ silencioso 200 ✅ 400 con rango [0,1]

FAQ

¿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 como está. glm-5.3[1m] es la sintaxis del nombre del modelo de Z.ai para el cliente Claude Code y no tiene nada que ver con las llamadas a AIHubMix; ninguna de las tres APIs necesita ningún sufijo.

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

¿Cómo se relaciona GLM-5.3 con GLM-5.2?
Mismo modelo base — todas las mejoras provienen del post-entrenamiento (redacción oficial: "Utiliza el mismo modelo base que GLM-5.2 — cada mejora proviene del post-entrenamiento"). Dos cambios importantes en la API: el pensamiento ya no se puede desactivar, y reasoning_effort se reduce a tres niveles low/high/max (por defecto max).

¿Qué pasa si necesito una salida estructurada estricta 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 APIs; para esquemas estrictos, incruste el esquema JSON en el aviso y valide del lado del cliente.

¿Es coding-glm-5.3 el lanzamiento de producción?
Actualmente es una ruta de vista previa por tiempo limitado (la documentación de la API del modelo de Z.ai marca la API oficial como "próximamente"); AIHubMix hará un seguimiento tan pronto como se envíe la API comercial. Consulte la página del modelo para obtener precios y estado actuales.


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