Titel: GLM-5.3-handleiding: altijd actief denken, drie inspanningsniveaus & API-ondersteuningsmatrix
Beschrijving: GLM-5.3-gids van augustus 2026: altijd actief denken met drie reasoning_effort-niveaus, samenvattingen van de redenering, parallelle toolaanroepen, gestructureerde output en automatische caching, met geverifieerde voorbeelden voor AIHubMix Chat / Responses / Messages.
Dit artikel behandelt de belangrijkste API-wijzigingen en gebruiksaanwijzingen voor GLM-5.3. GLM-5.3 is het vlaggenschipmodel van Z.ai, uitgebracht op 14-08-2026. Het gebruikt exact hetzelfde basismodel als GLM-5.2, waarbij alle verbeteringen komen uit post-training. Op AIHubMix is de model-IDcoding-glm-5.3(momenteel een route in preview met beperkte tijd), beschikbaar via de Chat Completions-, Responses- en Claude-compatibele Messages-API's. Zie ook: de officiële releaseblog van Z.ai.
De conclusies "Geverifieerd" en de voorbeeldresponses in elke sectie komen van echte aanroepen op 14-08-2026 via de AIHubMix-API's (Chat Completions / Responses / Messages).
1. Modelspecificaties in één oogopslag
| Onderdeel | Waarde |
|---|---|
| Contextvenster | 1M tokens (officiële exacte waarde: 1.048.576) |
| Maximale output | 128K (max_tokens geverifieerd maximum: 131.072; overschrijding geeft 400) |
| Invoermodaliteiten | Tekst |
| Denken | Altijd aan, kan niet worden uitgeschakeld; reasoning_effort heeft drie niveaus: low / high / max, standaard max |
| Relatie met GLM-5.2 | Zelfde basismodel, verbeterd via post-training: duidelijk sterkere prestaties bij coderen en taken met een lange horizon, plus opkomende cybercapaciteiten |
| AIHubMix-model-ID | coding-glm-5.3 (route in preview met beperkte tijd; we volgen dit op zodra de officiële commerciële API lanceert) |
Geverifieerd: max_tokens: 999999 geeft 400 met het geldige bereik in de foutbody vermeld. Het maximum is echt gevalideerd en wordt niet stilzwijgend afgekapt.# max_tokens=999999 -> HTTP 400
"max_tokens parameter invalid: value must be within [1,131072]"
2. GLM-5.3 versus GLM-5.2: altijd actief denken, intensiteit via reasoning_effort
| Onderdeel | GLM-5.2 | GLM-5.3 |
|---|---|---|
| Basismodel | — | Identiek aan 5.2 (alle verbeteringen uit post-training) |
thinking.type |
enabled / disabled: kan worden uitgeschakeld |
enabled alleen: kan niet worden uitgeschakeld |
reasoning_effort |
Compatibiliteitsmapping met 7 waarden (effectieve niveaus: max/high) | Drie niveaus low / high / max, standaard max |
| Positionering | Algemeen vlaggenschip | Versterkt voor coderen en agentische taken met een lange horizon, met opkomende cybercapaciteiten |
Dit zijn de twee belangrijkste API-wijzigingen in GLM-5.3 ten opzichte van GLM-5.2:
thinking.typeondersteuntdisabledniet meer: denken kan niet meer worden uitgeschakeld. Het officiële migratieadvies luidt dat toepassingen die vroeger{"type": "disabled"}stuurden, moeten overschakelen naar{"type": "enabled"}enreasoning_effortmoeten instellen op"low".reasoning_effortbeperkt zich tot drie niveaus:low(licht) /high(verhoogd) /max(diep, de standaard). De compatibiliteitsmapping met 7 waarden uit de GLM-5.2-periode geldt niet meer; Z.ai raadtmaxaan voor coderingstaken.
Geverifieerd: het sturen vanthinking: {"type": "disabled"}via AIHubMix geeft 200, en het denken vindt nog steeds plaats (reasoning_contentwordt gewoon teruggestuurd). De waarde wordt automatisch omgezet volgens de officiële semantiek van het kanaal en niet geweigerd. Als je client erop vertrouwde dat "denken uitzetten tokens bespaart", schakel dan over naarreasoning_effort: "low".
Geverifieerd: waarden buiten de enum voorreasoning_effortgeven ook 200 zonder fout (terugvallend op de standaardmaxvolgens de officiële documentatie).lowversusmaxlaat de verwachte trend van lichter denken zien (27 versus 39 redeneertokens bij dezelfde rekenvraag).
Chat Completions
De inhoud van het denken wordt teruggegeven in het veld reasoning_content; bij streaming komt die aan als 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"
Geverifieerd:usage.completion_tokens_details.reasoning_tokensgeeft het gebruik voor denken aan: 27 metreasoning_effort="low"en 39 met"max"bij dezelfde vraag.
Responses
De inhoud van het denken komt terug als een reasoning-outputitem, waarbij de tekst in de summary-array staat als 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
Geverifieerd: het standaardverzoek (zonder enigereasoning-parameter) bevat al hetreasoning-item metsummary_text. Er is geen expliciete opt-in nodig.
Messages
De inhoud van het denken wordt teruggegeven als native thinking-contentblokken.
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"]
Geverifieerd: thinking-blokken worden standaard teruggegeven. thinking: {"type": "disabled"} geeft op deze API eveneens 200, waarbij het denken gewoon doorgaat. Dit is consistent met de officiële semantiek "disabled wordt omgezet naar low, het verzoek gaat door".3. Toolaanroepen en parallelle tools
Functieaanroepen werken geverifieerd op alle drie de API's. Op de Responses-API zagen we ook parallelle toolaanroepen binnen één beurt (Z.ai verklaart expliciet supports_parallel_tool_calls: true voor GLM-5.3). Bovengrenzen van de upstream: tot 128 functies in tools; tool_choice ondersteunt van nature alleen 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
Geverifieerd: tool_choice: "none" werkt. Dezelfde weervraag geeft gewone tekst terug zonder toolaanroep.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)
Geverifieerd: 2 parallelle toolaanroepen binnen één beurt, in lijn met de officiële verklaring 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
❗ Geverifieerd: op deze API produceert het model nog steeds toolaanroepen natool_choice: {"type": "none"}. Om tools uit te schakelen, verwijder je detools-parameter volledig, of gebruik je in plaats daarvantool_choice: "none"op de Chat Completions-API.
4. Gestructureerde output
response_format ondersteunt text en json_object. De upstream vermeldt geen json_schema-modus. Als je strikte schema-conformiteit nodig hebt, neem je het JSON-schema op in de prompt en valideer je aan de clientzijde.
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"}
Geverifieerd: de output is geldige JSON met de gevraagde sleutel.
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. Contextcaching is automatisch
Impliciete caching staat standaard aan en er hoeven geen parameters te worden meegegeven. Herhaalde lange prefixen melden cachetreffers in het gebruik (de veldnaam verschilt per API).
Chat Completions
# usage of the second call with an identical long prefix
"prompt_tokens_details": {"cached_tokens": 960}
Geverifieerd: de tweede van twee directe opeenvolgende aanroepen raakte 960 gecachte tokens.
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
Geverifieerd: we konden in deze ronde geen cachetreffer op deze API reproduceren. Caches worden per kanaal opgewarmd, en een wisseling door de load balancer kan een misser veroorzaken. De boekhouding van treffers volgt de semantiek van Anthropic.
6. Sampling en validatie van parameters
Sampling volgt de endpointconventies van de GLM-familie: het bereik van temperature is [0, 1] met standaard 1.0 (let op: smaller dan het bereik [0, 2] van het OpenAI-protocol). top_p heeft het bereik [0,01, 1] met standaard 0,95. Z.ai raadt aan slechts één van de twee af te stemmen.
Geverifieerd: de validatie van parameters verschilt per API. De Messages-API weigert eentemperature: 3buiten het bereik met een 400 die het geldige bereik[0,1]vermeldt, terwijl Chat Completions en Responses dezelfde waarde buiten het bereik stilzwijgend accepteren met 200. Bij migratie tussen API's mag je er niet op vertrouwen dat de gateway samplingwaarden buiten het bereik voor je opvangt.
# Messages API with temperature=3 -> HTTP 400
"temperature parameter invalid: value must be within [0,1]"
7. Matrix van capaciteit × API-ondersteuning
Elke cel hieronder is geverifieerd met echte aanroepen via de live AIHubMix-API's op 14-08-2026. De cellen tonen de spelling van de parameter of het veld voor elke API.
| Capaciteit | Chat Completions | Responses | Messages |
|---|---|---|---|
| Basisgeneratie / streaming | ✅ | ✅ | ✅ |
| Inhoud van het denken | ✅ veld reasoning_content |
✅ reasoning-outputitem (summary_text) |
✅ thinking-contentblok |
| Intensiteit van het denken | ✅ reasoning_effort (low/high/max, standaard max) |
✅ hetzelfde als links | ✅ geaccepteerd met 200 |
| Denken uitschakelen | ❗ Niet mogelijk: disabled geeft 200 en het denken gaat door (semantiek van omzetting naar low) |
➖ geen schakelparameter | ❗ hetzelfde als Chat |
| Functieaanroepen | ✅ | ✅ | ✅ |
| Parallelle toolaanroepen | — | ✅ 2 function_call-items binnen één beurt |
— |
| Toolaanroepen uitschakelen | ✅ tool_choice: "none" werkt |
✅ 200 (geen aanroepen waargenomen) | ❗ aanroepen worden nog steeds gemaakt na {"type": "none"} |
| Gestructureerde output (JSON-modus) | ✅ response_format: json_object |
✅ text.format: json_object |
✅ via promptconventie |
Strikte modus json_schema |
❗ niet vermeld upstream; neem het schema op in de prompt | ❗ hetzelfde als links | ❗ hetzelfde als links |
| Automatische cachingadministratie | ✅ usage.prompt_tokens_details.cached_tokens |
✅ usage.input_tokens_details.cached_tokens |
✅ veld aanwezig (in deze ronde geen treffer gereproduceerd) |
| Validatie van maximale output | ✅ 400 met bereik [1,131072] | — | — |
| Validatie van samplingwaarden buiten bereik | ❗ stilzwijgend 200 | ❗ stilzwijgend 200 | ✅ 400 met bereik [0,1] |
Veelgestelde vragen
Wat is de GLM-5.3-model-ID op AIHubMix? Heb ik het achtervoegsel [1m] nodig?
De model-ID is coding-glm-5.3. Gebruik deze zoals hij is. glm-5.3[1m] is de modelnaamsyntaxis van Z.ai voor de Claude Code-client en heeft niets te maken met AIHubMix-aanroepen. Geen van de drie API's heeft een achtervoegsel nodig.
Kan ik het denken uitschakelen?
Nee. Denken in GLM-5.3 staat altijd aan en thinking.type ondersteunt alleen enabled. In onze tests geeft het sturen van disabled 200, en het denken gaat gewoon door (omgezet naar het niveau low volgens de officiële semantiek). Om tokens voor denken te besparen, stuur je reasoning_effort: "low".
Hoe verhoudt GLM-5.3 zich tot GLM-5.2?
Hetzelfde basismodel. Alle verbeteringen komen uit post-training (officiële formulering: "It uses the same base model as GLM-5.2 — every gain comes from post-training"). Er zijn twee harde API-wijzigingen: denken kan niet meer worden uitgeschakeld, en reasoning_effort beperkt zich tot drie niveaus low/high/max (standaard max).
Wat als ik strikte gestructureerde output met json_schema nodig heb?
De upstream vermeldt geen response_format: json_schema-modus. In onze tests gaf de json_object-JSON-modus op alle drie de API's geldige JSON. Voor strikte schema's neem je het JSON-schema op in de prompt en valideer je aan de clientzijde.
Is coding-glm-5.3 de productieversie?
Het is momenteel een tijdelijke preview-route met beperkte beschikbaarheid (de modeldocumentatie van Z.ai markeert de officiële API als "coming soon"); AIHubMix zal dit opvolgen zodra de commerciële API beschikbaar is. Zie de modelpagina voor actuele prijzen en status.
Voor prijzen en realtime status, zie de GLM-5.3-modelpagina; voor meer modellen, bezoek de modelgalerij.



