ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Claude Code 配置架构与 Skill 设计会话记录:从 CLAUDE.md 到记忆生命周期的 TaoToken 统一 Key 接入

Claude Code 配置架构与 Skill 设计会话记录:从 CLAUDE.md 到记忆生命周期的 TaoToken 统一 Key 接入 1. 从一次会话记录说起Claude Code 的三层配置到底该怎么搭Claude Code 用久了会遇到一个很具体的矛盾项目规范越写越多CLAUDE.md 越堆越厚每次启动都要把整份规范全文塞进上下文token 烧得快真正跟当前任务相关的规则反而被淹没。我这次会话记录的核心就是把 Claude Code 的配置架构拆成三层——入口层 CLAUDE.md、规则层 .claude/rules/、记忆层 memory/再配一个统一 Key 通道把模型请求收口到 TaoToken最后用 Skill 把整套架构的初始化流程自动化。这套东西适合谁适合已经在用 Claude Code 做真实项目、开始觉得 CLAUDE.md 维护成本变高的人也适合想把「项目规范 会话记忆」做成可复用 Skill 的开发者。它解决的不是「怎么装 Claude Code」这种入门问题而是配置架构怎么分层、记忆怎么管生命周期、Skill 怎么设计输入输出这三件事。三层架构的核心思想是按「稳定性」分层稳定的放入口层半稳定的放规则层易变的放记忆层。入口层是全局必读的 CLAUDE.md规则层是 .claude/rules/ 下按编号拆分的规范文件记忆层是 ~/.claude/projects/.../memory/ 下的会话持久化文件。下面这张表是我最终定下来的目录骨架enterprise-manage/ ├── CLAUDE.md ← 入口层全局必读只放索引和摘要 ├── .claude/ │ └── rules/ ← 规则层执行规范按 paths 懒加载 │ ├── 000-general.md # 通用规则始终加载 │ ├── 100-frontend.md # 前端规则paths: frontend/** │ ├── 200-backend.md # 后端规则paths: backend/** │ ├── 300-build.md # 构建规则 │ └── 400-deploy.md # 部署规则 └── ~/.claude/projects/.../memory/ ← 记忆层会话持久化 ├── MEMORY.md # 索引文件 └── ...这里有个关键发现值得单独说path/to/file导入机制和 rules 的paths懒加载是冲突的。CLAUDE.md 里写.claude/rules/100-frontend.md启动时会全文展开而 rules 文件本身又带pathsfrontmatter 按路径懒加载。两者叠在一起同一份内容会被加载两次既浪费上下文又可能造成规则重复。解决办法是用 markdown 链接索引代替导入让 Claude 启动时只看到一份轻量清单需要时再按链接主动 Read。2. TaoToken 前置统一 Key 与 API 通道准备在动配置之前先把模型请求的出口收口。Claude Code 默认走 Anthropic 官方通道但如果你想让多个项目、多个 Skill 共用一套 Key 和配额管理用 TaoToken 做统一接入会省很多事。它在这里的角色是「统一 Key API 通道」你只需要维护一份 KeyClaude Code 的 settings.json 里指向 TaoToken 的 API 地址即可。先拿到 Key。打开控制台创建 API Keyhttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite创建完在 API Keys 页面复制注意它只显示一次https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewriteAPI 基础地址是https://taotoken.net/api这个地址不加任何 UTM 参数配置里直接写死。如果你要确认某个模型名是否可用、或者想先在网页里试一轮对话再写进配置用模型对话页https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite注意Key 不要提交进 git。个人项目里 memory/ 目录建议整体 gitignoreKey 走环境变量或本地 settings 文件别混进仓库。如果你打算长期用 Claude Code 跑编码任务、或者要挂 Agent 做自动化Coding Plan 比按量更划算配置方式一样只是计费模型不同https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite3. 可复制配置settings.json 骨架与 CLAUDE.md 索引写法3.1 settings.json 骨架Claude Code 的配置分全局和项目级。全局在~/.claude/settings.json项目级在项目根.claude/settings.json。下面这份骨架把 API 通道指向 TaoToken同时保留 Skill 和记忆目录的路径约定{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoTokenKey, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, permissions: { allow: [ Read, Write, Edit, Bash(git status), Bash(git diff:*), Bash(npm run:*) ], deny: [ Bash(rm -rf:*), Bash(curl:* | sh) ] }, includeCoAuthoredBy: false }几个参数说明一下。ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址这是统一通道的关键ANTHROPIC_API_KEY填你在控制台创建的 KeyANTHROPIC_MODEL按你实际可用的模型名填不确定就先在模型对话页试。permissions.allow里我放开了 Read/Write/Edit 和几个只读 git 命令deny里挡掉危险删除和管道执行远程脚本这是防止 Skill 自动执行时误伤。提示项目级 settings.json 会覆盖全局同名配置。如果你有多个项目共用一套 Key把 Key 放全局项目级只写 permissions 和模型差异。3.2 CLAUDE.md 用链接索引代替 导入这是解决「 导入与 paths 冲突」的核心写法。CLAUDE.md 里不要写.claude/rules/xxx.md改成 markdown 链接清单# 项目规范索引 ## 规范文件索引 - [000-general.md](.claude/rules/000-general.md) — 通用规范语言、命令、文件操作 - [100-frontend.md](.claude/rules/100-frontend.md) — 前端规范paths: frontend/** - [200-backend.md](.claude/rules/200-backend.md) — 后端规范paths: backend/** - [300-build.md](.claude/rules/300-build.md) — 构建规范 - [400-deploy.md](.claude/rules/400-deploy.md) — 部署规范 上述文件仅列出位置和摘要需要时按路径读取具体内容。效果是Claude 启动时只看到索引清单轻量处理前端文件时 paths 匹配自动加载 100-frontend.mdClaude 主动需要时按链接 Read 具体文件。这跟 MEMORY.md 的模式一致——索引描述 按需读取。3.3 规则文件的 paths frontmatter每个 rules 文件头部用 frontmatter 声明加载条件只有 000-general.md 不带 paths始终加载--- paths: - frontend/** - src/components/** --- # 前端规范 - 组件文件用 PascalCase 命名 - 样式统一走 CSS Modules禁止内联 style - 新增依赖前先确认 package.json 是否已有同类库3.4 记忆文件的生命周期字段记忆层每个文件头部带生命周期元数据这是后面 Skill 做审查的依据--- name: project-status description: 项目开发进度 metadata: type: project lastVerified: 2026-07-15 status: active --- # 项目进度 - 当前迭代用户中心重构 - 已完成登录、注册 - 进行中权限模块判定规则我定成四档lastVerified缺失视为未验证需要补充或确认超过 30 天标记为可能过期检查内容超过 90 天大概率过期删除或更新status: archived已归档不主动引用status: stale待清理确认后删除。4. 验证请求启动 Claude Code 确认 Skill 加载与记忆读写配置写完必须验证不然你不知道 Skill 有没有被扫到、记忆有没有正常读写。分三步。第一步验证 API 通道通不通。在项目根目录启动 Claude Code直接问一句让它读文件cd enterprise-manage claude进入交互后输入读取 CLAUDE.md告诉我规范文件索引里列了哪几个文件如果 TaoToken 通道配置正确Claude 会返回索引清单里的文件名。如果报 401 或连接错误说明 Key 或 BASE_URL 有问题回到第 5 节排查。第二步验证 Skill 是否被加载。Claude Code 启动时会扫描~/.claude/skills/目录。把 init-memory-rules 这个 Skill 放进去后在会话里输入斜杠命令看是否出现/init-memory-rules如果命令能补全出来说明 SKILL.md 被正确识别。Skill 的目录结构长这样~/.claude/skills/init-memory-rules/ ├── SKILL.md # 主文件扫描→交互→生成流程 ├── checklist.md # 执行检查清单 └── templates/ ├── CLAUDE.md.template ├── 000-general.md.template ├── 100-frontend.md.template ├── 200-backend.md.template ├── 300-build.md.template ├── 400-deploy.md.template └── MEMORY.md.template第三步验证记忆读写。让 Claude 写一条记忆再读回来把当前项目进度写入 memory/project-status.mdlastVerified 设为今天然后新开一个会话问读取 memory/MEMORY.md列出所有记忆文件及其 status能列出刚写的文件且 status 为 active说明记忆层读写正常。这三步走完配置架构就算跑通了。5. 本篇常见错排查5.1 启动报 401 或 invalid api key最常见的原因是 Key 复制时带了空格或者把ANTHROPIC_BASE_URL写成了带路径的完整 URL。BASE_URL 只写到https://taotoken.net/api不要在后面拼/v1/messages。另外确认 settings.json 是合法 JSON多一个逗号都会导致整个文件被忽略Claude Code 会回退到默认配置表现就是「配置好像没生效」。5.2 Skill 斜杠命令不出现先确认目录层级必须是~/.claude/skills/skill-name/SKILL.mdSKILL.md 直接在 skill 目录下不要再套一层。其次确认 SKILL.md 头部的 frontmatter 有name和description字段缺了可能不被扫描。改完 Skill 后要重启 Claude Code 会话热加载不一定生效。5.3 规则被加载两次如果你在 CLAUDE.md 里既写了.claude/rules/100-frontend.md又给这个文件配了pathsfrontmatter就会重复加载。检查方法启动后问 Claude「100-frontend.md 的内容你看到了几遍」。修复就是把 CLAUDE.md 里的导入全部换成 markdown 链接索引。5.4 记忆文件越积越多、上下文被撑爆这是没做生命周期管理的典型症状。MEMORY.md 作为索引只放文件名、描述和 status不要把每个记忆文件的全文塞进去。定期跑 review-memory-rules 把lastVerified超过 90 天的清理掉。我踩过的坑是早期把所有会话总结都堆进 MEMORY.md结果索引文件本身就有几千字反而成了新的上下文负担。5.5 paths 匹配不生效paths里的 glob 是相对项目根目录的。如果你写frontend/**但实际前端代码在src/frontend/就匹配不上。用git ls-files确认实际路径前缀再改 frontmatter。另外注意**和*的区别frontend/*只匹配一层frontend/**才递归。6. 把三个 Skill 串成协作体系单有配置架构还不够得让 Skill 把「初始化 → 日常 → 维护」串起来。我设计了三个 Skill 各管一段生命周期新项目 ↓ /init-memory-rules ← 初始化三层架构写入 lastVerified status ↓ 日常开发 ↓ /check-or-reset ← 会话结束时总结状态更新 lastVerified ↓ 定期维护 ↓ /review-memory-rules ← 审查过期、归档、清理init-memory-rules 的流程是读取 args 获取项目路径 → 自动扫描项目结构检测 package.json/pom.xml/docker-compose 推断技术栈→ AskUserQuestion 确认补充技术栈、模块、进度、部署四轮→ 生成 CLAUDE.md → 生成 .claude/rules/ → 生成 memory/ 和 MEMORY.md → 输出创建摘要。关键设计点是按需生成有前端代码才生成 100-frontend.md没有就跳过已存在文件询问覆盖/合并/跳过不盲目覆盖。check-or-reset 在会话结束时更新 lastVerified保证记忆新鲜度。review-memory-rules 审查时检测过期、归档、清理对应第 3.4 节的四档判定规则。这套体系跑起来后新项目初始化一条命令日常开发结束自动更新记忆时间戳定期维护一条命令清理过期记忆。配置架构、记忆生命周期、Skill 设计三件事就闭环了。如果你在接入过程中遇到通道或 Key 的问题直接看接入文档对照排查https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite需要重新生成或管理 Key 就回 API Keys 页https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite长期跑编码任务和 Agent 的话Coding Plan 的配额模型更适合持续会话https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite最后留一个我实际用下来最省事的习惯每次改完 CLAUDE.md 或 rules 文件不要急着开新会话先在当前会话里让 Claude 复述一遍它看到的索引清单确认没有重复加载、没有漏文件再继续干活。这个动作花不到十秒但能挡掉大部分「配置改了却没生效」的困惑。
返回列表