armandmcqueen.dev
← All runs

glm-5.3

9/5/2026, 2:22:22 AM · 15 tests · run b619e6d8-82d1-434c-9031-66f958e3a44d

basic-generation

ok

Plain streaming generation with a soft length constraint (~100 words).

  • Produced 91 words (1282 output tokens).
Result
{
  "wordCount": 91,
  "outputTokens": 1282
}
25d58bab-1a9d-4042-b3e3-1b7476ada7ae
Sep 5, 2026, 02:21:17

zai:glm-5.3

Input
23
Output
1,282
Reasoning
1,170
Answer
112
Cost
$0.0057
Mode
streaming
Cost breakdown
Input $0.000032Output $0.0056
Latency
16.8s
TTFT
16.0s
Tok/s
76.2
Tok/s (adj)
134.2

usage-cost

ok

Asserts usage tokens populate and cost computes from the ChatReq contract.

  • in=20 out=245 rt=238 cost=$0.001106 (paid).
Result
{
  "inputTokens": 20,
  "outputTokens": 245,
  "reasoningTokens": 238,
  "costUsd": 0.001106,
  "paid": true
}
d86beb13-5aba-4a27-99ca-07ae47ea6807
Sep 5, 2026, 02:21:23

zai:glm-5.3

Input
20
Output
245
Reasoning
238
Answer
7
Cost
$0.0011
Mode
streaming
Cost breakdown
Input $0.000028Output $0.0011
Latency
5.1s
TTFT
5.0s
Tok/s
48.2
Tok/s (adj)
130.5

streaming-structure

ok

Asserts a streaming call captures events that reconstruct into the final text.

  • mode=streaming, 80 stream events, 1 text block(s), 35 chars.
Result
{
  "mode": "streaming",
  "streamEventCount": 80,
  "textBlocks": 1,
  "textLen": 35
}
b7284f8b-4031-4a64-bb12-ef5c45f177b7
Sep 5, 2026, 02:21:24

zai:glm-5.3

Input
25
Output
75
Reasoning
44
Answer
31
Cost
$0.000365
Mode
streaming
Cost breakdown
Input $0.000035Output $0.000330
Latency
1.9s
TTFT
1.7s
Tok/s
39.5
Tok/s (adj)
135.4

complete-stream-parity

ok

Same prompt via stream() and complete() both return valid, matching results.

  • stream="Paris" · complete="Paris"
Result
{
  "streamText": "Paris",
  "completeText": "Paris"
}
0c14a3d5-0200-4f7c-8129-85667a9234fc
Sep 5, 2026, 02:21:25

zai:glm-5.3

Input
26
Output
3
Reasoning
0
Answer
3
Cost
$0.000050
Mode
streaming
Cost breakdown
Input $0.000036Output $0.000013
Latency
918ms
TTFT
861ms
Tok/s
3.3
Tok/s (adj)
52.4
c4ac3e5a-2e33-47b5-8b7c-d790ef3bb20a
Sep 5, 2026, 02:21:26

zai:glm-5.3

Input
26
Output
3
Reasoning
0
Answer
3
Cost
$0.000050
Mode
non-streaming
Cost breakdown
Input $0.000036Output $0.000013
Latency
1.1s
Tok/s
2.8

reasoning-conformance

ok

Asserts the model's reasoning knob behaves as its reasoning-config declares.

  • Class (from reasoning-config): always-on.
  • reasoningTokens=99, outputTokens=501.
Result
{
  "class": "always-on",
  "reasoningTokens": 99,
  "outputTokens": 501
}
10c2aec5-97c5-4966-819b-0438c4521706
Sep 5, 2026, 02:21:33

zai:glm-5.3

Input
97
Output
501
Reasoning
99
Answer
402
Cost
$0.0023
Mode
streaming
Cost breakdown
Input $0.000136Output $0.0022
Latency
6.7s
TTFT
1.8s
Tok/s
74.7
Tok/s (adj)
81.8

single-tool-call

ok

Offers a calculator tool and checks the model calls it for an arithmetic question.

  • Called "multiply" with args {"a":23,"b":17}.
Result
{
  "toolCalled": true,
  "toolName": "multiply",
  "args": {
    "a": 23,
    "b": 17
  },
  "correct": true
}
b3d667f7-d427-495b-be55-4b84a76f3da4
Sep 5, 2026, 02:21:38

zai:glm-5.3

Input
230
Output
17
Reasoning
0
Answer
17
Cost
$0.000397
Mode
streaming
Cost breakdown
Input $0.000322Output $0.000075
Latency
5.3s
Tok/s
3.2

tool-loop

ok

Forces a tool call, feeds the result back, and checks the continuation uses it.

  • step1 (required): multiply({"a":23,"b":17}) → step2: "23 multiplied by 17 equals 391."
Result
{
  "toolName": "multiply",
  "args": {
    "a": 23,
    "b": 17
  },
  "product": 391,
  "continuation": "23 multiplied by 17 equals 391.",
  "usesResult": true,
  "forced": true
}
e5705cb9-2bec-4f3d-9303-4e6afac7cb60
Sep 5, 2026, 02:21:43

zai:glm-5.3

Input
226
Output
39
Reasoning
22
Answer
17
Cost
$0.000488
Mode
streaming
Cost breakdown
Input $0.000316Output $0.000172
Latency
4.3s
Tok/s
9.0
6ef02a3a-3ce9-4588-a787-e573e052ff35
Sep 5, 2026, 02:21:47

zai:glm-5.3

Input
275
Output
12
Reasoning
0
Answer
12
Cache Read
192
Cost
$0.000219
Mode
streaming
Cost breakdown
Input $0.000116Output $0.000053Cache read $0.000050
Latency
4.0s
TTFT
4.0s
Tok/s
3.0
Tok/s (adj)
164.1

web-search

ok

Enables server-side web search and checks invocation counts, the per-request cost surcharge, and provider-executed output blocks.

  • Skipped: model does not support the catalog's web_search tool version.
Result
{
  "skipped": "no server-side web search support"
}

reasoning-tool-continuity

ok

Reasoning model: continuity token captured on a tool call and replayed so the follow-up succeeds.

  • reasoned=true, none token —; follow-up → "The current balance for **acme-42** is **$1,234.00**. **Calculation w"
Result
{
  "signatureType": "none",
  "tokenCaptured": false,
  "reasoned": true,
  "answered": true,
  "continuation": "The current balance for **acme-42** is **$1,234.00**.\n\n**Calculation with 5% annual compounding over 7 years:**\n\nBalance after 7 years = 123"
}
7697d74b-915e-4c19-852d-41bebc9e4f78
Sep 5, 2026, 02:21:55

zai:glm-5.3

Input
253
Output
24
Reasoning
9
Answer
15
Cache Read
192
Cost
$0.000241
Mode
streaming
Cost breakdown
Input $0.000085Output $0.000106Cache read $0.000050
Latency
3.9s
Tok/s
6.1
e790c3e2-998f-430b-8cc8-a65c08a31787
Sep 5, 2026, 02:22:02

zai:glm-5.3

Input
289
Output
225
Reasoning
0
Answer
225
Cost
$0.0014
Mode
streaming
Cost breakdown
Input $0.000405Output $0.000990
Latency
6.6s
TTFT
3.7s
Tok/s
34.1
Tok/s (adj)
77.2

prompt-cache

ok

Repeat a large prefix; assert cache-read tokens are reported and cost drops.

  • Skipped: provider has no (known) prompt-cache reporting.
Result
{
  "skipped": "cacheStyle=none"
}

json-output

ok

Requests a strict JSON object and checks it parses with the required keys.

  • Output parsed as JSON.
  • All required keys present.
  • Output is bare JSON (no leading prose/fence).
Result
{
  "parsed": {
    "name": "Anthropic",
    "founded": 2021,
    "headquarters": "San Francisco, California, United States"
  },
  "validJson": true,
  "missingKeys": [],
  "bareJson": true
}
ed338a8a-3047-4ff2-9f83-784cf99af74a
Sep 5, 2026, 02:22:04

zai:glm-5.3

Input
70
Output
30
Reasoning
0
Answer
30
Cost
$0.000230
Mode
streaming
Cost breakdown
Input $0.000098Output $0.000132
Latency
2.1s
TTFT
1.7s
Tok/s
14.6
Tok/s (adj)
75.8

summarize-memex

ok

Summarizes an ~11k-token essay to ~500 words (long input, reasoning minimized).

  • Read ~10238 input tokens, wrote 563 words (754 output tokens) in 14148ms.
Result
{
  "wordCount": 563,
  "inputTokens": 10238,
  "outputTokens": 754,
  "latencyMs": 14148
}
1c8d0997-a537-41c9-8546-223c531839c7
Sep 5, 2026, 02:22:18

zai:glm-5.3

Input
10,238
Output
754
Reasoning
3
Answer
751
Cost
$0.0177
Mode
streaming
Cost breakdown
Input $0.0143Output $0.0033
Latency
14.1s
TTFT
1.5s
Tok/s
53.3
Tok/s (adj)
59.3

truncation

ok

Tiny maxTokens on a long prompt yields finishReason:"length".

  • finishReason=length, out=100 tokens.
Result
{
  "finishReason": "length",
  "outputTokens": 100
}
9d6b40e4-7b3a-4ed2-afa6-97816a94a35e
Sep 5, 2026, 02:22:20

zai:glm-5.3

Input
29
Output
100
Reasoning
0
Answer
100
Cost
$0.000481
Mode
streaming
Cost breakdown
Input $0.000041Output $0.000440
Latency
2.7s
TTFT
963ms
Tok/s
37.4
Tok/s (adj)
58.5

streaming-only-rejection

ok

Streaming-only models reject complete(); all others accept it.

  • streamingOnly=false; complete() succeeded.
Result
{
  "streamingOnly": false,
  "completeThrew": false
}

abort

ok

A pre-aborted signal rejects the call (abort is threaded + honored).

  • pre-aborted signal → rejected (AbortError).
Result
{
  "rejected": true,
  "errorName": "AbortError"
}