Skip to main content
POST
BaseURL 说明:默认 BaseURL 为 https://direct.evolink.ai,对文本模型支持更好,支持长连接;https://api.evolink.ai 为备用地址。
通过 Responses 接口调用 GLM 系列模型,支持文本对话、流式输出、函数调用,以及按型号提供的图像理解和联网搜索能力。

模型与参数差异

四个型号均可通过在 input 中携带历史消息实现多轮对话。 通过 reasoning.effort 设置推理强度,不要用顶层 reasoning_effortthinking 替代。glm-5.3glm-5.3-flashglm-5.3-flashx 按以下规则处理: 未识别的值保持原值,不提供兼容映射;请使用表中列出的值。
5.3 系列无法关闭思考。 minimalnonelow 处理,仍会产生思考 token,并按输出计费。glm-5.2 传入 none 仍可能产生推理 token,不能通过该值确保关闭思考。所有型号的推理 token 都包含在输出用量中。

系统提示词与多轮对话

系统提示词推荐放在 input 数组的 role="system" 消息中。glm-5.3-flash 的顶层 instructions 可用于字符串输入;使用消息数组时,请改用系统消息。
glm-5.3-flashglm-5.3-flashx 支持通过响应 ID 续聊:首轮传 store=true,次轮把返回的顶层 id 原样填入 previous_response_id,保持相同模型并传入新问题。它不是 output 中某一项的 ID。
glm-5.2 不支持通过响应 ID 续聊。 传入 previous_response_id 会返回 400,设置 store=true 不会开启此能力。需要跨型号使用时,省略 previous_response_id,每轮携带完整历史。

流式响应

设置 stream=true 后,按 SSE 事件逐条处理: 收到终态事件后即可结束读取,不要只等连接关闭或 Chat Completions 风格的 [DONE]。HTTP 200 只表示流已建立,还要检查事件中的最终状态。工具调用轮次可能以 response.completed 结束,但仍需客户端执行函数并发起下一轮。

函数调用

在请求示例中选择“客户端函数调用”查看完整请求。Responses 的函数定义是平铺结构:
  1. 遍历 response.output,找出所有 type="function_call" 项。
  2. 解析并校验 arguments JSON 字符串,再由你的程序执行对应函数。
  3. 将上一轮完整 output 追加到历史,再为每个调用追加 function_call_output,使用原始 call_id 与字符串形式的 output
  4. 把更新后的历史作为下一轮 input,继续请求。请求示例中的“回传函数执行结果”展示了这一结构。
parallel_tool_calls=false 不能确保每轮只调用一个函数。 客户端应处理本轮返回的全部函数调用,并在执行前校验参数。

图像、搜索与 JSON 输出

  • 图像理解:仅 glm-5.3-flashglm-5.3-flashx 支持。在用户消息的 content 中混排 input_textinput_image,通过 image_url 传入图片公网 URL 或 Base64 Data URL。glm-5.3glm-5.2 不支持图像输入,请使用纯文本。
  • 联网搜索:声明 tools: [{"type":"web_search"}]。搜索由服务端执行,结果通过 web_search_call 和正文返回;是否调用搜索以实际输出项为准。实际搜索除 token 外可能产生按次费用,以模型定价为准。
  • JSON 输出:使用 text.format.type="json_object",在提示词中明确要求合法 JSON,并在客户端解析、校验。本接口暂不提供严格 JSON Schema 约束,不能依赖 json_schemastrict=true 确保输出符合指定结构。
搜索后续聊时,将上一轮完整 output(包括 web_search_callmessage)追加到 input,再加入新问题。保留输出项的原始 idstatusaction 等字段。搜索已由服务端执行,无需为 web_search_call 构造 function_call_output。请求示例 web_search_history 展示了这一结构。

响应与用量

正文位于 outputtype="message" 项的 content[type="output_text"].text。响应可能包含顶层 output_text;为兼容该字段缺失的情况,仍应遍历 output。推理可能位于 reasoning.contentreasoning.summary,不要把它拼入正文。
  • usage.input_tokens 包含缓存命中的输入;input_tokens_details.cached_tokens 是其中的子集。
  • usage.output_tokens 包含推理 token;output_tokens_details.reasoning_tokens 是其中的子集,可能为 0 或缺失。
  • 前缀缓存自动生效,无需额外 cache_control,命中量以本次返回的 cached_tokens 为准。
  • status="incomplete"incomplete_details.reason="max_output_tokens" 表示预算耗尽,可能只有推理、没有正文;请提高输出上限。

授权

Authorization
string
header
必填

在 Authorization 请求头中传入 Bearer YOUR_API_KEY。

请求体

application/json
model
enum<string>
默认值:glm-5.3-flash
必填

选择 GLM 模型。四个型号均支持本接口的文本调用。

不同模型支持的能力有所不同,请查看对应型号的说明。

可用选项:
glm-5.3,
glm-5.3-flash,
glm-5.3-flashx,
glm-5.2
示例:

"glm-5.3-flash"

input
必填

必填。纯文本字符串,或 Responses 输入项数组。数组支持消息、回传的模型输出项与 function_call_output。多轮对话可在每次请求中携带完整历史;系统提示词推荐作为 role=system 消息放在数组首项。图片使用 input_image,仅 glm-5.3-flash 与 glm-5.3-flashx 支持。不要使用 Chat Completions 的 messages / image_url 内容块格式。

示例:

"请用一句话介绍你自己。"

max_output_tokens
integer

本次生成的输出 token 上限,包含推理 token。建议从 1024 起按任务调整。过小可能在思考阶段耗尽预算,只返回 reasoning 项而没有正文;检查 status 和 incomplete_details。不要改写为 max_tokens。

必填范围: x >= 1
示例:

1024

stream
boolean
默认值:false

开启 SSE 流式返回。正文读取 response.output_text.delta 的 delta;成功终态为 response.completed。遇到 response.incomplete、response.failed 或 error 也应结束本轮并处理。不要只等待 [DONE] 或连接断开。

reasoning
object

Responses 使用嵌套 reasoning.effort,而非顶层 reasoning_effort 或 thinking。推理用量包含在 output_tokens 中;简单任务可能返回 reasoning_tokens=0,这不代表支持关闭思考。

instructions
string

系统指令。glm-5.3-flash 可在 input 为字符串时使用此字段。input 为消息数组时,请将系统提示词放在数组首项的 role=system 消息中。

tools
object[]

支持客户端 function 工具和服务端 web_search。函数声明使用平铺的 name / description / parameters,不能嵌套成 Chat Completions 的 function 对象。function_call 需要由你的程序执行并回传结果;web_search 由服务端执行,实际搜索除 token 外可能产生按次费用,以模型定价为准。

tool_choice

auto:由模型选择;none:不调用工具;required:要求调用工具;指定函数可传 {"type":"function","name":"get_temperature"}。并非所有模型与工具组合都保证支持相同的强制选择行为。

可用选项:
auto,
none,
required
示例:

"auto"

parallel_tool_calls
boolean

是否允许一轮调用多个工具。设置 false 不能确保每轮只返回一个函数调用,客户端应遍历并处理全部 function_call。

text
object

输出格式。示例提供 json_object;HTTP 200 不等于返回内容满足 JSON Schema。

store
boolean

是否保存本次响应以便后续引用。glm-5.3-flash 与 glm-5.3-flashx 可配合 store=true 与 previous_response_id 串联多轮对话。glm-5.2 不支持响应 ID 续聊,设置 store=true 不会开启此能力;请在 input 中携带完整历史。

previous_response_id
string

上一轮响应的顶层 id,用于串联多轮对话。glm-5.3-flash 与 glm-5.3-flashx 支持此方式,请配合 store=true 并保持相同模型。原样传入响应 id,不要使用 output 中某一项的 id。glm-5.2 不支持此方式,传入该字段会返回 400。需要跨型号使用时,请省略此字段并在 input 中携带完整历史。

示例:

"上一轮返回的响应 ID"

metadata
object

自定义字符串键值元数据,可在响应的 metadata 中读取。不要放入密钥或敏感信息。

示例:
temperature
number

采样参数;具体有效范围和是否生效由模型决定。不要依赖它保证确定性,推理场景可省略。

top_p
number

采样参数;具体有效范围和是否生效由模型决定,通常可省略。

响应

生成成功或返回不完整结果;检查 status。流式时返回 text/event-stream。

id
string

本轮响应 ID。用于 previous_response_id 时原样传入。

示例:

"response_demo"

object
string
Allowed value: "response"
created_at
integer

创建时间,Unix 秒。

model
string
示例:

"glm-5.3-flash"

status
enum<string>

completed 表示本轮生成结束,也可能仅有工具调用;incomplete 表示输出不完整。请同时检查 output 和 error。

可用选项:
completed,
incomplete,
failed,
in_progress,
queued
output
object[]

有序输出项。遍历 type=message 的 content 中 type=output_text 的 text 得到正文。reasoning 可能在正文之前;function_call 轮次可能没有正文。不要固定读取 output[0]。

output_text
string

可选的正文聚合字段,可能缺失。通用客户端应遍历 output。

usage
object
error
object | null

响应错误;成功时通常为 null。

incomplete_details
object
metadata
object | null