给 AI 装上 SKILL.md 记忆包:每天早上不再失忆的 Agent Skills 配置实录
1. 每天早上重教一遍 AI问题到底出在哪如果你同时用 Claude Code 和 Cursor 写代码大概率经历过这个循环早上打开新会话先花十分钟把项目背景、代码规范、提交信息格式、测试命令重新讲一遍中午换个工具再讲一遍晚上开个新窗口排查 bug又讲一遍。AI 本身不笨它只是没有跨会话的长期记忆每次对话都是从零开始的上下文。Agent Skills 要解决的就是这件事。它不是一个新模型也不是一个插件市场而是一套约定把可复用的工作方式写进一个叫 SKILL.md 的 Markdown 文件放在约定目录里支持该标准的工具会在合适的时机按需加载它。Claude Code、Cursor 等工具已经支持这套约定你写一次换工具还能继续用。这篇不聊概念史直接给一套能落地的配置SKILL.md 的目录骨架长什么样、settings.json 里怎么把模型通道统一到 TaoToken、重启会话后怎么验证记忆真的命中了。适合已经在用 Claude Code 或 Cursor、但每天还在重复交代背景的开发者。如果你还没配过统一 API 通道第 2 节会先把这块补齐因为 Skills 要稳定触发底层请求得先稳。2. 前置用 TaoToken 统一 Key 与 API 通道Skills 的触发依赖工具正常发起模型请求。如果你在 Claude Code、Cursor 里各配一套 Key换工具就要改配置排查问题时也分不清是 Skill 没命中还是请求本身失败了。我试过把通道统一到 TaoToken一个 Key 覆盖多个工具配置只写一处。先拿到 Key打开 https://taotoken.net/api-keys 登录后创建一个 API Key复制保存。注意这个 Key 只在创建时完整显示一次丢了就重建一个。TaoToken 的 API 入口是 https://taotoken.net/api 兼容常见的 OpenAI 风格请求格式所以 Claude Code、Cursor 这类工具都能直接填。它的定位是统一的模型调用通道不是替代你的编辑器Skills 文件仍然存在你本地项目里TaoToken 只负责把请求稳定送出去。配置前先确认两件事一是你的工具版本支持自定义 Base URL二是本地能正常访问 https://taotoken.net/api 。如果公司网络有额外限制先让运维放行域名不要用任何非正规的网络手段这类操作既不合规也不稳定。3. 可复制配置SKILL.md 骨架 settings.json 片段3.1 SKILL.md 的目录骨架Skills 的核心是目录约定。推荐在项目根目录建一个.skills/文件夹每个技能一个子目录目录名用英文短横线里面放一个SKILL.mdyour-project/ ├── .skills/ │ ├── daily-context/ │ │ └── SKILL.md │ ├── commit-style/ │ │ └── SKILL.md │ └── bug-triage/ │ └── SKILL.md ├── src/ └── settings.jsondaily-context就是解决每天早上失忆的那个技能。它的SKILL.md内容如下--- name: daily-context description: | 加载本项目的每日工作上下文。当用户提到「今天做什么」「继续昨天的」 「daily context」「项目背景」时使用此 skill。 --- # 每日上下文 ## 项目背景 - 项目名替换成你的项目 - 技术栈替换成你的技术栈例如 TypeScript Node 20 - 主分支main功能分支命名 feat/xxx、fix/xxx ## 固定工作流 1. 开始前先读 README 和最近 5 条 git log 2. 改动前先说明影响范围再动手 3. 提交信息格式type(scope): 描述type 限 feat/fix/docs/refactor 4. 跑测试命令npm run test失败先贴报错再改 ## 输出约束 - 代码块必须标语言 - 不要用「简单来说」「说白了」这类套话 - 单条回复不超过 40 行超了先问要不要继续两层结构要分清frontmatter 里的name和description决定系统什么时候加载它正文决定加载后 AI 按什么规则干活。description里写清楚触发词命中率会明显提高。3.2 settings.json 里的通道配置在项目根目录的settings.json里把模型请求指向 TaoToken。下面是一份可直接改的片段{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoTokenKey, ANTHROPIC_MODEL: claude-sonnet-4-20250514 }, skills: { enabled: true, paths: [.skills] } }几个参数说明ANTHROPIC_BASE_URL固定填https://taotoken.net/api不要带路径后缀ANTHROPIC_API_KEY填第 2 节拿到的 Keyskills.paths指向你放 SKILL.md 的目录多个目录用数组并列。Cursor 里如果走的是 OpenAI 兼容配置把字段名换成对应的base_url和api_key即可值不变。注意Key 不要提交到 git。把settings.json加进.gitignore或者用环境变量注入团队协作时尤其要养成这个习惯。4. 验证重启会话后记忆是否命中配置写完不算完得验证 Skill 真的被加载了。按下面三步走。第一步重启会话。完全退出 Claude Code 或 Cursor重新打开项目确保它重新读取了settings.json和.skills/目录。热重载不一定生效重启最稳。第二步发一句触发语。不要直接问技术问题先发一句能命中description的话比如今天做什么先加载一下项目上下文第三步看返回。命中的表现是AI 主动复述了项目背景、技术栈、提交格式这些它本不该知道的信息。如果它反问你的项目是什么说明 Skill 没加载。再补一个更硬的验证方式直接让它读文件确认请读取 .skills/daily-context/SKILL.md 并复述其中的提交信息格式正常返回应该包含type(scope): 描述和feat/fix/docs/refactor这几个关键词。这一步能区分两种情况是 Skill 没被加载还是加载了但触发词没匹配上。前者查settings.json的paths后者改description里的触发词。实测下来把触发词写具体比如加上继续昨天的这种口语说法比只写项目上下文命中率高不少。5. 本篇常见错排查报错一请求 401 或 invalid api key。先确认 Key 有没有复制完整前后有没有多余空格。再确认ANTHROPIC_BASE_URL填的是https://taotoken.net/api多写一个斜杠或路径都会导致鉴权失败。Key 泄露或丢失就去 https://taotoken.net/api-keys 重建。报错二Skill 完全不触发。九成是description写得太抽象。把触发词换成用户真实会说的话比如把项目相关改成今天做什么继续昨天的。另外确认.skills目录在项目根目录且settings.json里的paths路径没写错。报错三改了 SKILL.md 但行为没变。Skills 通常在会话启动时加载改完要重启会话。如果重启还不行检查文件是不是存成了SKILL.md.txtWindows 上很容易踩这个坑。报错四多个 Skill 互相打架。两个 Skill 都写了提交信息格式AI 会随机选一个。解决办法是职责拆开commit-style只管提交格式daily-context只管背景和工作流别让一个 Skill 什么都管。报错五上下文还是被塞满。说明你把太多规则堆进了单个 Skill。Skills 的价值是按需加载单个文件控制在 500 到 2000 字超了就拆成多个技能。6. 把通道和技能都固定下来到这一步你手上应该有两样东西一份能稳定发起请求的 TaoToken 通道配置和一套按需加载的 SKILL.md 技能目录。前者保证请求不出岔子后者保证 AI 每天开工时知道你的项目背景和规矩不用你从头再讲一遍。接下来按你的使用场景选下一步如果还在调通道、接入报错没解决先去 https://taotoken.net/api-keys 确认 Key 状态再对照 https://taotoken.net/doc 检查参数如果只是想先验证模型返回是否正常用 https://taotoken.net/models 里的对话入口发一条测试消息最快如果你打算长期在 Claude Code 里跑编码和 Agent 任务直接看 https://taotoken.net/coding-plan 把额度和通道一次配好省得中途换配置打断工作流。真正省时间的不是多写几个 Skill而是把每天重讲一遍这件事从流程里彻底删掉。通道固定、技能固定早上打开工具直接干活这才是 Agent Skills 该有的样子。