导读
你觉得自己 Prompt 写得够好了。指令清晰、示例完备、边界条件都想到了。但有没有一种可能——AI 根本没按你设想的在执行?
我花了三个月反复调试 AI 技能,最后发现根源不是"怎么写",而是"没有趁手的工具造它"。
这篇文章不是教你怎么写 Prompt 的,是告诉你为什么你写那么累还不生效。
你有没有过这种经历
花半小时写好一段几千字的 Prompt,小心翼翼地塞进 CLAUDE.md,结果用起来就是不对劲?
我经历过。不止一次。
你在文件里写了"当用户提到代码规范时,请使用团队特定的风格检查",AI 回复"好的收到"。然后你问它"这段代码风格对吗"——它给你一顿分析,该查的没查,不该啰嗦的啰嗦一大堆。你说它没看见吧,它看见了;说它没照做吧,它做了但就是……不好用。
后来我琢磨明白了。问题不在 Prompt 写得不够好,在写法本身。手写看着省事,但三个坑踩一个就够你受的:
触发不足——你写的是"建议触发",AI 理解成"省 Token 模式启动" 结构混乱——几千字规范塞一个文件,指令、示例、边界条件搅一起,AI 根本分不清优先级 无法验证——改没改好全靠"这次感觉好点了",没有对照组,退步了你都不知道
你改完 Prompt 后觉得"好像好点了",但第二天发现它又开始忽略你写的规则了
解决方案其实早就有了——Anthropic 官方出的 skill-creator 元技能,专门用来创建、修改和评估 AI 技能。
我第一次用的时候心态是"试试也不亏"。一行命令下去,几分钟生成了一整套东西:元数据、触发条件、工作流、测试用例。全程没让我手写 YAML,它问什么我答什么。
🚀 怎么装?一行命令
npx skills add https://github.com/anthropics/skills --skill skill-creator




npx 是 Node.js 自带的,装过 Node 就有。第一次跑它自动从 npm 拉最新的包,几秒完事——比等 pip 编译 pytorch 那几分钟,体感好太多了。
装完之后 ~/.agents/skills/ 下多出一个 skill-creator 目录。以后你在 Claude Code、Gemini CLI、Cursor 里直接说:
★"我想创建一个新技能"
它就会像面试官一样,从需求场景到工作流程到边界条件,一步一步问你。回答完了生成的不是一个文件,而是一套可以直接用的技能包。
💡 那比手写到底好在哪?
主要在三个层面。
1. AI 不会再装睡了
手写最大的问题是触发语气太软。你写"当用户提到……可以考虑触发",AI 看了等于没看——它没把握就不触发,省 Token 是它的本能。
skill-creator 会自动在元数据里写 pushy 级别的触发描述。直白说:这事你必须上,别找借口。AI 读到这类表述时不会自作聪明地跳过。
2. 信息终于分层了
手写的另一个毛病是不分层——触发条件、工作流程、示例代码、注意事项全塞一个文件里。AI 读起来像翻一本没目录的书,看到第三段已经忘了第一段说的啥。
skill-creator 强制拆成三层,每一层有明确的职责:
元数据(100 字简介,常驻内存,只判断要不要触发) 核心工作流( SKILL.md,触发了才读取,不浪费 Token)参考资源( references/目录,需要时才查阅)
每层各司其职。第一步不会把第三步的信息全读了,AI 不会在判断"要不要触发"的时候就开始读你的完整工作流。
3. 最值钱的:效果能用数据说话了
这是手写完全做不到的——它带双代理对照测试(Evals)。
它会自动创建测试用例,同时启动两个 AI:一个加载你的新技能,一个不加载,跑同样的任务。然后对比输出,告诉你"这个技能让正确率从 40% 提到了 75%"。
不是玄学,是数据。你改完技能后不用再猜"好像好点了"——真的有数字告诉你有没有退步。
📁 技能文件放哪了?
统一放在 ~/.agents/skills/(Windows 是 C:\Users\你用户名\.agents\skills\)。
你可能第一反应:为什么不是 .claude/ 下面?因为这是跨厂商的开放标准路径——.agents/skills 由 Vercel Labs 与 Anthropic、多个开源 AI 团队共同倡导。就像当年 Web 开发定义了 .next、.nuxt 的约定一样,.agents 被定义为所有 AI Agent 在你本机上的「家」。
什么意思呢?你写好的一个技能,Claude Code 能用、Gemini CLI 能用、Cursor 能用——以后任何支持这个标准的新工具,开箱就能读到你已经装好的技能。
还有一个很实在的原因:**. 开头的文件夹在系统里默认隐藏**。日常清理桌面或垃圾文件时,你不会手滑把 AI 的技能库给删了。跟 .git、.vscode 一个道理——重要的东西藏起来。
💡 如果 Claude Code 识别不到怎么办?
部分旧版本 Claude Code 可能还不支持直接从 .agents/skills/ 读取技能。解决方法很简单——建一个软链接,把 .agents/skills 映射到 .claude/skills:
# Windows(管理员终端)
New-Item -ItemType SymbolicLink -Path "$HOME\.claude\skills" -Value "$HOME\.agents\skills"
# macOS / Linux
ln -s ~/.agents/skills ~/.claude/skills
建好之后,Claude Code 就能读到所有已安装的技能了。一个地方装,所有工具共享。
日常小修改(改团队名、调检查规则)直接打开 SKILL.md 改就行,不用每次跑 skill-creator。但改完想验证效果,可以跑一次 Evals 看看有没有退步。
🛠️ 几个常用操作
# 看自己装过哪些技能
npx skills list -g
# 从社区搜现成的(比如 React 相关)
npx skills find react
# 更新全部技能到最新
npx skills update
# 卸载用不上了的
npx skills remove 技能名 -g
# 从零搓一个自定义技能模板
npx skills init my-awesome-skill
平时最常用的是第一和最后一条。
🎯 说白了吧
使用 skill-creator 不是多此一举。它解决的核心问题就一个:把你写 Prompt 这件事,从「我感觉还行」推进到「有数据验证」的阶段。
从手写到工具辅助,表面上多了一步,但实际上少了无数遍"改了——没效果——再改"的死循环。真正的好技能不是写出来的,是测出来的。
打开终端,装一下。你下次写 skill 的时候会发现,自己花的时间不会再打水漂了。
