How to Migrate from GLM 5.2 to GLM 5.3: Thinking Parameters & Breaking Changes
Quick answer: Migrating to GLM 5.3 requires exactly one breaking change: thinking.type: "disabled" is no longer supported — switch to "enabled" and set reasoning_effort (low/high/max, default max). Everything else — model ID, context, function calling, streaming — carries over. Do the thinking fix before updating the model ID, or requests fail.
TL;DR
| Change | GLM 5.2 → GLM 5.3 |
|---|---|
| Thinking | Optional → always enabled (breaking) |
| New param | reasoning_effort: low/high/max (default max) |
| Model ID | glm-5.2 → glm-5.3 |
| Context | 1M (same) |
| Max output | 128K (same) |
| Function calling | Same (now with streaming parameter output) |
| Migration order | Fix thinking first, then change model ID |
The One Breaking Change
GLM 5.3 removes the ability to disable thinking. If your application sends:
{ "thinking": { "type": "disabled" } }
…the request fails once you switch to glm-5.3. The fix:
{
"model": "glm-5.3",
"thinking": { "type": "enabled" },
"reasoning_effort": "max"
}
reasoning_effort values:
| Value | Description | When to use |
|---|---|---|
low | Lightweight reasoning | Classification, extraction, quick Q&A |
high | Enhanced reasoning | Ordinary coding, drafting |
max | Deep reasoning (default) | Complex multi-file coding, long agents |
Z.AI recommends max for coding tasks. low exists for latency/cost-sensitive workloads — but note there is no "no thinking" mode anymore.
Migration Order (To Avoid Failed Calls)
- Keep your current model ID (
glm-5.2). - Change
thinking.typeto"enabled". - Set
reasoning_effort: "low"as a safe starting point. - Update the model ID to
glm-5.3. - Validate on your longest-running workloads, then raise effort to
high/maxas appropriate.
Z.AI's official migration note is the same: change it to enabled and set reasoning_effort to low before updating the model ID to glm-5.3. Otherwise, the request will fail.
What Else Changes (Minor)
- Tool calling now supports streaming parameter output — if you parse tool calls, verify your streaming handler tolerates parameter tokens arriving incrementally.
- Capability jump is the point: ~+50% on Z.AI's code bench, Terminal-Bench 3.0 4.6 → 28.3, AutomationBench 26.2 → 48.2. Your agent code doesn't need changes to benefit — the same prompts get better results.
- Model ID on OpenRouter:
z-ai/glm-5.3isn't listed yet (as of Aug 14, 2026) — the API itself is "coming soon." Coding Plan and ZCode users get 5.3 immediately.
What Stays the Same
- 1M-token context window, 128K max output — no prompt-packing changes needed.
- Function calling — same interface (plus the streaming-output upgrade).
- Streaming, structured output, temperature — unchanged.
- Base model behavior — same base as 5.2, so embedding/rag behavior is stable.
Coding Plan Migration (No Code Changes)
GLM Coding Plan subscribers were automatically upgraded to GLM 5.3 on launch day — nothing to configure. Inside ZCode / Claude Code / Cline / Kilo Code, the plan now routes to GLM 5.3. Two plan-side notes:
- The plan moved to a points-based quota (input/cached/output metered separately).
- Off-peak hours (outside 14:00–18:00 UTC+8 weekdays) consume 50% of standard points — schedule heavy runs accordingly.
Rollback Plan
If a workload misbehaves after cutover:
- API: revert the model ID to
glm-5.2— your old request format (includingthinking.type: "disabled", if you kept it) works unchanged. - Coding Plan: there's no per-request model toggle documented; contact Z.AI support for a rollback window if needed.
Checklist
-
thinking.typeset toenabledin all request templates -
reasoning_effortchosen per workload (maxfor coding) - Streaming tool-call parser handles parameter streaming
- Staging run on
glm-5.3withlowbefore full cutover - Off-peak scheduling set for point-heavy jobs
- Rollback model ID documented in ops runbook
FAQ
Is GLM 5.3 backward compatible with GLM 5.2?
Almost — one breaking change: thinking.type: "disabled" is removed. Fix that one field and the rest of the API carries over.
What does reasoning_effort do?
Controls thinking depth: low (light), high (enhanced), max (deep, default). max is recommended for coding.
Can I still disable thinking in GLM 5.3?
No — thinking is always enabled. low is the lightest setting.
Does GLM 5.3 change my context window? No — same 1M-token context and 128K max output as GLM 5.2.
Do I need to update my code for tool calling? Only if you parse tool calls from streams — GLM 5.3 adds streaming parameter output.
I'm on the Coding Plan — do I need to migrate? No — Coding Plan users were upgraded to GLM 5.3 automatically.
Sources
- Z.AI Docs: GLM-5.3
- Z.AI: GLM-5.3: Frontier Coding with Emergent Cyber Capabilities (August 14, 2026)
Last updated: August 14, 2026




