Claude Opus 5.5 已在 SeedRouter 上線

Text

GLM-5.3 API 參考

View Markdown

GLM-5.3 請求欄位、推理、工具、串流輸出、用量,以及完整的 Chat、Responses 和 Messages 範例。

GLM-5.3 接受文字,傳回文字或工具呼叫。它始終推理,支援 low、high 和 max 強度,輸出上限為 131,072 個 token。Default 等級使用 glm-5.3。預設分組為 glm;glm-5.3:glm 仍表示明確指定同一分組。其他分組使用各自的模型後綴。

基礎 URL:https://api.seedrouter.ai。使用 Authorization: Bearer $SEEDROUTER_API_KEY 認證。憑證請儲存在伺服器端。Messages 也接受相容的 x-api-key 請求標頭。

本參考遵循 Z.ai Chat 契約、廠商的 Responses schema 及 Messages 相容指南。模型專屬限制來自 GLM-5.3 指南。文件一致不代表所有線上行為均已驗證。 2026 年 10 月 29 日的檢查完成了三種格式的文字與串流請求、Chat 函式呼叫、JSON 物件輸出及已儲存回應的續接。快取命中、明確指定的快取有效期和每項相容控制尚未確立。下文區分 Messages 參考欄位與廠商明確記錄的 GLM 欄位。

OpenAPI 規範 · Markdown 參考 · 模型與 Playground · 價格指南

快速開始

每個範例發送一次 Chat Completions 請求。max_tokens: 2048 是範例預算,並非預設值。推理與可見答案共享該預算;將答案視為完整結果前,請檢查 finish_reason。

curl https://api.seedrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}'
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["SEEDROUTER_API_KEY"], base_url="https://api.seedrouter.ai/v1")
response = client.chat.completions.create(
    model="glm-5.3",
    messages=[{"role": "user", "content": "Explain an idempotency key with one concrete example."}],
    max_tokens=2048,
    extra_body={"reasoning_effort": "low"},
)
print(response.choices[0].message.content)
print(response.usage)
import OpenAI from 'openai';
const client = new OpenAI({apiKey: process.env.SEEDROUTER_API_KEY, baseURL: 'https://api.seedrouter.ai/v1'});
const response = await client.chat.completions.create({
  model: 'glm-5.3',
  messages: [{role: 'user', content: 'Explain an idempotency key with one concrete example.'}],
  reasoning_effort: 'low',
  max_tokens: 2048,
});
console.log(response.choices[0].message.content);
console.log(response.usage);
package main

import (
    "bytes"
    "fmt"
    "io"
    "net/http"
    "os"
    "time"
)

func main() {
    body := []byte(`{"model":"glm-5.3","messages":[{"role":"user","content":"Explain an idempotency key with one concrete example."}],"reasoning_effort":"low","max_tokens":2048}`)
    req, err := http.NewRequest("POST", "https://api.seedrouter.ai/v1/chat/completions", bytes.NewReader(body))
    if err != nil { panic(err) }
    req.Header.Set("Authorization", "Bearer " + os.Getenv("SEEDROUTER_API_KEY"))
    req.Header.Set("Content-Type", "application/json")
    client := &http.Client{Timeout: 3 * time.Minute}
    res, err := client.Do(req)
    if err != nil { panic(err) }
    defer res.Body.Close()
    data, err := io.ReadAll(res.Body)
    if err != nil { panic(err) }
    if res.StatusCode != http.StatusOK { panic(fmt.Sprintf("HTTP %d: %s", res.StatusCode, data)) }
    fmt.Println(string(data))
}

Chat Completions

POST /v1/chat/completions 接受 16 個最上層欄位。除非明確說明,欄位均不可為 null。可選欄位可省略;不要用 null 代替省略。

欄位類型必填預設值與約束
model字串是glm-5.3 (Default)
messages陣列是至少一條訊息;必須包含 user 或 tool 訊息
do_sample布林值否true;false 時 temperature 和 top_p 不生效
stream布林值否false
thinking物件否type: enabled; clear_thinking: true
reasoning_effort字串否low, high, max; 預設 max
temperature數值否0–1 含邊界; 預設 1
top_p數值否0.01–1 含邊界; 預設 0.95
max_tokens整數否1–131072; Chat 未公佈預設值
tool_stream布林值否false; true 要求 stream: true
tools陣列否function、retrieval 或 web_search;最多 128 項
tool_choice字串否僅 auto
stop字串陣列否官方 schema 最多四個字串;實測接受了四個,但未測試停止匹配
response_format物件否必要的 type: text 或 json_object; 預設 text
request_id字串否6–64 個字元;唯一的呼叫方請求識別碼
user_id字串否6–128 個字元;避免個人資訊

system 和 user 訊息要求字串 content。assistant 訊息可包含字串 content、reasoning_content 和 tool_calls。tool 訊息要求 content 和 tool_call_id。使用 thinking.clear_thinking: false 時,請原樣保留歷史推理,包括助手呼叫和工具結果的順序。思考不可關閉。

函式工具使用 {type:"function", function:{name, description, parameters}}。名稱由 1–64 個 ASCII 字母、數字、底線或連字元組成。機器 schema 要求 description 和 parameters;文字說明提到無參數函式可省略。在這一衝突解決前,請使用完整結構。parameters 是函式的 JSON Schema,不會被解釋為訊息內容。

檢索工具使用 {type:"retrieval", retrieval:{knowledge_id, prompt_template?}}。知識庫 ID 屬於提供請求服務的帳號;宣告工具不會建立知識庫。

網頁搜尋工具使用 {type:"web_search", web_search:{search_engine:"search_pro_jina"}}。可選欄位包括 enable、search_query、count(1–50)、search_domain_filter、search_recency_filter(oneDay、oneWeek、oneMonth、oneYear、noLimit)、content_size(medium、high)、result_sequence(before、after)、search_result、require_search 和 search_prompt。確切類型見 OpenAPI。特定帳號的搜尋與檢索可用性需實測驗證。

JSON 物件模式生成 JSON,不會強制執行所提供的 JSON Schema。請在提示詞中說明期望欄位,並在應用中驗證結果。

Responses

POST /v1/responses 接受 15 個最上層建立欄位。這遵循廠商的 Responses schema,並針對 GLM-5.3 限定;不同服務上的確切行為仍需驗證。

curl https://api.seedrouter.ai/v1/responses \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"glm-5.3","input":[{"type":"message","role":"user","content":"Give a concise example of a safe retry."}],"reasoning":{"effort":"low"},"max_output_tokens":2048,"store":false}'
欄位類型必填預設值與約束
model字串是glm-5.3
input字串或陣列是原生輸入項,見下文
instructions字串否系統指令
stream布林值否false
temperature數值否0–1, 最多兩位小數; 預設 1
top_p數值否0.01–1, 最多兩位小數; 預設 0.95
max_output_tokens整數否1–131072; 預設 65536, 包含推理
stop字串陣列否本協定未宣告數量限制
tools陣列否function、namespace、custom 或 web_search
tool_choice字串否none 或 auto
reasoning物件否effort: low, high, max; 預設 max
text物件否format.type: text 或 json_object
prompt_cache_key字串否快取路由鍵;文件無長度限制
previous_response_id字串否引用此前儲存的回應
store布林值否false; 是否儲存本次回應

訊息輸入項要求 type: "message"、角色(user、system、assistant、developer)及內容。內容可為字串、單一文字區塊或文字區塊陣列。使用 input_text 或助手的 output_text,並提供字串 text。通用圖片/文件 schema 不賦予此純文字模型視覺能力。

函式呼叫輸入項要求 type: "function_call"、name、call_id 和 JSON 字串 arguments;namespace 可選。結果要求 type: "function_call_output"、call_id 和字串 output。推理項使用 type: "reasoning" 和單一 content: {type:"reasoning_text", text:"..."} 物件。請原樣保留,不要轉換為陣列。

函式工具要求 type: "function" 和 name,description 和 parameters 可選。命名空間工具要求 type: "namespace" 和 name,可包含函式 tools。自定義工具要求 type: "custom" 和 name。網頁搜尋工具要求 type: "web_search"。不要將 Chat 的函式必填欄位照搬到此格式。

引用的上一回應必須已經儲存。儲存目前回應是獨立選擇;previous_response_id 不會強制目前 store: true。廠商保留期限為七天。一次實測成功儲存回應,並在目前 store: false 時透過其 ID 續接;這不代表所有已儲存回應操作均已驗證。

已儲存回應的操作

store: true 成功後,請原樣儲存傳回的回應 ID。以下認證操作使用建立回應時的同一帳號:

  • GET /v1/responses/{response_id} 讀取已儲存的回應。
  • GET /v1/responses/{response_id}/input_items 列出輸入項。可選查詢欄位: order (asc 或 desc, 預設 desc), limit (整數 1–100,預設 20)及 after (上一頁的 last_id)。
  • DELETE /v1/responses/{response_id} 刪除已儲存的回應。

後續建立請求可將已儲存 ID 用作 previous_response_id。存取要求原帳號使用者目前仍有模型存取權限。最多保留七天;已過期或已刪除的回應無法續接。讀取、刪除和續接均保留原帳號綁定。文件未提供取消端點。這些操作有本地契約測試覆蓋。10 月 29 日實測確認了儲存與續接;讀取和輸入項列表傳回 404,刪除未測試。確認可用性前,不要依賴讀取、列表或刪除操作。

Messages 相容性

POST /v1/messages 使用相容 Anthropic 的請求結構。請包含 anthropic-version: 2023-06-01。廠商直接展示了 model、messages、max_tokens 和 stream,但未發佈完整 GLM Messages schema,並提醒其與 Claude 存在差異。其餘控制屬於相容參考欄位,不是逐項實測驗證的 GLM 能力。

curl https://api.seedrouter.ai/v1/messages \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H 'Content-Type: application/json' \
  -H 'anthropic-version: 2023-06-01' \
  -d '{"model":"glm-5.3","messages":[{"role":"user","content":"Explain a safe retry in two sentences."}],"max_tokens":2048}'
欄位結構與驗證依據
model必填 字串 glm-5.3GLM 範例
messages必填非空 user/assistant 陣列;字串或原生文字/工具區塊GLM 文字範例;塊結構使用相容參考
max_tokens必填 整數 1–131072GLM 範例及模型輸出上限
stream布林值;預設 falseGLM 範例
system字串或文字區塊陣列相容參考
temperature數值 0–1相容參考;映射未驗證
top_p數值 0.01–1相容參考;映射未驗證
top_k非負整數相容參考;映射未驗證
stop_sequences字串陣列相容參考
tools用戶端工具:name、input_schema,description 可選相容參考
tool_choice物件 type 為 auto、none、any 或 tool;指定工具要求 name相容參考
thinkingenabled 與 budget_tokens,或 adaptive;不能關閉思考相容參考與 GLM 始終開啟規則
output_config包含 effort low、high 或 max 的物件相容欄位名;映射未驗證
metadata含可選 user_id 的物件相容參考
cache_control臨時標記,可選 ttl 5m 或 1h僅協定參考;GLM 明確指定的 TTL 行為未驗證

enabled 思考的相容預算至少為 1024,且小於 max_tokens。文字區塊要求 text;思考歷史要求 thinking 和 signature;隱藏思考要求 data。工具使用區塊要求 id、name 和 input;工具結果區塊要求 tool_use_id。不接受圖片、音訊或影片區塊。明確指定的快取標記不能證明快取命中、有效期或獨立費率。該模型文件描述的上下文快取是自動的。

輸出、串流傳輸與用量

Chat 傳回 id、created、model、choices 和 usage,可選 request_id 和 web_search。讀取 choices[].message.content、reasoning_content 和 tool_calls。工具呼叫回應可能沒有答案文字。SSE 發送推理、文字及工具參數增量,最後為 [DONE]。按呼叫索引拼接參數片段。官方 GLM Chat 請求不包含 stream_options 欄位。

Responses 傳回原生 output 聯合類型:訊息、推理和工具呼叫。SSE 包含 response.created、response.in_progress、輸出項和內容部分事件、文字/推理/函式參數增量、搜尋進度,以及終態 response.completed、response.incomplete 或 response.failed。不要求 [DONE] 標記。請保留索引和序號。

Messages 傳回原生訊息結構,包含內容區塊、stop_reason 和 usage。事件名包括 message_start、content_block_start/delta/stop、message_delta 和 message_stop。請將思考簽名和工具 ID 作為不透明歷史資料保留。

格式總輸入快取輸入輸出
Chatprompt_tokensprompt_tokens_details.cached_tokenscompletion_tokens
Responsesinput_tokensinput_tokens_details.cached_tokensoutput_tokens
Messagesinput_tokens 加 cache_read_input_tokens 及任何 cache_creation_input_tokenscache_read_input_tokensoutput_tokens

推理屬於輸出的一部分,不另外計費。Chat/Responses 的快取輸入屬於總輸入的一部分。應用一般輸入費率前,請減去單獨報告的快取部分。公開回應提供 token 用量,不提供金額費用。目前價格 來自即時計費設定;失敗的請求不收費。

驗證與錯誤

非法類型、關閉思考、不支援的強度、超額輸出預算及媒體輸入會驗證失敗。Chat 的 tool_stream 要求 stream。不支援的最上層欄位會被省略,不會轉發。請求需要憑證;餘額不足時不能發起付費請求。錯誤使用公開錯誤結構(Messages 使用其原生錯誤格式)。不要將中斷的串流視為完整答案,也不要自動重發結果不確定的請求。

Playground 為所選格式提供相同的允許欄位。空的可選值會被省略;明確設定的 false 和零會保留。切換格式會開啟新對話。用量估算需要回應報告的用量及目前費率。