GLM-4.7 最新发布|Coding Agent 更稳:概览与快速使用(transformers / vLLM / SGLang / Thinking)

如果你最近在关注“代码智能体 / Coding Agent”,那 GLM-4.7 这波更新就值得看一眼。

按 Hugging Face README 的说法,它这次的重点很明确:

写代码更能交付:多语言 Agentic Coding、终端任务更稳

更会用工具:工具调用能力提升,适合跑工作流

推理更强:复杂推理与数学能力拉升

下面我按“教程/指南”的方式,把你最关心的点一次讲清楚(并给出能直接照抄的命令/代码)。

你会得到什么(先看这个)

1 份可跑通的 transformers 最小示例:先把模型跑起来

2 套本地服务化方案:vLLM / SGLang 启动命令直接照抄

Thinking 模式开关说明:什么时候开、怎么按请求关闭

参数建议与踩坑清单:更稳、更少返工

适合谁看

想把 GLM-4.7 接到你的 IDE/Coding Agent(能改仓库、能跑命令)

想在内网/本地部署一个 OpenAI 风格 API 给团队用

想要“工具调用 + 多轮任务”更稳定的模型方案

快速导航

先跑通:跳到「先跑起来:transformers 直接本地推理」

对外提供 API:跳到「想对外提供 API?用 vLLM / SGLang 本地服务化」

开关 Thinking:跳到「Thinking 模式怎么开/怎么关?(以及什么时候该开)」

3 分钟看懂:这次到底强在哪?

1) 代码智能体更稳:Agentic Coding + 终端任务

README 传递的关键信号是:GLM-4.7 在软件工程类基准与终端类任务上相较上一代有明显提升,而且更适合那种“先想清楚再动手”的多步骤流程。

放到日常开发里,你可以把它理解为:

更适合接入到“能改仓库、能跑命令、能读日志”的 Coding Agent 流程

在多轮任务里更不容易因为上下文漂移导致方案前后不一致

2) Vibe Coding 更好看:网页/幻灯片更像“成品”

如果你平时会让模型写前端页面、做简单 Demo、甚至生成演示内容,README 强调 GLM-4.7 在布局、尺寸、现代化视觉风格上更靠谱——一句话:更像能直接给人看的“成品”。

3) 工具调用更靠谱:更适合跑工作流

对于需要浏览网页、查资料、调内部系统的“工具链任务”,README 提到 GLM-4.7 的 Tool Using 有明显提升。实际接入时,建议你用 OpenAI 风格的工具描述格式(tool schema),这样兼容性最好。

4) Thinking 模式更灵活:Interleaved / Preserved / Turn-level

GLM-4.7 继续强化 Interleaved Thinking(响应与工具调用前的思考),并引入:

Preserved Thinking:多轮 coding agent 场景中,自动保留思考块在多轮之间复用,减少信息丢失与推理重建带来的不一致

Turn-level Thinking:同一会话里按轮次控制是否思考;简单任务可关闭以降低延迟与成本

更多说明:

https://docs.z.ai/guides/capabilities/thinking-mode

先跑起来:transformers 直接本地推理

README 里提到与 transformers==4.57.3 配套使用。

下面这段就是“先跑通再说”的最小示例(你只需要准备 GPU/CPU 环境与依赖):

import torch

from transformers import AutoModelForCausalLM, AutoTokenizer

MODEL_PATH = "zai-org/GLM-4.7"

messages = [

{"role": "user", "content": "hello"}

]

tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)

inputs = tokenizer.apply_chat_template(

messages,

tokenize=True,

add_generation_prompt=True,

return_dict=True,

return_tensors="pt",

)

model = AutoModelForCausalLM.from_pretrained(

pretrained_model_name_or_path=MODEL_PATH,

torch_dtype=torch.bfloat16,

device_map="auto",

)

inputs = inputs.to(model.device)

generated_ids = model.generate(

**inputs,

max_new_tokens=128,

do_sample=False,

)

output_text = tokenizer.decode(generated_ids[0][inputs.input_ids.shape[1] :])

print(output_text)

实战建议:

如果你要做“稳定复现”的任务,先用 do_sample=False(贪婪)或固定随机种子

大上下文(README 默认设置里 max new tokens 很大)会显著拉高显存与时延,按任务收敛配置

想对外提供 API?用 vLLM / SGLang 本地服务化

README 说明:vLLM 与 SGLang 需要使用它们的 main 分支(或 nightly/dev 镜像) 才能良好支持 GLM-4.7。

1) vLLM:安装与启动(照抄版)

Docker:

docker pull vllm/vllm-openai:nightly

pip(README 强调必须使用 pypi 官方 index,且安装 nightly wheel):

pip install -U vllm --pre --index-url https://pypi.org/simple --extra-index-url https://wheels.vllm.ai/nightly

启动服务(README 示例,包含 tool/reasoning parser 与自动工具选择):

vllm serve zai-org/GLM-4.7-FP8 \

--tensor-parallel-size 4 \

--speculative-config.method mtp \

--speculative-config.num_speculative_tokens 1 \

--tool-call-parser glm47 \

--reasoning-parser glm45 \

--enable-auto-tool-choice \

--served-model-name glm-4.7-fp8

要点解释(便于你按环境改参数):

--tensor-parallel-size:多卡张量并行规模,按 GPU 数量与显存决定

--served-model-name:对外暴露的模型名,便于网关/SDK 管理

--tool-call-parser / --reasoning-parser:面向工具调用与思考块解析的适配器参数

2) SGLang:安装与启动(照抄版)

Docker:

docker pull lmsysorg/sglang:dev

启动服务(README 示例):

python3 -m sglang.launch_server \

--model-path zai-org/GLM-4.7-FP8 \

--tp-size 8 \

--tool-call-parser glm47 \

--reasoning-parser glm45 \

--speculative-algorithm EAGLE \

--speculative-num-steps 3 \

--speculative-eagle-topk 1 \

--speculative-num-draft-tokens 4 \

--mem-fraction-static 0.8 \

--served-model-name glm-4.7-fp8 \

--host 0.0.0.0 \

--port 8000

注意:上面参数偏“高性能推理”取向,落地时你需要结合:

GPU 显存

并发量

是否需要 speculative decoding

Thinking 模式怎么开/怎么关?(以及什么时候该开)

1) 推荐:多轮 Agentic 任务开启 Preserved Thinking

README 建议:对于多轮 agentic 任务(例如 τ²-Bench、Terminal Bench、SWE-bench 多步骤修复),优先开启 Preserved Thinking。

SGLang 支持通过配置开启(README 示例):

"chat_template_kwargs": {

"enable_thinking": true,

"clear_thinking": false

}

含义:

enable_thinking: true:开启 thinking

clear_thinking: false:不清理 thinking,跨轮保留(更适合长任务)

2) 想更快更省:按请求关闭 Thinking

README 说明:vLLM 与 SGLang 在发送请求时默认开启 thinking;如果你希望对某些轻量请求关闭,可以在请求里加:

extra_body={"chat_template_kwargs": {"enable_thinking": False}}

实战建议:

写代码/跑流程/多工具链:默认开启 thinking

简单问答/格式化/翻译:可以关闭 thinking 提升吞吐

参数怎么配更稳:默认 vs 评测取向

README 给了两组常用参数(这里用“建议区间”的方式复述,方便你对齐自己的 SDK/网关参数名):

默认设置(大多数任务)

temperature: 1.0

top_p: 0.95

max_new_tokens: 131072

终端与软件工程评测取向(更稳)

temperature: 0.7

top_p: 1.0

max_new_tokens: 16384

τ²-Bench 取向(更“定型”)

temperature: 0

max_new_tokens: 16384

落地建议(更像“工程默认值”):

真正跑生产时,max_new_tokens 不要盲目上到 131072;先按业务输出长度设置上限

对“必须稳定交付”的任务(修 bug、改代码),优先降低随机性(降低 temperature 或关闭采样)

工具调用接入提示(少踩坑)

README 强调:vLLM / SGLang 都支持 tool calling,并建议使用 OpenAI 风格的工具描述格式。

工程实践里常见的两点:

工具 schema 约束要严格:参数类型、必填字段要明确

工具返回要可追溯:返回结果尽量包含 source、id、timestamp,便于多轮任务的引用与复盘

常见坑与排查清单(建议收藏)

框架版本:vLLM / SGLang 需要 main/nightly/dev,版本不对会出现无法加载或行为异常

FP8 权重:示例里多处使用 GLM-4.7-FP8,请确认你的硬件与推理框架支持 FP8

Thinking 输出处理:如果你要把模型输出展示给用户,记得区分“思考块”和“最终回答”,避免把思考内容直接透出到 UI

多轮一致性:长任务建议开启 Preserved Thinking,并在 Agent 层做“任务状态摘要”以减少上下文膨胀

相关链接

Hugging Face README:

https://huggingface.co/zai-org/GLM-4.7/blob/main/README.md

Thinking Mode 文档:

https://docs.z.ai/guides/capabilities/thinking-mode

官方 GitHub:

https://github.com/zai-org/GLM-4.5

友情链接