1. 国内 Claude Code 接入 GLM-4.7 时 npm ERR 与 settings.json 报错怎么排查
Claude Code 是 Anthropic 推出的终端编码代理工具,能在命令行里直接读写项目文件、跑测试、改代码。GLM-4.7 是智谱推出的编码能力较强的模型,支持 Anthropic 兼容协议,所以国内开发者完全可以把它接到 Claude Code 里用。适合谁?适合已经习惯命令行、想用国产模型跑 Agent 编码流程、又不想折腾复杂网关的开发者。
但真正落地时,卡人的往往不是模型能力,而是两个地方:一是npm install -g @anthropic-ai/claude-code阶段的npm ERR!报错,二是settings.json里 GLM 环境变量写错导致请求 401 或local proxy failed。我见过太多人在这两步反复重装,其实大部分问题都能靠几条命令定位。
这篇就按“先解决装不上,再解决连不通”的顺序走。装的部分讲 npm 权限、缓存、镜像三类报错;连的部分讲settings.json和.claude.json的正确写法、GLM 环境变量三种配置方式,以及怎么用一次真实请求验证是否接通。全程给可复制片段,你照着改就能复现。
核心检索词先明确:Claude Code 接入 GLM-4.7,本质是让 Claude Code 把请求发到 GLM 的 Anthropic 兼容端点,靠ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN两个环境变量完成切换。理解这一点,后面所有报错都能对上号。
2. TaoToken 前置准备:GLM 环境变量与 API Key 怎么拿
在动 Claude Code 之前,先把“钥匙”和“地址”准备好。GLM-4.7 走的是 Anthropic 兼容接口,你需要一个可用的 API Key,以及一个兼容 Anthropic 协议的 Base URL。国内直连智谱官方端点是一种方式;如果你希望统一管理多个模型的 Key、或者需要更稳定的中转接入,可以用 TaoToken 这类聚合入口,它的 API 地址是https://taotoken.net/api,兼容 Anthropic 协议,Claude Code 直接填这个 Base URL 就能用。
拿 Key 的路径很直接:进控制台创建 API Key,复制出来。注意 Key 一般只显示一次,复制后先存到本地临时文件,别直接贴在聊天窗口里。模型 ID 这块,GLM-4.7 在兼容接口里通常写作glm-4.7或带版本后缀的写法,具体以你所用入口的模型列表为准,填错模型 ID 会直接报model not found。
这里有个高频坑:很多人把 Key 填进settings.json时带了引号或空格,或者把ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY混用。Claude Code 认的是ANTHROPIC_AUTH_TOKEN(用于 Bearer 认证),而ANTHROPIC_API_KEY在部分版本里行为不同。两个都填、或填错字段,都会在真正发请求时才暴露,表现为 401。
准备阶段建议做三件事:确认 Key 可用、确认 Base URL 可访问、确认模型 ID 拼写。你可以先用一条 curl 验证 Key 和地址,再进 Claude Code,这样能把“网络问题”和“配置问题”分开。curl 命令后面第 4 节会给。
如果你打算长期跑编码 Agent,建议顺手了解下 Coding Plan 这类按量方案,避免 Key 额度用尽后中途报错,排查时又多一个变量。准备就绪后,进入安装和配置环节。
3. 可复制配置:settings.json 与 GLM 环境变量正确写法
先解决安装。Claude Code 通过 npm 全局安装:
npm install -g @anthropic-ai/claude-code如果这里报npm ERR! code EACCES,是全局目录权限问题。不要无脑加sudo,更稳的做法是改 npm 全局前缀到用户目录:
mkdir -p ~/.npm-global npm config set prefix ~/.npm-global export PATH=~/.npm-global/bin:$PATH npm install -g @anthropic-ai/claude-code如果报npm ERR! network或超时,换镜像源:
npm config set registry https://registry.npmmirror.com npm cache clean --force npm install -g @anthropic-ai/claude-code装完后claude --version能出版本号,说明安装成功。接下来是配置。Claude Code 读取配置有两个位置:项目级的.claude/settings.json和用户级的~/.claude/settings.json。推荐用用户级,全局生效。新建或编辑~/.claude/settings.json:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "你的APIKey", "ANTHROPIC_MODEL": "glm-4.7", "ANTHROPIC_SMALL_FAST_MODEL": "glm-4.7" } }注意三点:JSON 里不能有注释,官方文档示例里的//注释必须删掉,否则解析失败;Key 不要带引号外的空格;ANTHROPIC_MODEL和ANTHROPIC_SMALL_FAST_MODEL都指向 GLM-4.7,避免小模型走默认端点导致报错。
另一种方式是环境变量直接导出,适合临时测试:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_AUTH_TOKEN="你的APIKey" export ANTHROPIC_MODEL="glm-4.7" claude还有一种是写进.claude.json(用户目录下),在顶层加"env"字段,效果和 settings.json 类似。三种方式选一种即可,同时配多处容易互相覆盖。改完配置后,务必用cat ~/.claude/settings.json回读一遍,确认没有多余逗号、没有中文引号——这两个是 JSON 解析失败的头号原因。
4. 验证请求:一次 curl 与 Claude Code 成功结果对照
配置写完别急着开 Claude Code,先用 curl 验证 Key、地址、模型三件套是否对得上:
curl https://taotoken.net/api/v1/messages \ -H "Authorization: Bearer 你的APIKey" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "glm-4.7", "max_tokens": 64, "messages": [{"role": "user", "content": "只回复 ok"}] }'返回里出现content字段和文本内容,说明 Key 和地址没问题。如果返回 401,是 Key 错或没带Bearer;返回 404,多半是 Base URL 少了/v1或路径写错;返回model not found,是模型 ID 拼错。
curl 通了再进 Claude Code:
cd 你的项目目录 claude进去后输入一句帮我看看当前目录有哪些文件,如果模型正常返回文件列表,说明接入成功。此时 Claude Code 的请求已经走 GLM-4.7,你可以在终端里看到它调用工具、读取文件的过程。
成功结果的特征:没有local proxy failed,没有reading 'choices'这类字段读取错误,没有反复重试。如果 Claude Code 启动时报OAuth相关错误,通常是它尝试走 Anthropic 官方登录流程,说明ANTHROPIC_BASE_URL没生效——检查 settings.json 是否在正确路径、JSON 是否合法。验证通过后,再回到项目里跑真实编码任务,比如让它改一个函数、补一个测试,观察是否稳定。
5. 本篇常见错排查:401、local proxy failed、reading choices 逐条对照
把真实报错和动作对上,排查会快很多。
401 Unauthorized:Key 错、Key 过期、或字段用错。检查ANTHROPIC_AUTH_TOKEN是否填了完整 Key,是否误填到ANTHROPIC_API_KEY。用第 4 节 curl 复测,curl 也 401 就是 Key 本身问题。
local proxy failed:Claude Code 尝试连本地代理但没起来,或 Base URL 指向了不存在的本地端口。检查ANTHROPIC_BASE_URL是否被写成了http://localhost:xxxx,改回https://taotoken.net/api。
Cannot read properties of undefined (reading 'choices'):响应结构不是预期的 OpenAI/Anthropic 格式,通常是 Base URL 指向了不兼容的端点,或模型 ID 不被该端点识别。确认地址是 Anthropic 兼容协议,模型 ID 拼写正确。
OAuth相关报错:Claude Code 在走官方登录,说明环境变量没被读取。确认 settings.json 路径正确、JSON 合法,或改用export方式临时验证。
npm ERR! EACCES:权限问题,按第 3 节改 prefix,别用 sudo 硬装。
npm ERR! network:镜像或网络问题,换registry.npmmirror.com并清缓存。
model not found:模型 ID 错,核对入口的模型列表。
排查顺序建议:先 curl 验证 Key 和地址,再查 settings.json 合法性,最后看 Claude Code 版本是否过旧。把变量一个个固定住,问题自然收敛。
6. 接入后的下一步:把 GLM-4.7 用进日常编码流程
配置通了只是起点。真正提效的是把 Claude Code 当成项目里的常驻助手:让它读package.json理解依赖、跑npm test看失败用例、按报错改代码。GLM-4.7 在中文注释和常见框架上表现稳定,适合国内项目的日常维护。
几个实用习惯:把~/.claude/settings.json纳入你的 dotfiles 管理,换机器时直接同步;Key 不要提交到 Git,用环境变量或本地文件;跑长任务前确认额度,避免中途 401 打断。如果你要长期跑 Agent 编码,Coding Plan 这类方案能减少额度焦虑。
需要 Key 和接入文档时,从 API Keys 页面创建,接入细节看接入文档;想先验证模型对话效果,用模型对话页面试几句;长期编码或 Agent 场景,直接看 Coding Plan。地址统一从https://taotoken.net/api进,配置片段照第 3 节抄即可。