ARTICLE DETAIL

资讯详情

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

工程师的 AI 经验库:用 CLAUDE.md 与 Memory 让 Claude Code 记住你踩过的每一个坑

工程师的 AI 经验库:用 CLAUDE.md 与 Memory 让 Claude Code 记住你踩过的每一个坑 1. 为什么你的 Claude Code 每次都像第一次进这个项目你有没有过这种体验同一个项目昨天刚跟 Claude Code 讲清楚「这个模块的数据库连接必须走连接池别直接 new」今天开个新会话它又给你写了一段裸连接。你不得不把昨天的解释再打一遍像在给一个每天失忆的新同事做入职培训。问题不在于模型笨而在于上下文没有沉淀。Claude Code 每次会话默认从零开始它能读到你当前打开的文件但读不到你三个月前踩过的那个坑。于是同一个错误换个人、换个时间、换个会话反复出现。我试过最原始的办法把注意事项写在项目 README 里。结果 AI 不一定读读了也不一定当回事因为 README 是给人看的语气和结构都不适合模型检索。后来我把这套东西拆成两层——CLAUDE.md 当入口Memory 当沉淀情况才真正变了。CLAUDE.md 是什么它是 Claude Code 在项目根目录自动读取的「操作手册」你可以在里面写项目结构、编码规范、常用命令、禁止事项。Memory 是什么它是跨会话的持久化记忆记录你的偏好、习惯、项目背景以及那些「踩过一次就不想再踩」的教训。两者叠加AI 才从「能写代码的工具」变成「懂你项目的搭档」。这篇就按可跟做的步骤把 CLAUDE.md 骨架、Memory 目录结构、配置片段和一次「复现旧坑→AI 自动规避」的验证动作完整走一遍。适合已经在用 Claude Code、Cursor 或类似工具但每次都要重新解释项目背景的人。核心检索词先摆出来CLAUDE.md 怎么写、Claude Code Memory 怎么配置、AI 经验库怎么搭建。这三个问题下面逐个拆。2. 前置准备TaoToken 接入 Claude Code 的 Base URL 与 Key 怎么拿要让 Claude Code 跑起来先得有一个能用的模型入口。我用的是 TaoToken它的 API 地址是https://taotoken.net/api兼容 Anthropic 的接口格式Claude Code 可以直接对接。第一步打开控制台创建 API Key。地址是https://taotoken.net/console/api-keys登录后点「创建密钥」复制那串sk-开头的字符串。注意它只显示一次丢了就得重建。第二步确认你要用的模型 ID。TaoToken 的模型列表在文档里能查到Claude Code 场景常用的是claude-sonnet-4-5这类。模型 ID 必须写全少一个字符都会报 404。第三步配置环境变量。Claude Code 读取的是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个变量。在 macOS 或 Linux 的~/.zshrc或~/.bashrc里加export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的密钥Windows 的话在 PowerShell 里用setxsetx ANTHROPIC_BASE_URL https://taotoken.net/api setx ANTHROPIC_API_KEY sk-你的密钥改完记得重开终端或者source ~/.zshrc让变量生效。验证是否生效跑一句echo $ANTHROPIC_BASE_URL能打印出地址就对了。这里有个坑我踩过有些人把 Base URL 写成https://taotoken.net/api/带尾斜杠结果 Claude Code 拼接路径时变成双斜杠报local proxy failed。尾斜杠一定去掉。Key 拿到、变量配好接下来才是重点——怎么让 Claude Code 记住你的项目。这一步不做后面所有经验库都是空中楼阁。3. CLAUDE.md 骨架与 Memory 目录可复制的配置片段这一节是整篇的核心给你能直接抄的配置。先讲 CLAUDE.md 放哪、写什么再讲 Memory 目录怎么组织。CLAUDE.md 放在项目根目录Claude Code 启动时会自动读。如果项目有子模块也可以在子目录再放一个它会按层级合并。骨架我建议分五块# 项目操作手册 ## 项目结构 - src/ 源码目录入口是 src/main.py - tests/ 测试目录用 pytest - config/ 配置文件敏感信息走环境变量 ## 常用命令 - 启动python -m src.main - 测试pytest tests/ -v - 格式化ruff format . ## 编码规范 - 所有数据库操作必须走 src/db/pool.py 的连接池禁止直接 new connection - 日志统一用 src/utils/logger.py禁止 print - 新增依赖必须同步更新 requirements.txt ## 禁止事项 - 不要修改 migrations/ 下的历史迁移文件 - 不要在业务代码里硬编码密钥 ## 经验库索引 详细踩坑记录见 memory/ 目录按领域分文件 - memory/hardware.md 硬件相关 - memory/backend.md 后端相关 - memory/debug.md 调试相关这份骨架的关键在最后一块「经验库索引」。它告诉 AI遇到问题先去 memory 目录翻而不是凭空猜。没有这一句AI 根本不知道你有经验库。Memory 目录结构我按问题域分不按项目分。因为同一类问题在不同项目里会重复出现按领域分才能让经验聚在一起memory/ ├── hardware.md # 硬件、电源、器件失效 ├── backend.md # 后端、数据库、并发 ├── debug.md # 调试方法论、排障思路 └── index.md # 总索引列出所有条目关键词每个文件里的条目用固定字段这是让 AI 能检索的关键。格式如下### 驱动板 15V 滤波钽电容击穿导致多故障连锁 | 字段 | 内容 | |------|------| | 现象 | 多个驱动故障码同时报出无法复位 | | 根因 | 15V 滤波钽电容击穿短路拉低供电母线 | | 解决 | 更换驱动板关键器件储备备件 | | 日期 | 2026-07 | **关键词:** 钽电容 击穿短路 UVLO 多故障同源 **要点:** - 多个故障码同时报出时优先排查共享电源轨而非逐一排查各支路 - 钽电容失效模式是短路非开路影响范围远超自身为什么这个格式有效现象字段让 AI 能根据你描述的故障匹配到条目根因字段让经验可迁移不是「换板子好了」这种废话关键词是精确检索索引要点把单次案例泛化成方法论。如果你用 Cline 或带 MCP 的工具配置片段长这样三件套缺一不可{ mcpServers: { taotoken: { command: npx, args: [-y, taotoken/mcp-server], env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的密钥, ANTHROPIC_MODEL: claude-sonnet-4-5 } } } }Base URL、Key、Model ID 三个都要写全少一个就连不上。Codex 用户如果走auth.json结构类似把这三个字段填进去即可。配置写完下一步是验证它真的生效。4. 验证请求复现旧坑看 AI 是否自动规避配置写完不验证等于没配。这一节演示一次完整的「复现旧坑→AI 自动规避」动作你能照着做一遍。先确认 Claude Code 能正常连上。在项目根目录跑claude --version能打印版本号说明装好了。然后进交互模式问一句这个项目的数据库操作有什么规范如果 CLAUDE.md 生效它应该回答「必须走 src/db/pool.py 的连接池禁止直接 new connection」。如果它答不上来说明 CLAUDE.md 没被读到检查文件是不是在根目录、文件名大小写对不对。接下来验证 Memory 检索。我构造一个和旧坑同源的场景问现场报三个故障码驱动故障、升压故障、供电欠压无法复位。怎么排查如果 Memory 生效AI 应该主动提到「优先排查共享电源轨」并引用memory/hardware.md里那条钽电容的记录。实测下来配好之后它会直接说「根据经验库记录多个故障码同时报出时优先查共享电源轨历史上出现过 15V 滤波钽电容击穿拉低母线导致 UVLO 的案例。」这就是我们要的效果——不是我想起来钽电容是 AI 提醒我先查共享电源轨。再验证一次「记住这个坑」工作流。排查完一个新问题后对 AI 说记住这个坑现象是接口偶发 504根因是连接池最大连接数设太小解决是把 pool_size 从 5 调到 20。它应该自动提炼成结构化条目写入memory/backend.md并加上关键词连接池504pool_size。下次你问「接口偶发 504 怎么查」它就能翻出这条。验证成功的标志有三个CLAUDE.md 的规范能被复述、Memory 的旧坑能被主动检索、新坑能被自动写入。三个都过这套经验库就算跑通了。如果验证失败别急下一节列了常见报错和排查方法。5. 常见报错排查401、local proxy failed、reading choices、OAuth配置过程中最容易撞的几个错我按真实报错逐个拆。401 Unauthorized。这个最常见九成是 Key 的问题。先确认ANTHROPIC_API_KEY有没有生效跑echo $ANTHROPIC_API_KEY看能不能打印出sk-开头的串。如果打印为空说明环境变量没加载重开终端或source一下。如果打印正常但还是 401去控制台确认 Key 没过期、没被删。还有一种情况是 Key 复制时带了空格肉眼看不出来重新复制一遍。local proxy failed。这个错通常和 Base URL 有关。检查ANTHROPIC_BASE_URL是不是写成了https://taotoken.net/api/带尾斜杠去掉尾斜杠再试。另外确认没有多余的代理变量干扰比如HTTP_PROXY或HTTPS_PROXY指向了不可用的地址临时unset掉再跑。reading choices 相关报错。这个一般出现在返回体解析阶段多半是模型 ID 写错了。Claude Code 请求的模型名必须和 TaoToken 支持的完全一致比如claude-sonnet-4-5不能写成claude-sonnet-4.5或sonnet-4-5。去文档里核对准确的模型 ID一个字符都别差。OAuth 相关报错。如果你用的是 Claude Code 官方登录流程它可能尝试走 OAuth 而不是 API Key。这时候要确认你用的是 API Key 模式环境变量ANTHROPIC_API_KEY存在时它会优先走 Key。如果还是报 OAuth检查有没有残留的登录凭证文件清掉再试。CLAUDE.md 不生效。文件必须在项目根目录文件名全大写CLAUDE.md不能是claude.md或Claude.md。子目录的 CLAUDE.md 只在进入该目录时生效。如果放了还是不读试试在会话里直接问「读一下 CLAUDE.md」看它能不能找到文件。Memory 检索不到。检查 CLAUDE.md 里有没有写「经验库索引」那一块没有索引 AI 不知道去哪找。另外确认 memory 目录在项目根目录下路径和索引里写的一致。关键词要具体钽电容比电容好连接池比数据库好。排障的核心思路是先确认连接层Base URL Key Model ID 三件套再确认文件层CLAUDE.md 位置和内容最后确认检索层Memory 索引和关键词。一层层往下查基本都能定位。6. 把经验库用起来从记录到复用的完整闭环配置跑通只是开始真正让这套体系产生价值的是日常使用习惯。我把它总结成一个闭环踩坑→记录→检索→复用→再记录。踩坑的时候别急着修完就完事修完花三十秒对 AI 说一句「记住这个坑」。记录成本极低但收益是长期的。我现在的习惯是任何非显而易见的排查结论都顺手记一条。三个月后回头看memory 目录里已经攒了几十条覆盖了大部分高频问题。检索的时候不用刻意去翻文件直接描述现象就行。AI 会根据关键词匹配把相关条目翻出来。你描述得越接近「现象」字段的写法匹配越准。这也是为什么条目里「现象」字段要写得具体别写「系统报错」要写「三个故障码同时报出无法复位」。复用的时候注意 AI 给的是参考不是圣旨。经验库记录的是历史案例新问题可能有新变量。AI 提醒你「先查共享电源轨」是给你一个高优先级的排查方向不是让你跳过验证。方向对了省时间验证还是得自己做。再记录的时候如果发现旧条目有偏差直接让 AI 更新那条记录。经验库是活的不是写完就锁死的归档。这套东西的本质说穿了就三句话CLAUDE.md 告诉 AI 文件在哪、规则是什么经验库告诉 AI 这个领域踩过哪些坑Memory 告诉 AI 你的偏好和项目背景。三者叠加AI 才真正懂你的项目。如果你已经在用 Claude Code 或 Cursor觉得每次都要重新解释项目背景很烦这套方法大概率能帮到你。想快速验证模型对话效果可以去https://taotoken.net/api配合模型对话页面试长期做编码和 Agent 任务Coding Plan 更划算接入文档里有完整的 Base URL、Key、Model ID 三件套说明照着配就行。最后留一句实在话这套体系只对真的踩过坑、愿意把坑结构化的人有用。如果工作还没积累出值得沉淀的经验先把坑踩出来再说。经验库不是魔法是经验的复用。
返回列表