1. 为什么你的 Claude 总是“记不住”重复指令
用 Claude 处理日常事务的人,大概率都经历过这样的循环:每次让它整理会议纪要,都要重新交代一遍“按日期命名、提取待办、标注负责人、存到指定目录”;每次让它写周报,都要把格式要求、字段顺序、语气风格再贴一遍。一次两次还行,次数多了,你会发现真正消耗时间的不是任务本身,而是“把要求再说一遍”。
这个问题的根源在于:Prompt 是“一次性”的。你在对话框里敲下的指令,只对当前这轮对话有效。关掉窗口、换个会话,Claude 就回到了“白纸状态”。它很聪明,但它不记得你上周教过它什么。
Claude Skills 要解决的就是这件事。你可以把它理解成给 AI 准备的一本“标准作业程序手册”——把重复性的指令、流程、脚本、模板打包成一个文件夹,Claude 在需要的时候自己翻出来用。它不是一次性的对话指令,而是一个可复用、可分享、可版本管理的能力包。
这篇文章聚焦一条从零到落地的完整路径:先拆解 Skill 的目录结构和触发机制,再以“会议纪要自动归档”为实战场景,把重复指令沉淀成可复用技能。同时,我会把接入环节统一到 TaoToken 的 Key 上,避免你在多个平台之间来回切换配置。读完之后,你应该能独立写出第一个能稳定触发的 Skill,并且知道怎么判断它到底有没有真正生效。
适合谁看:每天用 Claude 处理重复事务的产品、运营、研发;想把团队 SOP 沉淀成 AI 能力的负责人;以及刚接触 Agent 概念、想找一个具体切入点上手的人。不需要你会写复杂代码,但需要你愿意动手复制配置、跑一遍验证。
核心检索词先明确:Claude Skills 是一套基于文件夹的 Agent 能力封装标准,通过 SKILL.md 的元数据描述触发条件,让 AI 在合适的时机自动加载对应的流程和工具。它和 Prompt 最大的区别是“可沉淀”——你写一次,后面每次都能复用。
2. TaoToken 统一 Key 接入:把配置这件事一次做完
在动手写 Skill 之前,先把接入层理顺。很多人卡在第一步不是因为不会写 SKILL.md,而是因为 Key 管理混乱:Claude Code 用一个 Key,Cline 用另一个,Codex 又是第三套配置。改一次模型要翻三个地方,排查问题时根本不知道是哪一层出的错。
TaoToken 的思路是提供一个统一的 API 入口,你只需要维护一套 Key,就能在多个编码工具和 Agent 客户端之间复用。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 端点是 https://taotoken.net/api 。
2.1 先拿到你的 Key
登录之后进入控制台,在 API Keys 页面创建一个新的 Key。建议按用途命名,比如claude-skills-dev,这样后面在多个工具里看到这个 Key 就知道它是干什么的。创建完成后立刻复制保存,页面刷新后通常不会再完整显示。
这里有一个容易踩的坑:很多人把 Key 直接写进代码文件然后提交到 Git。正确做法是写进环境变量或者本地配置文件,并且把配置文件加入.gitignore。下面所有配置示例里,我都会用占位符sk-你的Key,你替换成自己的即可。
2.2 三个必须配齐的字段
不管你用哪个客户端,接入一个模型服务本质上就是三件事:Base URL、API Key、Model ID。这三件套缺一不可,而且必须和客户端要求的格式完全一致。
| 字段 | 值 | 说明 |
|---|---|---|
| Base URL | https://taotoken.net/api | 注意结尾不要多加/v1,除非客户端明确要求 |
| API Key | sk-你的Key | 从控制台复制,不要有空格 |
| Model ID | 按需选择 | 例如claude-sonnet-4-20250514这类具体模型标识 |
我试过在 Cline 里配置时,Base URL 多写了一个斜杠,结果一直报 404,排查了十几分钟才发现是路径拼接问题。所以配置完第一件事就是做一次最小请求验证,不要等到写完整套 Skill 才发现连不上。
2.3 在 Claude Code 里接入
Claude Code 的配置走的是环境变量加配置文件的方式。你可以在项目根目录或者用户目录下创建配置文件。以 settings 片段为例,路径通常是~/.claude/settings.json:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的Key", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" } }保存之后重启 Claude Code,让它重新读取配置。如果你用的是 Claude Code 的插件市场机制,也可以在终端里通过命令方式注册技能市场,但接入层始终是上面这三个环境变量在起作用。
2.4 在 Cline / Codex 里接入
Cline 的配置界面比较直观,在设置里找到 API Provider,选择 Anthropic 兼容模式,然后填入 Base URL、API Key、Model ID。Cline 支持 MCP,如果你后面要把 Skill 和外部工具串起来,MCP 的配置也在这里加。
Codex 走的是auth.json加配置文件的方式。典型路径是~/.codex/auth.json,内容结构大致如下:
{ "OPENAI_API_KEY": "sk-你的Key", "OPENAI_BASE_URL": "https://taotoken.net/api" }注意 Codex 的字段名用的是OPENAI_前缀,这是它历史兼容性导致的,不要因为看到 OPENAI 就以为填错了。Model ID 在 Codex 的配置文件里单独指定。
2.5 验证接入是否成功
配置完成后,不要急着写 Skill。先在客户端里发一条最简单的消息,比如“回复 ok”。如果能在几秒内收到正常回复,说明接入层通了。如果报 401,检查 Key 是否复制完整;如果报连接失败,检查 Base URL 是否写错;如果报模型不存在,检查 Model ID 拼写。
这一步花两分钟,能帮你省掉后面半小时的无效排查。接入层稳定之后,我们再进入 Skill 本身。
3. 拆解 Skill 目录结构与触发机制
现在进入核心部分。很多人第一次看到 Skill 文件夹会觉得“这不就是个普通目录吗”,但它的每一层都有明确约定,违反约定就会导致 Claude 识别不到。
3.1 一个标准 Skill 文件夹长什么样
一个完整的 Skill 通常包含四部分:
meeting-archiver/ ├── SKILL.md ├── scripts/ │ └── archive.py ├── references/ │ └── naming-rules.md └── assets/ └── template.mdSKILL.md是必需的核心文件,相当于技能的“总说明书”。scripts/存放可执行脚本,比如把纪要写入指定目录的 Python 脚本。references/存放给 AI 阅读的知识库,比如命名规范、字段定义。assets/存放直接使用的素材,比如纪要模板。
文件夹命名有一个硬性要求:必须是小写字母加连字符,比如meeting-archiver。不能有空格、不能有大写字母、不能用下划线。这一点很多人会忽略,结果技能死活不触发,最后发现是文件夹名写成了Meeting_Archiver。
3.2 SKILL.md 的 YAML 头部是触发开关
SKILL.md开头必须有一段用---包裹的 YAML 头部,里面最关键的两个字段是name和description。
--- name: meeting-archiver description: 将会议纪要按日期和主题自动归档到指定目录,提取待办事项并标注负责人。当用户提到"整理会议纪要""归档会议记录""提取待办"等关键词,且提供了纪要内容或文件路径时触发。 ---description是整个 Skill 里最需要打磨的字段。它决定了 Claude 在什么情况下会加载这个技能。写的时候要用第三人称,把触发条件说清楚:什么关键词、什么输入形式、什么场景。不要写得太宽泛,否则会误触发;也不要写得太窄,否则该触发的时候不触发。
我的经验是:description里至少包含两类信息——任务类型(归档、提取、生成)和输入特征(纪要内容、文件路径、日期信息)。这样 Claude 在扫描所有技能元数据时,能快速判断相关性。
3.3 渐进式披露:为什么 Skill 不会撑爆上下文
Skill 的加载分三层,这是它和普通 Prompt 最大的区别。
第一层是元数据,也就是 YAML 头部里的name和description。这部分常驻在上下文里,非常短,Claude 用它来判断“这个技能是否相关”。
第二层是SKILL.md的主体内容。只有当 Claude 判断技能相关后,才会加载这部分。里面写的是具体流程、步骤、输出格式要求。
第三层是scripts/和references/里的内容。只有当主体流程明确要求时,Claude 才会去读取脚本或参考文档。
这个设计的价值在于:你可以在一个 Skill 里放很多脚本和文档,但平时它们不占用上下文。只有真正执行到那一步,才会按需加载。这解决了大模型上下文窗口有限的问题,也让技能可以做得更复杂而不担心“记不住”。
3.4 触发机制的实际表现
当你在对话里说“帮我把这份会议纪要归档一下”,Claude 会先扫描所有已安装 Skill 的元数据,发现meeting-archiver的描述里包含“归档会议记录”,于是锁定这个技能,加载SKILL.md主体,按照里面定义的流程执行。
如果它没有触发,通常有三个原因:文件夹命名不规范、description写得不够明确、或者你的输入里缺少触发关键词。排查的时候按这个顺序检查,基本能定位到问题。
4. 实战:把“会议纪要自动归档”写成可复用 Skill
理论讲完了,现在动手。我们做一个meeting-archiver,目标是:用户丢进来一段会议纪要,Claude 自动提取日期、主题、待办事项,按规范命名,归档到指定目录,并输出一份结构化摘要。
4.1 先定义清楚流程
在写SKILL.md之前,先把流程用大白话列出来:
第一步,从用户输入里提取会议日期和主题。如果用户没给日期,就用当天日期;如果没给主题,就从内容里概括一个。
第二步,提取待办事项。每条待办要包含:事项描述、负责人、截止时间(如果有)。
第三步,按照YYYY-MM-DD-主题.md的格式生成文件名。
第四步,把整理好的内容写入meetings/目录。
第五步,返回一份摘要,包含归档路径、待办数量、以及每条待办的负责人。
这个流程写清楚之后,SKILL.md的主体就是把它翻译成 Claude 能执行的指令。
4.2 完整的 SKILL.md 配置片段
--- name: meeting-archiver description: 将会议纪要按日期和主题自动归档到指定目录,提取待办事项并标注负责人。当用户提到"整理会议纪要""归档会议记录""提取待办"等关键词,且提供了纪要内容或文件路径时触发。 --- # 会议纪要自动归档 ## 技能概述 本技能用于将非结构化的会议纪要整理成结构化文档,按规范命名后归档到指定目录,并提取待办事项。 ## 触发条件 当用户输入满足以下任一条件时激活: 1. 包含"整理会议纪要""归档会议记录""提取待办"等关键词; 2. 提供了会议纪要的文本内容或文件路径; 3. 明确要求按日期和主题归档。 ## 工作流程 ### 第一步:提取元信息 - 会议日期:从内容中识别,格式 YYYY-MM-DD;未识别到则使用当天日期。 - 会议主题:从内容中概括,不超过 20 个字;未识别到则使用"未命名会议"。 ### 第二步:提取待办事项 - 逐条提取,每条包含:事项描述、负责人、截止时间。 - 负责人未明确时标注"待定"。 - 截止时间未明确时标注"未指定"。 ### 第三步:生成归档文件名 - 格式:YYYY-MM-DD-主题.md - 主题中的空格替换为连字符。 ### 第四步:写入归档目录 - 目录:meetings/ - 如果目录不存在,先创建。 - 文件内容包含:会议元信息、原始纪要、待办清单。 ### 第五步:返回摘要 - 归档路径 - 待办数量 - 每条待办的负责人 ## 输出格式示例 归档路径:meetings/2025-01-15-产品评审会.md 待办数量:3 - 完成竞品分析 / 负责人:张三 / 截止:2025-01-20 - 更新需求文档 / 负责人:李四 / 截止:2025-01-18 - 安排用户访谈 / 负责人:待定 / 截止:未指定4.3 配套脚本:archive.py
如果希望归档动作更确定,可以加一个脚本。放在scripts/archive.py:
import os from datetime import datetime def archive_meeting(date_str, topic, content, base_dir="meetings"): if not os.path.exists(base_dir): os.makedirs(base_dir) filename = f"{date_str}-{topic.replace(' ', '-')}.md" filepath = os.path.join(base_dir, filename) with open(filepath, "w", encoding="utf-8") as f: f.write(content) return filepath if __name__ == "__main__": today = datetime.now().strftime("%Y-%m-%d") path = archive_meeting(today, "测试会议", "# 测试内容") print(f"已归档到:{path}")这个脚本的作用是把“写文件”这个动作从 Claude 的自由发挥变成确定性执行。Claude 只需要决定日期和主题,剩下的交给脚本。
4.4 参考文档:naming-rules.md
放在references/naming-rules.md,告诉 Claude 命名规范:
# 命名规范 - 日期格式:YYYY-MM-DD - 主题:不超过 20 个字,空格替换为连字符 - 文件扩展名:.md - 示例:2025-01-15-产品评审会.md4.5 安装到 Claude Code
把整个meeting-archiver文件夹放到 Claude Code 的技能目录下。Claude Code 支持热重载,放进去之后不需要重启。你可以通过技能面板确认它已经被识别。
如果你用的是其他客户端,技能目录路径不同,但文件夹结构是一致的。关键是文件夹名和SKILL.md的 YAML 头部要符合规范。
5. 三条验证动作:判断技能是否真正生效
写完 Skill 只是第一步,真正重要的是验证它有没有按你预期工作。我总结了三条验证动作,覆盖触发、格式、稳定性三个维度。
5.1 触发命中率验证
准备五条不同表述的输入,测试技能是否都能触发:
第一条:“帮我整理一下这份会议纪要。”后面附上纪要内容。
第二条:“把这段会议记录归档,按日期命名。”
第三条:“提取一下这次会议的待办事项。”
第四条:直接粘贴纪要内容,不加任何指令词。
第五条:用英文说“archive this meeting note”。
理想情况下,前四条都应该触发,第五条取决于你的description是否包含英文关键词。如果某条没触发,回到description里补充对应的关键词或场景描述。
这里常见的报错是技能完全不触发,日志里看不到任何加载记录。排查顺序:文件夹名是否小写连字符、SKILL.md的 YAML 头部是否用---正确包裹、description是否包含用户输入里的关键词。
5.2 输出格式一致性验证
同一个任务连续跑三次,看输出格式是否一致。重点看三个地方:归档路径格式是否都是meetings/YYYY-MM-DD-主题.md、待办清单是否都包含负责人字段、摘要结构是否稳定。
如果三次输出格式不一样,说明SKILL.md里的流程描述不够明确。解决办法是把输出格式用示例固定下来,就像上面SKILL.md里那样,给出一个完整的输出示例。Claude 对示例的遵循度远高于抽象描述。
5.3 多轮调用稳定性验证
在一个会话里连续处理三份不同的会议纪要,看第二次、第三次是否还能正常触发和执行。有些 Skill 第一次跑没问题,第二次因为上下文里已经有历史记录,Claude 会“偷懒”直接复用上次结果。
如果出现这种情况,在SKILL.md里加一句:“每次执行都必须重新提取元信息和待办,不得复用历史结果。”这句话看起来简单,但能显著提升多轮稳定性。
5.4 常见报错对照
| 报错现象 | 可能原因 | 处理方式 |
|---|---|---|
| 401 Unauthorized | Key 错误或过期 | 重新复制 Key,检查是否有空格 |
| local proxy failed | Base URL 配置错误 | 确认是https://taotoken.net/api,不要多加路径 |
| reading choices 相关报错 | 返回结构不符合客户端预期 | 检查 Model ID 是否被客户端支持 |
| OAuth 相关报错 | 客户端走了错误的认证模式 | 切换为 API Key 模式,不要用 OAuth |
| 技能不触发 | 文件夹命名或 description 问题 | 检查小写连字符、YAML 头部、关键词覆盖 |
这些报错里,401 和 local proxy failed 是最常见的两个,基本都出在接入层。先把接入层验证通过,再排查 Skill 本身的问题,能少走很多弯路。
6. 把重复劳动沉淀成能力包
写到这里,你已经有了一个能跑的meeting-archiver,也知道怎么验证它是否生效。但我想说的是,这个技能本身的价值有限,真正有价值的是你掌握了“把重复指令沉淀成 Skill”的方法。
你每天重复交代给 Claude 的事情,远不止会议纪要。周报生成、代码审查清单、竞品信息整理、客户反馈分类,这些都可以用同样的方式封装。每封装一个,你就少说一遍重复的话。
几个实操建议。第一,从最简单的场景开始,不要一上来就做复杂流程。一个只做“按格式重命名文件”的 Skill,也比十个半成品强。第二,description要反复打磨,它是触发命中率的关键,写完先用五条不同表述测一遍。第三,脚本能做的事不要让 Claude 自由发挥,确定性越强,输出越稳定。
如果你想把 Skill 和外部工具串起来,比如让归档后的纪要自动同步到某个系统,可以了解 MCP 的配置方式。TaoToken 的接入文档里有相关说明,地址是 https://taotoken.net/api 。长期做编码和 Agent 任务的话,Coding Plan 会比按量调用更省心,具体可以在控制台里看。
最后留一个可以立刻做的动作:打开你最近一周和 Claude 的对话记录,找出你重复说过三次以上的指令,把它写成第一个属于你自己的 Skill。文件夹建好,SKILL.md写好,跑一遍验证。这个过程可能只需要二十分钟,但它省下的是你未来每一次重复交代的时间。