如何创建自定义 Agent Skills
简单说一下
这里不讲 Agent Skills 的定义和概念,可以看上一篇博客:Agent Skills: 如何为大语言模型构建可复用技能
这里使用 Gemini CLI 演示,因为博主的 Claude 过期了,没续期,Gemini 是白嫖的一年学生免费使用。
不过文档来看,还是 Anthropic 的更全,步骤更详细。大家想看官方文档的,直接看 Anthropic 的就好了。
自定义 SKills 详细说明:Claude - How to create custom skills
Skills 存放的位置
目前就看到了 Claude Agent SDK 有说明 skills 的使用(Agent skill in the sdk),其他官方框架没找到,注意是官方框架哦。
如果有其他大佬知道 OpenAI Agents sdk 和 Google Agent Development Kit 对 skill 的使用说明,麻烦贴一下连接在评论区,将不胜感激。
| 个人 Skills | 项目 Skills | |
|---|---|---|
| Claude Agent SDK | 默认:~/.claude/skills/,或任意目录,通过 cwd 指定 |
项目目录下 .claude/skills/ |
| Claude Code | ~/.claude/skills/ |
项目目录下 .claude/skills/ |
| Codex(Openai) | ~/.codex/skills/ |
项目目录下.codex/skills/ |
| Gemini CLI | ~/.gemini/skills/ |
项目目录下.gemini/skills/ |
创建第一个 Skill
示例是用的 Gemini 官方的:Gemini CLI - Create a skill
Claude Code: Create your first skill
Openai(gpt): codex-create custom skill
-
创建 Skill 目录
每一个 Skill 就是一个单独的目录
mkdir -p ~/.gemini/skills/code-reviewer-example -
在
~/.gemini/skills/code-reviewer-example目录下创建一个SKILL.md文件,内容示例:--- name: code-reviewer description: Expertise in reviewing code for style, security, and performance. Use when the user asks for "feedback," a "review," or to "check" their changes. --- # Code Reviewer You are an expert code reviewer. When reviewing code, follow this workflow: 1. **Analyze**: Review the staged changes or specific files provided. Ensure that the changes are scoped properly and represent minimal changes required to address the issue. 2. **Style**: Ensure code follows the project's conventions and idiomatic patterns as described in the `GEMINI.md` file. 3. **Security**: Flag any potential security vulnerabilities. 4. **Tests**: Verify that new logic has corresponding test coverage and that the test coverage adequately validates the changes. Provide your feedback as a concise bulleted list of "Strengths" and "Opportunities." -
Gemini CLI 首次使用 Skill 需要先启用 (Claude code 不需要)
也可以直接改
~/.gemini/settings.json文件,添加:{ "experimental": { "skills": true } }
-
在终端运行
gemini,进入交互界面,在交互界面输入/settings -
在
settings中输入skills,查看Enable Agent Skills。- 如果是 false,则回车一次会变成 true, 按
esc - 如果是 true,就直接按
esc

- 如果是 false,则回车一次会变成 true, 按
-
在上一步如果是交互设置,设置完成后,输入
/quit退出,再进入gemini交互终端。这时候就会有显示加载的 skill 和 存在/skills命令了,执行/skills list查看存在的 skills

-
输入关键词触发skill,观察skill的过程,如:
please check the code changes。可以看出 Gemini 对 skill 的使用过程跟 Claude 是一样的,细节可以看上一篇:Agent Skills: 如何为大语言模型构建可复用技能

当允许后,它就会使用 skill 执行相应的任务

上面步骤是最简单的 Skill 示例,但是复杂的 Skill 不只是 SKILL.md 就能完成的。还有下面的资源定义:
scripts/:代理可以运行的可执行脚本(bash、Python、Node)。references/:供代理查阅的静态文档、模式(schemas)或示例数据。assets/:代码模板、样板代码或二进制资源。
完整的 Skill 目录可能如下所示(Claude 官方 pdf 示例):
pdf/
├── SKILL.md # 主要说明(触发时加载)
├── FORMS.md # 表单填充指南(根据需要加载)
├── reference.md # API 参考(根据需要加载)
├── examples.md # 使用示例(根据需要加载)
└── scripts/
├── analyze_form.py # 实用脚本(执行,不加载)
├── fill_form.py # 表单填充脚本
└── validate.py # 验证脚本
SKILL.md 元数据字段
在 YAML 前置部分中使用以下字段:
| 字段 | 必需 | 描述 |
|---|---|---|
name |
是 | Skill 名称。必须仅使用小写字母、数字和连字符(最多 64 个字符)。应与目录名称匹配。 |
description |
是 | Skill 的功能和何时使用它(最多 1024 个字符)。Claude 使用这个来决定何时应用 Skill。 |
allowed-tools |
否 | 当此 Skill 活跃时,Claude 可以使用而无需请求权限的工具。支持逗号分隔的值或 YAML 风格的列表。参见限制工具访问。 |
model |
否 | 当此 Skill 活跃时使用的模型(例如,claude-sonnet-4-20250514)。默认为对话的模型。 |
context |
否 | 设置为 fork 以在具有自己对话历史的分叉子代理上下文中运行 Skill。 |
agent |
否 | 指定当设置 context: fork 时使用哪个代理类型(例如,Explore、Plan、general-purpose 或来自 .claude/agents/ 的自定义代理名称)。如果未指定,默认为 general-purpose。仅在与 context: fork 结合时适用。 |
hooks |
否 | 定义限定于此 Skill 生命周期的 hooks。支持 PreToolUse、PostToolUse 和 Stop 事件。 |
user-invocable |
否 | 控制 Skill 是否出现在斜杠命令菜单中。不影响Skill 工具或自动发现。默认为 true。参见控制 Skill 可见性。 |
有关完整的编写指导,包括验证规则,请参阅最佳实践指南。
最佳实践
这里不单独写出来是因为篇幅很长,而且 Anthropics 的文档都支持切换语言,就没必要了。
Github Skills 参考:Anthropics skills