1. Windows 下 Droid CLI 接入 GLM-4.7 的场景与痛点
Droid CLI 是 Factory.ai 推出的面向代码仓库的 AI 编程代理工具,形态上和 Claude Code 很像,都是跑在终端里、能读写你本地代码、能执行命令的 Agent 型工具。它默认走的是官方托管的那套模型通道,登录之后用/model就能切换不同的大模型。GLM-4.7 是智谱最新一代的旗舰模型,代码能力和长上下文表现都不错,很多人想在 Droid CLI 里直接用它来写代码、改 bug、跑重构。
问题就出在“怎么把请求发到 GLM-4.7 上”。Droid CLI 默认的 endpoint 指向它自己的服务端,你想换成别的模型服务,就得改配置里的 Base URL 和鉴权方式。Windows 环境下这一步尤其容易翻车:有人改完 endpoint 之后droid一启动就报local proxy failed,有人请求发出去直接返回401 Unauthorized,还有人卡在 OAuth 登录环节,浏览器弹出来了但回调一直失败。这些报错看着吓人,其实大部分都是配置项没对齐导致的。
这篇就聚焦 Windows 这一个平台,把 Droid CLI 接入 GLM-4.7 的完整流程拆开讲。核心是三件事:把 endpoint 改到 TaoToken 的兼容地址、把 API Key 配对、把 Model ID 写成 GLM-4.7 对应的标识。三步做完,再跑一次连通性验证,基本就能在终端里正常对话和写代码了。下面每一步都给可复制的配置片段,你照着改就行。
适合谁看:已经在 Windows 上装了 Droid CLI、想换成 GLM-4.7 但被报错卡住的开发者;或者还没装、想先搞清楚配置结构再动手的人。如果你连 Droid CLI 都还没装,本文也会带上安装命令,跟着走一遍即可。
2. TaoToken 前置准备:拿到 Base URL 和 API Key
在改 Droid CLI 配置之前,先把两样东西准备好:一个能用的 API Key,以及对应的 Base URL。TaoToken 提供的是 OpenAI 兼容风格的接口,Droid CLI 这类工具改 endpoint 时,本质上就是把请求指向这个兼容地址,再用 Key 做鉴权。
先访问官网注册并登录:
https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=登录之后进控制台,找到 API Keys 管理页面,新建一个 Key。这个 Key 就是后面配置里要填的鉴权凭证,格式通常是一串以sk-开头的字符串。创建完先复制出来存好,页面刷新后有些平台就不再完整显示了。
https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewriteBase URL 这块要特别注意。Droid CLI 的配置里通常要求填到/v1这一层,也就是 OpenAI 兼容接口的根路径。TaoToken 的 API 根地址是:
https://taotoken.net/api注意这个地址后面不要带 UTM 参数,配置里填的是纯接口地址。如果你在别的工具里见过有人填https://taotoken.net/api/v1,那是因为不同工具对路径拼接的处理不一样——有的工具会自动补/v1,有的不会。Droid CLI 这边建议先按https://taotoken.net/api填,如果请求 404 再试带/v1的版本。这个细节后面排障章节会再展开。
模型 ID 这块,GLM-4.7 在兼容接口里的标识一般写成glm-4.7或者带厂商前缀的形式。具体用哪个,取决于 TaoToken 侧的模型映射表。最稳妥的办法是先去模型对话页面确认一下当前可用的模型名,再填到配置里。
https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite把这三样东西记下来:Base URL、API Key、Model ID。接下来改 Droid CLI 配置时,就是围绕这三个值展开。如果你还没装 Droid CLI,Windows 下的安装命令是:
irm https://app.factory.ai/cli/windows | iex装完之后在终端执行droid能进交互界面,说明安装没问题。接下来就是改配置,让它走 TaoToken 的通道。
3. 可复制配置:Droid CLI 的 endpoint 与鉴权片段
Droid CLI 的配置分两层:一层是全局的模型服务配置,决定请求发到哪个 endpoint、用什么 Key;另一层是当前会话选用的模型,决定用哪个 Model ID。Windows 下这些配置一般落在用户目录的配置文件夹里,常见路径是%USERPROFILE%\.factory\或者%USERPROFILE%\.droid\下面,具体以你安装后的实际目录为准。你可以先在终端里执行一次droid,让它生成默认配置,再去找对应的文件改。
配置的核心结构是 JSON 或 TOML 格式,不同版本可能略有差异。下面给一份可直接参考的 JSON 片段,把里面的占位值换成你自己的即可:
{ "providers": { "taotoken": { "type": "openai-compatible", "baseURL": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "models": { "glm-4.7": { "id": "glm-4.7", "name": "GLM-4.7", "contextWindow": 128000 } } } }, "defaultProvider": "taotoken", "defaultModel": "glm-4.7" }如果你用的是 TOML 格式的配置,等价写法是这样:
[providers.taotoken] type = "openai-compatible" baseURL = "https://taotoken.net/api" apiKey = "sk-你的TaoToken密钥" [providers.taotoken.models.glm-4.7] id = "glm-4.7" name = "GLM-4.7" contextWindow = 128000 defaultProvider = "taotoken" defaultModel = "glm-4.7"这里有几个关键点必须对齐,否则后面一定报错。第一,baseURL结尾不要带斜杠,也不要带/chat/completions这种具体路径,工具会自己拼。第二,apiKey必须是完整的 Key,前后不要有空格,Windows 下从网页复制有时会带上换行符,粘进去之后请求会直接 401。第三,type字段要写成openai-compatible,这是告诉 Droid CLI 用 OpenAI 兼容协议去发请求,而不是走它自己的私有协议。
如果你在 Droid CLI 里用的是/model命令切换模型,那还要确认模型列表里能识别到glm-4.7这个 ID。有些版本会把 provider 和 model 分开配置,provider 里定义 endpoint 和 Key,model 里引用 provider 并指定 Model ID。这种情况下配置会拆成两段,但核心字段还是上面那三个。
改完配置后保存,重启一次droid。如果启动时没有报local proxy failed,说明 endpoint 至少被正确读取了。接下来进交互界面,用/model看一下当前选中的模型是不是 GLM-4.7,如果不是就手动切过去。这一步做完,配置层面就算通了,下一节验证实际请求。
4. 验证请求:确认 GLM-4.7 真的在响应
配置改完不代表请求就能通,得实际发一次请求看返回。最直接的验证方式是在 Droid CLI 交互界面里发一句简单的话,比如让它解释一段代码或者写个函数。如果模型正常响应,说明整条链路是通的。
但更严谨的做法是先用命令行单独测一次接口,把 Droid CLI 这一层排除掉。Windows 下可以用 PowerShell 的Invoke-RestMethod发一个标准的 chat completions 请求:
$headers = @{ "Authorization" = "Bearer sk-你的TaoToken密钥" "Content-Type" = "application/json" } $body = @{ model = "glm-4.7" messages = @( @{ role = "user"; content = "用一句话说明什么是递归" } ) } | ConvertTo-Json -Depth 5 Invoke-RestMethod -Uri "https://taotoken.net/api/v1/chat/completions" ` -Method Post -Headers $headers -Body $body注意这里 URL 带了/v1,因为这是直接调 OpenAI 兼容接口的标准路径。如果这条命令返回了正常的 JSON,里面有choices字段和模型输出内容,说明 Key、endpoint、Model ID 三者都是对的。这时候再回到 Droid CLI 里发请求,基本不会出问题。
如果 PowerShell 这条命令报错,那问题就定位在配置或网络层,跟 Droid CLI 本身无关。常见的情况是返回 401,说明 Key 不对或者没带上;返回 404,说明路径拼错了,试试去掉/v1或者换成别的路径形式;返回模型不存在的错误,说明 Model ID 写错了,去模型列表页核对一下准确名称。
验证通过之后,在 Droid CLI 里跑一个真实任务,比如让它读一个本地文件并做修改。这一步能确认 Agent 的工具调用链路也是通的,不只是纯对话。如果对话能通但工具调用失败,那可能是模型对 function calling 的支持格式有差异,需要在配置里确认是否开启了工具调用相关的选项。
实测下来,只要 PowerShell 那条命令能返回正常结果,Droid CLI 里九成以上的请求都能通。剩下那一成通常是会话缓存或者模型选择没刷新导致的,重启一次droid或者重新/model选一次就能解决。
5. 常见报错排查:401、local proxy failed 与 OAuth 问题
这一节把 Windows 下最容易撞到的几个报错逐个拆开。每个报错都给触发原因和对应的修法,你对着自己的终端输出找就行。
401 Unauthorized是最常见的。触发原因基本是三类:Key 没填、Key 填错、Key 没被正确读取。先检查配置文件里的apiKey字段,确认是完整的sk-开头字符串,前后没有空格和换行。Windows 下用记事本编辑 JSON 有时会引入 BOM 头,导致解析异常,建议用 VS Code 或者 Notepad++ 改,保存时选 UTF-8 无 BOM。如果配置里 Key 是对的,但请求还是 401,那可能是环境变量覆盖了配置文件——有些工具会优先读OPENAI_API_KEY这类环境变量,你可以在 PowerShell 里执行$env:OPENAI_API_KEY看看有没有旧值,有的话清掉。
local proxy failed这个报错通常出现在 Droid CLI 启动阶段,意思是它尝试起一个本地代理来转发请求,但代理没起来。原因可能是端口被占用,也可能是 endpoint 配置成了它不认识的格式。先检查配置里的baseURL是不是写成了https://taotoken.net/api这种标准 HTTPS 地址,如果误写成http://localhost:xxxx之类的本地地址,代理逻辑就会混乱。另外确认一下系统代理设置,Windows 的“设置 → 网络和 Internet → 代理”里如果开了手动代理,可能干扰 Droid CLI 的本地代理启动,临时关掉再试。
OAuth 登录回调失败是另一类问题。Droid CLI 首次使用会走一次 OAuth 登录,浏览器弹出来授权后回调到本地端口。如果回调一直卡住,通常是本地端口被防火墙拦了,或者默认浏览器没正确跳转。可以尝试在终端里手动复制回调 URL 到浏览器打开,或者换一个默认浏览器再试。如果你已经通过配置文件配好了 TaoToken 的 Key,有些版本可以跳过 OAuth 直接用,具体看启动时有没有--no-login之类的参数。
reading choices 报错一般出现在请求返回了非预期结构时。比如接口返回的是错误 JSON,但工具按正常响应去解析choices字段,就会报这个。根因还是请求本身失败了,往上翻一层看实际的 HTTP 状态码和返回体。用第 4 节的 PowerShell 命令单独测一次,能看到真实的错误信息。
模型不存在或 model not found说明 Model ID 和 TaoToken 侧的映射对不上。去模型列表页确认 GLM-4.7 的准确标识,注意大小写和连字符。有的平台写glm-4.7,有的写glm-4-7,还有的带厂商前缀,填错一个字符就会报这个错。
排查顺序建议是:先用 PowerShell 直连接口确认 Key 和 endpoint 没问题,再回到 Droid CLI 看配置读取是否正常,最后检查会话层的模型选择。这样一层层排除,比一上来就改一堆配置高效得多。
6. 把 GLM-4.7 用起来:接入后的实用建议
配置通了之后,Droid CLI 里就能正常用 GLM-4.7 干活了。日常写代码、改 bug、做重构这些场景,直接在终端里描述需求就行,Agent 会自己读文件、改代码、跑命令。GLM-4.7 的长上下文对读大文件比较友好,你可以让它一次性分析整个模块再动手改。
如果你打算长期在编码场景里用,可以关注一下 Coding Plan 相关的方案,适合高频调用的情况:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite接入文档里有更细的接口说明和参数解释,遇到配置字段不确定的时候可以对照查:
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite想先试试模型对话效果、确认 GLM-4.7 的输出风格,可以直接在网页端聊几句:
https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite最后提醒一个 Windows 下的实用技巧:配置文件改完之后,养成用 PowerShell 直连测一次的习惯,比在 Droid CLI 里反复重启快得多。Key 和 endpoint 这两个值一旦确认没问题,后面基本不用再动,换模型只需要改 Model ID 那一行。