1. 为什么要在 Claude Code 里接 GLM-4.5
GLM-4.5 是智谱开源的一款面向智能体场景的大语言模型,提供思考模式与非思考模式两种推理路径,官方同时放出了 GLM-4.5 与 GLM-4.5-Air 的基础模型、混合推理模型和 FP8 版本,底层用 transformers、vLLM、SGLang 做推理实现,支持 BF16 与 FP8 精度。它能做的事很直接:复杂推理、代码生成、多轮工具调用,适合把它当成一个能写代码、能读仓库、能跑 Agent 流程的“后端大脑”。
Claude Code 则是跑在本地终端里的编程助手界面,你输入任务,它读文件、改代码、执行命令。默认它连的是 Anthropic 官方通道,但它的请求格式是标准的 Messages API 风格,所以只要有一个兼容的 API 网关,就能把后端换成 GLM-4.5。问题在于:GLM-4.5 要么跑在你自己用 SGLang/vLLM 起的推理服务器上,要么走云端 API,两条路的地址、鉴权、模型名都不一样,Claude Code 的配置又分散在 settings.json 和 config.toml 里,手动拼很容易错。
这篇就解决这一件事:用 TaoToken 的统一 Key 和 API 通道,把 GLM-4.5 接进 Claude Code,同时把 SGLang/vLLM 自建推理服务的对接要点讲清楚,最后给你可复制的配置片段和连通性验证动作。适合已经在本地或云端跑过推理服务、想让 Claude Code 直接调用 GLM-4.5 的开发者,也适合还没起服务、想先用统一通道跑通端到端流程的人。
2. TaoToken 前置:统一 Key 与通道准备
TaoToken 在这里扮演的角色是“统一入口”。你不需要在 Claude Code 里分别配置 SGLang 的本地地址、vLLM 的端口、云端 API 的域名,而是把模型请求都指向同一个 API 基址,用同一个 Key 做鉴权,模型名通过参数区分。这样切换后端时只改一个模型名,不用动整份配置。
先拿到 Key。打开控制台,进入 API Keys 页面创建一个新 Key,复制出来。这个 Key 后面会写进 Claude Code 的配置里,作为ANTHROPIC_AUTH_TOKEN或对应字段的值。注意 Key 只在创建时完整显示一次,丢了就重建一个。
- 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
- API Keys 页面:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
- 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
API 基址统一用https://taotoken.net/api,这个地址不加 UTM 参数,直接写进配置。模型名方面,GLM-4.5 走统一通道时用glm-4.5这个标识;如果你是自己用 SGLang 起的服务,--served-model-name填什么,配置里就写什么,两边必须一致。
注意:TaoToken 是合规的 API 聚合通道,不是任何形式的非法中转。你用它做的是正常的模型调用鉴权与转发,配置里不要出现任何网络代理相关的字段。
如果你还没决定用云端通道还是自建推理,可以先按下面的顺序走:先用统一通道把 Claude Code 跑通,确认请求能发出去、能收到回复;再决定要不要在本地或云端起 SGLang/vLLM,把后端换成自己的服务。这样排障时变量少,容易定位问题。
3. 可复制配置:settings.json 与 config.toml 骨架
Claude Code 的配置分两块:一块是它自身的运行参数,通常放在settings.json;另一块是模型提供方与路由,放在config.toml(或对应的 router 配置)。下面给的是骨架,字段名按你实际安装的版本为准,但结构可以直接抄。
先看settings.json。这个文件一般放在用户目录下的.claude文件夹里,或者项目根目录的.claude/settings.json。核心是告诉 Claude Code:鉴权用哪个 token、API 基址指向哪里。
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "你的_TaoToken_Key", "ANTHROPIC_MODEL": "glm-4.5", "ANTHROPIC_SMALL_FAST_MODEL": "glm-4.5" } }这里ANTHROPIC_BASE_URL指向 TaoToken 的 API 基址,ANTHROPIC_AUTH_TOKEN填你刚创建的 Key,ANTHROPIC_MODEL和ANTHROPIC_SMALL_FAST_MODEL都填glm-4.5。小模型字段有些版本会用来做轻量任务,填同一个模型最省事,避免它去请求一个不存在的模型名导致 404。
再看config.toml。如果你用的是带 router 的安装方式,模型提供方和路由规则写在这里。下面是一个最小骨架:
[[providers]] name = "taotoken-glm" api_base_url = "https://taotoken.net/api/v1/chat/completions" api_key = "你的_TaoToken_Key" models = ["glm-4.5"] [router] default = "taotoken-glm,glm-4.5"api_base_url这里写到了/v1/chat/completions,因为多数 router 会直接拼这个路径。如果你的版本要求只写到/api,那就去掉后面的部分,以实际报错为准。models数组里写glm-4.5,router.default用提供方名,模型名的格式。
如果你要接的是自己用 SGLang 起的服务,把api_base_url换成你的服务器地址,比如http://127.0.0.1:8000/v1/chat/completions,api_key填EMPTY(本地 SGLang 通常不校验 Key),models和router.default里的模型名换成你--served-model-name指定的名字。这样同一份配置结构,只改三四个字段就能在云端通道和本地推理之间切换。
提示:改完配置后,如果 Claude Code 已经在运行,需要重启它,或者用 router 的重启命令让配置生效。只保存文件不重启,旧配置还在内存里。
4. SGLang/vLLM 推理服务对接要点
自建推理服务这块,核心是把模型正确加载起来,并让它的接口格式和 Claude Code 期望的格式对得上。GLM-4.5 官方支持 vLLM 和 SGLang 两种实现,下面分别说。
SGLang 启动 GLM-4.5 的典型命令:
python3 -m sglang.launch_server \ --model-path zai-org/GLM-4.5 \ --served-model-name glm-4.5 \ --port 8000 \ --host 0.0.0.0--model-path指向模型权重路径,zai-org/GLM-4.5是它在模型平台上的标识;--served-model-name是服务对外暴露的模型名,必须和 Claude Code 配置里的模型名一致;--host 0.0.0.0让服务监听所有网卡,这样本地机器才能通过服务器 IP 访问。启动成功后,服务会监听http://0.0.0.0:8000,接口路径是/v1/chat/completions。
vLLM 启动方式类似:
python3 -m vllm.entrypoints.openai.api_server \ --model zai-org/GLM-4.5 \ --served-model-name glm-4.5 \ --port 8000 \ --host 0.0.0.0vLLM 同样暴露 OpenAI 兼容接口,路径也是/v1/chat/completions。两者选哪个看你的硬件和精度需求:FP8 版本在支持 FP8 的卡上显存占用更低、吞吐更高,BF16 版本兼容性更好。GLM-4.5 是混合推理模型,思考模式和非思考模式可以通过请求参数控制,如果你在 Claude Code 里发现回复里带了较长的推理过程,可以在服务侧或请求侧调整模式参数。
对接时最容易出问题的是三处:模型名不一致、接口路径多写或少写/v1、以及--host没设成0.0.0.0导致外部访问不到。启动日志里会打印实际监听的地址和模型名,启动后先看一眼日志,确认这两项再往下走。
5. 验证请求与成功结果
配置写完、服务起来之后,先别急着在 Claude Code 里敲复杂任务,用一条最小请求验证连通性。最直接的方式是用 curl 打一次 chat completions 接口。
走 TaoToken 统一通道的验证命令:
curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer 你的_TaoToken_Key" \ -H "Content-Type: application/json" \ -d '{ "model": "glm-4.5", "messages": [{"role": "user", "content": "用一句话说明什么是混合推理模型"}], "max_tokens": 128 }'如果返回的 JSON 里有choices数组,且message.content是一段正常的中文回复,说明通道、Key、模型名三样都对上了。如果返回 401,检查 Key 是否复制完整;返回 404,检查模型名和路径;返回 400,检查请求体 JSON 格式。
验证自建 SGLang 服务的命令:
curl -s http://127.0.0.1:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "glm-4.5", "messages": [{"role": "user", "content": "写一个 Python 快排函数"}], "max_tokens": 256 }'本地服务不需要 Authorization 头,model字段填--served-model-name的值。返回正常就说明推理服务本身没问题。
最后在 Claude Code 里做端到端验证。启动 Claude Code,输入一个简单任务,比如让它解释当前目录下某个文件的作用。观察它是否能正常读取文件、生成回复。如果 Claude Code 报连接错误,回到settings.json检查ANTHROPIC_BASE_URL有没有写错;如果报模型不存在,检查ANTHROPIC_MODEL和实际模型名是否一致。成功的话,你会看到 GLM-4.5 的回复直接出现在终端里,整个链路就通了。
6. 本篇常见错排查
报错一:401 Unauthorized。最常见的原因是 Key 没填对,或者填到了错误的字段。检查settings.json里ANTHROPIC_AUTH_TOKEN的值,确认没有多余空格、没有换行。如果你用的是config.toml,检查api_key字段。另外确认 Key 没有过期或被删除。
报错二:404 model not found。模型名不一致导致的。统一通道用glm-4.5,自建服务用--served-model-name指定的名字,两边必须完全一样,大小写敏感。如果你在config.toml的router.default里写了提供方名,模型名,逗号两边不要加空格。
报错三:连接被拒绝或超时。自建服务场景下,先确认服务真的起来了,curl http://127.0.0.1:8000/v1/models能不能返回模型列表。如果本地能通、远程不通,检查--host是否设成了0.0.0.0,以及服务器防火墙有没有放行对应端口。统一通道场景下,检查ANTHROPIC_BASE_URL是否写成了https://taotoken.net/api,不要漏掉https。
报错四:请求格式错误 400。多数是请求体 JSON 不合法,比如引号没转义、逗号多余。用 curl 验证时,把-d后面的 JSON 贴到格式化工具里检查一遍。如果是在 Claude Code 里报这个错,可能是 router 版本和 Claude Code 版本不匹配,升级到较新版本再试。
报错五:回复内容被截断或为空。检查max_tokens是否设得太小,GLM-4.5 在思考模式下会先输出推理过程,如果 token 上限低,可能还没输出正式回答就被截断了。把max_tokens调大,或者在服务侧关闭思考模式。
排障时如果拿不准是通道问题还是配置问题,先用 curl 直接打接口,把 Claude Code 这一层排除掉。curl 通了,问题就在 Claude Code 配置;curl 不通,问题在通道或服务本身。这个二分法能省很多时间。
7. 接下来怎么用:按场景选入口
链路跑通之后,按你的实际用途选下一步。如果你只是想让 Claude Code 能调用 GLM-4.5 写代码、读仓库,那现在的配置已经够用了,直接在日常项目里用就行。如果你要验证 GLM-4.5 在不同任务上的表现,比如对比思考模式和非思考模式的输出差异,可以到模型对话页面直接试,不用每次都走 Claude Code。
- 验证模型效果、试不同提示词:https://taotoken.net/model-chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite
- 长期编码、跑 Agent 流程、需要稳定额度:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite
- 管理 Key、查看用量:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
- 接入细节、字段说明:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite
如果你打算把 GLM-4.5 接到 Claude Code 之外的 Anthropic 兼容工具里,配置结构是一样的,改ANTHROPIC_BASE_URL和模型名即可。自建推理服务那边,如果后面要换模型版本,记得同步改--served-model-name和配置里的模型名,这两处不一致是最容易被忽略的坑。