ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

GLM-4.5模型接入Claude Code:TaoToken统一Key配置与SGLang/vLLM推理服务验证

GLM-4.5模型接入Claude Code:TaoToken统一Key配置与SGLang/vLLM推理服务验证 1. 为什么要在 Claude Code 里接 GLM-4.5GLM-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_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewriteAPI 基址统一用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填你刚创建的 KeyANTHROPIC_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.5api_base_url这里写到了/v1/chat/completions因为多数 router 会直接拼这个路径。如果你的版本要求只写到/api那就去掉后面的部分以实际报错为准。models数组里写glm-4.5router.default用提供方名,模型名的格式。如果你要接的是自己用 SGLang 起的服务把api_base_url换成你的服务器地址比如http://127.0.0.1:8000/v1/chat/completionsapi_key填EMPTY本地 SGLang 通常不校验 Keymodels和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_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite长期编码、跑 Agent 流程、需要稳定额度https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite管理 Key、查看用量https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite接入细节、字段说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite如果你打算把 GLM-4.5 接到 Claude Code 之外的 Anthropic 兼容工具里配置结构是一样的改ANTHROPIC_BASE_URL和模型名即可。自建推理服务那边如果后面要换模型版本记得同步改--served-model-name和配置里的模型名这两处不一致是最容易被忽略的坑。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进