为什么你的 CLAUDE.md 写了却像没写
你花半小时写了一份 CLAUDE.md,把技术栈、常用命令、注意事项都列清楚了,结果 Claude Code 还是该改public/改public/,该升级依赖升级依赖,仿佛那份文件根本不存在。
先别急着怀疑自己的写法。在排查 CLAUDE.md 内容之前,有一个更基础、也更容易被忽略的问题:Claude Code 到底有没有连上模型通道?
如果 Base URL 填错了,Claude Code 的请求根本到不了模型,你看到的「不生效」其实是「没连上」。本文从排障视角出发,先带你把 TaoToken 通道排通(官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end ),再回头检查 CLAUDE.md 的自动加载机制是否正常。
一、原问题与场景:CLAUDE.md 不生效的两层原因
CLAUDE.md 不生效,通常分两层:
第一层是内容层。原文已经讲得很清楚——写太长会稀释重点、只写技术栈不写雷区、项目变了文件没更新。这些都会让 CLAUDE.md 的实际效果打折扣。
第二层是通道层,也是更底层的问题。Claude Code 每次会话启动时会自动读取 CLAUDE.md,但这个「读取」和「把内容送进模型」是两个步骤。如果 Claude Code 的 API 通道没配通,模型压根没收到你的项目说明,表现就是「它完全无视了我的 CLAUDE.md」。
通道层出问题的典型症状:
- 对话直接报 401 / 403,但你以为是 CLAUDE.md 没写对
- 偶尔能回复,但回复内容和项目完全无关
- 换了 Base URL 之后突然「变笨」,其实是请求打到了错误的端点
所以正确的排障顺序是:先确认通道通,再检查 CLAUDE.md 内容。顺序反了,你会在内容上反复改,却始终解决不了问题。
二、TaoToken 前置:拿 Key、认准 Base URL
TaoToken 在这里的角色是提供 Claude Code 可用的模型通道。你需要先拿到一个 API Key,再把 Claude Code 的 Base URL 指向 TaoToken 的 API 地址。
第一步:拿 Key
访问 https://taotoken.net/api-keys ,登录后创建一个 API Key。这个 Key 就是后面配置里的YOUR_API_KEY。
第二步:认准 Base URL
TaoToken 的 API 地址是:
https://taotoken.net/api这里有两个高频错误,直接导致 401:
- 少了
/api:写成https://taotoken.net,请求打到了官网首页而不是 API 端点 - 多了
/v1:写成https://taotoken.net/api/v1,路径不匹配
记住:Base URL 就是https://taotoken.net/api,不多不少。
第三步:确认模型 ID
在模型对话页面可以查看当前可用的模型 ID,配置时填入对应的MODEL_ID。
三、可复制配置:Claude Code 的 settings.json
Claude Code 通过环境变量或 settings.json 读取 API 配置。核心是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量。
方式一:settings.json(推荐)
在~/.claude/settings.json中写入:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "YOUR_API_KEY", "ANTHROPIC_MODEL": "MODEL_ID" } }方式二:环境变量
如果你不想改 settings.json,也可以在 shell 里导出:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="YOUR_API_KEY" export ANTHROPIC_MODEL="MODEL_ID"方式三:CLI 一键配置
如果你用 TaoToken 的 CLI 工具,可以直接:
npm i -g @taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m MODEL_ID这条命令会自动帮你写好 Claude Code 的配置,省去手动编辑 settings.json 的步骤。
配置完成后,重启 Claude Code,让新的环境变量生效。
四、验证请求:确认通道真的通了
配置写完不代表通道就通了。你需要主动验证一次。
验证方法一:发一条最简单的对话
在 Claude Code 里输入一句和项目无关的话,比如「回复 OK 两个字」。如果模型正常回复,说明通道通了。
验证方法二:检查 CLAUDE.md 是否被读入
通道通了之后,再测试 CLAUDE.md。在项目根目录的 CLAUDE.md 里写一条独特的约定,比如:
## 注意事项 - 本项目所有回复必须以「收到」开头然后重启 Claude Code,发一条消息。如果回复以「收到」开头,说明 CLAUDE.md 被正确加载了。如果没有,说明加载机制有问题,需要检查文件位置和命名。
成功结果应该是:
- 对话不再报 401 / 403
- 模型能正常回复
- CLAUDE.md 里的约定能在回复中体现
三步都通过,才说明通道和记忆加载都正常。
五、本篇常见错排查
错误一:Base URL 少了/api或多/v1
这是最高频的 401 原因。检查你的ANTHROPIC_BASE_URL,确保它精确等于https://taotoken.net/api。
错误二:Key 没生效
改了 settings.json 但没重启 Claude Code,旧的环境变量还在。解决:完全退出后重新启动。
错误三:CLAUDE.md 放错位置
项目级 CLAUDE.md 必须在项目根目录。如果你放在了src/或.claude/下,不会被自动加载。全局记忆才放~/.claude/CLAUDE.md。
错误四:文件名大小写不对
必须是CLAUDE.md,全大写。claude.md或Claude.md在部分系统上不会被识别。
错误五:CLAUDE.md 写太长
通道通了、文件位置对了,但内容几千行,重点被稀释。控制在几百行内,把「注意事项」段写清楚。
错误六:项目变了没更新
CLAUDE.md 停在三个月前,描述的目录结构已经不存在了。把它当活文档,重要变更同步进去。
六、通道排通后,再谈 CLAUDE.md 的写法
回到最初的问题:CLAUDE.md 不生效,先排通道,再查内容。
通道层的排查清单:
- Base URL 是否为
https://taotoken.net/api - API Key 是否有效
- settings.json 是否重启生效
- 对话是否能正常收到回复
内容层的排查清单:
- 文件是否在项目根目录
- 文件名是否为
CLAUDE.md - 是否控制在几百行内
- 「注意事项」段是否写清楚了雷区
- 项目变更后是否同步更新
两层都通过,CLAUDE.md 才会真正成为 Claude 的「上岗须知」,而不是一份写了没人看的文档。
关键行动点
- 先去 https://taotoken.net/api-keys 拿 Key
- 把
ANTHROPIC_BASE_URL设为https://taotoken.net/api,不多不少 - 重启 Claude Code,发一条测试消息确认通道通
- 通道通了再检查 CLAUDE.md 的位置、命名和内容长度
- 长期用 Claude Code 做项目开发,可以考虑 Coding Plan 降低调用成本
延伸阅读
- 接入文档:https://taotoken.net/doc
- 模型对话:https://taotoken.net/chat
- API Keys 管理:https://taotoken.net/api-keys
- Coding Plan:https://taotoken.net/coding-plan