者想找个好样板照着改,先来这儿逛一圈。
4.2 在 Claude Code(命令行)
Claude Code是装在终端里的命令行工具,程序员用得多。它只支持你自己的Skill,没有那四个预建文档技能。好处是它纯靠文件系统,不用上传,把文件夹放到对的位置就行。
放哪里决定谁能用。放进~/.claude/skills/weekly-report/SKILL.md,就是个人级,你所有项目都能用。放进某个项目里的 .claude/skills/weekly-report/SKILL.md,就只在那个项目里管用。企业还能通过统一配置给全组织下发。
怎么调。Claude Code一启动,就把所有Skill的name和description载进来(还是每个约100个token),完整正文留到被调用时才读。触发有两种,一种是让Claude看着description自动调,一种是你手动敲斜杠命令,文件夹叫weekly-report,命令就是 /weekly-report。一个贴心细节,你在会话里改了Skill内容,当场就生效,不用重启。
同名冲突有个优先级,企业下发的盖过你个人的,个人的盖过项目的,都盖过同名的内置技能,记住这个顺序就不会撞车。Claude Code的Skill还能玩一个进阶花样,在正文里用一行命令注入实时上下文,比如写一行让它先跑 git diff 再把改动喂给自己,这样代码审查Skill每次都对着最新的改动审,不用你手动贴。
排查和生成。想知道现在有哪些Skill可用,直接问Claude "有哪些skill可用"。格式有没有问题,跑 /doctor 或者带 --debug 启动能看到。还有那个官方的skill-creator,它是个插件,用 /plugin install skill-creator@claude-plugins-official 装上,能帮你把"写测试、跑评测、对比效果"这套迭代自动化。
4.3 通过 Claude API(开发者向)
如果你是要把Skill接进自己的程序,那走API。这部分给开发者看,零基础读者了解个大概即可。
三个beta开关要带上。在请求头里加三个beta标记:code-execution-2025-08-25、skills-2025-10-02、files-api-2025-04-14,分别对应代码执行、技能功能、文件读写。
Skill必须配合代码执行工具,并在container里点名要哪些Skill。一个完整的Python调用大致这样:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={"skills": [
{"type": "anthropic", "skill_id": "pptx", "version": "latest"}
]},
tools=[{"type": "code_execution_20250825", "name": "code_execution"}],
messages=[{"role": "user", "content": "做一个关于可再生能源的演示文稿"}],
)
上传自定义Skill走另一个接口,把整个文件夹打包发到 /v1/skills,整包要小于30MB,name、description的约束跟前面一样。单次请求最多挂8个Skill。要留意API的运行环境有限制,容器里不能联网、不能临时装新的依赖包,只能用预装好的,跟Claude Code那种能联网的环境不一样。
4.4 怎么确认 Skill 真被调用了
写了Skill,最怕的是它压根没被触发,自己还不知道。三个平台各有看得见的信号。
在claude.ai,Claude思考过程里会冒出一行"Reading某某技能",比如"Reading weekly-report",看到这行就说明它真去翻你那本手册了。在Claude Code,你会看到对应的Skill工具被调用,或者你手动敲的斜杠命令生效。通过API,响应里会出现code_execution工具的调用块,那是Claude在容器里读SKILL.md、跑脚本。
如果你说了该触发的话它却没动静,十有八九是description没写好,回到3.3节重新打磨那一行。
4.5 三个入口对照
把上面三个地方并排一下,方便你选。
五、同一个 Skill 能搬到 OpenAI、Gemini 吗
这是很多人最关心的问题:我费劲为Claude写的Skill,换个工具还能用吗?答案是很大程度上能,因为它是开放标准。但完全一字不改地搬通常做不到,差异在哪,这一章讲透。
5.1 开放标准是什么意思
2025年12月18日,Anthropic把Agent Skills的规格作为开放标准公开,规范挂在agentskills.io这个网站上,谁都能看、能照着实现。标准化的就是前面讲的那几样:文件夹布局、SKILL.md的格式、那几个frontmatter字段、渐进式披露的三层加载。
开放的意思是,别的AI工具只要照着这份规范实现,就能读懂同一个SKILL.md。这也是为什么短短时间里,Claude、Codex、Gemini CLI等工具都开始支持这套格式。再强调一遍前面那个容易混的点:开放标准不等于交给基金会,Agent Skills目前还是Anthropic主导加社区贡献,规范的GitHub仓库是agentskills/agentskills,里面还带一个校验工具。
5.2 OpenAI Codex 怎么用
OpenAI这边承载Skill的是Codex,包括CLI、IDE扩展和Codex app,用法跟Claude Code很像,差别在文件放哪。
Codex找Skill的地方是 .agents/skills(仓库级)和 ~/.agents/skills(用户级),注意这个目录名跟Claude的 .claude/skills 不一样。SKILL.md本身的格式照旧,name和description照样必填。Codex还有自己的一点扩展,可以另配一个 agents/openai.yaml 写显示名、图标这些,但那是Codex专属的,不影响SKILL.md通用。
5.3 Gemini CLI、Cursor 怎么用
其他几个主流工具大同小异,都读同一个SKILL.md,只是目录位置和触发方式各有讲究。
Google的Gemini CLI,Skill放在 ~/.gemini/skills/ 或者通用的 ~/.agents/skills/,匹配上之后它会弹一个确认框问你要不要启用,也有 /skills 命令管理。Cursor也开始支持Agent Skills,但目录、触发方式和扩展字段还在快速变化,写跨平台Skill时不要把Cursor专属字段当成通用标准。
一个贴心的设计是,Codex和Gemini CLI都认一个公共目录 ~/.agents/skills/,你把Skill放这儿,多个工具能一起读到,省得每家复制一份。Cursor等工具也在向这套路径靠拢,但具体支持以各自文档为准。
把各家的目录放一张表里,你要往哪搬一目了然。同一个weekly-report文件夹,放进对应位置即可,SKILL.md内容不用动。
具体到OpenAI这边走一遍,三步就用上。把你的Skill文件夹放进项目里的 .agents/skills/(或用户级的 ~/.agents/skills/),SKILL.md保持原样,name和description照旧。然后在Codex里正常提需求,它会自动匹配,也可以打斜杠手动选。要给Codex加点专属设置(显示名、图标),可以另放一个 agents/openai.yaml,但那是Codex的扩展,不影响这个Skill在别处通用。Gemini CLI也类似,只是多了启用确认和 /skills 管理流程。
5.4 可移植的真相:哪些原样通用,哪些会绊倒你
诚实地说,"一份Skill到处跑"在最小范围内成立,但别指望连放置路径和高级功能都零改动。
真正通用的有这些。SKILL.md这个格式本身是跟工具无关的。最稳的最小公分母是name和description两个字段,几乎所有工具都认。脚本用Bash和Python最保险,这两种各家都可靠支持。
会绊倒你的也有这些。一是目录位置各不相同,Claude是 .claude/skills,Codex是 .agents/skills,Gemini是 .gemini/skills。二是那些高级字段和

