工具支持
Agent Skills 作为开放标准,已被多种 AI 编程工具支持。本章介绍各工具对 Skills 的支持情况和使用方法。
支持工具概览
Agent Skills 是开放标准,任何 AI 工具都可以实现支持。以下是目前支持该标准的主要工具:
| 工具 | 支持状态 | Skills 目录 | 特殊功能 |
|---|---|---|---|
| Claude Code | ✅ 完全支持 | .claude/skills/ | 子代理、参数化 Skill、钩子 |
| OpenAI Codex | ✅ 完全支持 | .codex/skills/ | $skill-installer、$skill-creator |
| Trae IDE | ✅ 完全支持 | .trae/skills/ | Skill 创建工具、MCP 集成 |
| Cursor | ✅ 支持 | .cursor/skills/ | Background Agents、MCP 支持 |
| Windsurf | ✅ 支持 | .windsurf/skills/ | Cascade 模式 |
| Gemini CLI | ✅ 支持 | .gemini/skills/ | 渐进式披露 |
| GitHub Copilot | ✅ 支持 | VS Code 扩展 | 原生集成 |
.agents/skills/ 已成为跨客户端共享 Skills 的通用约定。将 Skill 放在此目录,所有支持该标准的客户端都能发现和使用它。
OpenAI Codex
OpenAI Codex 是 OpenAI 官方推出的命令行 AI 编程助手,从 2025 年底开始全面支持 Agent Skills。
安装 Skills
方式一:使用内置 $skill-installer
Codex 内置了 skill 安装器,可以直接在对话中安装:
$skill-installer install the linear skill from the .experimental folder
方式二:使用 Skills.sh CLI(推荐)
Vercel 维护的 skills.sh 是官方推荐的包管理工具:
# 安装 skill 包
npx skills add vercel-labs/agent-skills
# 安装特定 skill
npx skills add vercel-labs/agent-skills --skill frontend-design
# 搜索 skill
npx skills find "react testing"
# 更新所有 skill
npx skills update
方式三:手动创建
mkdir -p .codex/skills/my-skill
目录结构
Codex 支持多级 Skills 目录,优先级从高到低:
项目根目录/
├── .codex/skills/ # 项目级 Skills(最高优先级)
├── ../.codex/skills/ # 父目录 Skills(嵌套项目)
├── ~/.codex/skills/ # 用户级 Skills
└── /etc/codex/skills/ # 系统级 Skills(最低优先级)
使用 Skills
隐式调用:根据 description 自动匹配
用户:应用最新的数据库迁移
AI:(自动使用 database-migration skill)
显式调用:使用 $ 前缀强制调用
用户:$legal-templates 起草一份保密协议
交互式浏览:
/skills
创建 Skills
使用内置的 $skill-creator:
$skill-creator "用于自动重构 React 组件的 Skill"
Codex 会自动创建目录结构、编写 SKILL.md 文件和必要的脚本。
与 MCP 的关系
Codex 同时支持 Agent Skills 和 MCP(Model Context Protocol):
- Agent Skills:基于 Markdown 的指令包,适合封装工作流程和最佳实践
- MCP:基于 JSON-RPC 的协议,适合实时数据访问和复杂集成
两者可以结合使用:Skills 处理高层工作流程,MCP 处理实时数据需求。
Claude Code
Claude Code 是 Anthropic 官方的命令行 AI 编程助手,于 2025 年 10 月首次推出 Agent Skills 功能,是 Agent Skills 标准的创始者。
安装 Skills
方式一:使用 Skills.sh CLI(推荐)
# 安装 skill
npx skills add vercel-labs/agent-skills
# 搜索 skill
npx skills find "database"
# 更新 skill
npx skills update
方式二:自然语言安装
直接告诉 Claude Code 安装 Skill:
帮我安装 skill,项目地址是:https://github.com/anthropics/skills/blob/main/skills/code-reviewer
方式三:手动创建
在项目根目录创建 Skills 目录:
mkdir -p .claude/skills/my-skill
创建 SKILL.md 文件:
touch .claude/skills/my-skill/SKILL.md
方式四:从 GitHub 克隆
cd .claude/skills
git clone https://github.com/anthropics/skills.git temp
mv temp/skills/* .
rm -rf temp
使用 Skills
安装后,Skills 会根据 description 自动触发:
用户:请审查这段 Python 代码
AI:(自动使用 python-code-reviewer skill)
也可以显式调用:
用户:使用 code-reviewer skill 审查这个文件
管理 Skills
查看已安装的 Skills:
列出所有已安装的 skills
更新 Skill:
直接编辑 .claude/skills/ 目录下的文件。
删除 Skill:
rm -rf .claude/skills/skill-name
Trae IDE
Trae IDE 是一款支持 Agent Skills 的集成开发环境,提供了可视化的 Skill 管理功能。
安装 Skills
方式一:使用 Skill 创建工具
Trae IDE 内置了 Skill 创建工具,可以通过界面引导创建新的 Skill。
方式二:手动创建
mkdir -p .trae/skills/my-skill
创建 SKILL.md 文件并编写内容。
目录结构
项目根目录/
├── .trae/
│ ├── skills/
│ │ ├── code-reviewer/
│ │ │ └── SKILL.md
│ │ └── test-generator/
│ │ └── SKILL.md
│ └── rules/
│ └── project_rules.md
└── ...
使用 Skills
在对话中直接描述需求,Trae IDE 会自动匹配并触发相应的 Skill:
用户:帮我审查一下 src/main.py 这个文件
AI:(自动使用 code-reviewer skill)
创建 Skill 的最佳实践
Trae IDE 提供了 Skill 创建的最佳实践模板:
---
name: "skill-name"
description: "功能描述。Invoke when [触发条件]。"
---
# Skill 标题
[详细指令内容]
注意:description 中建议使用 "Invoke when" 来描述触发条件,这是 Trae IDE 的推荐格式。
Cursor
Cursor 是一款流行的 AI 编程编辑器,支持 Agent Skills 和 MCP(Model Context Protocol)。
配置 Skills
Skills 存放在 .cursor/skills/ 目录:
项目根目录/
├── .cursor/
│ ├── skills/
│ │ └── my-skill/
│ │ └── SKILL.md
│ └── rules/
│ └── .cursorrules
└── ...
使用方式
在 Cursor 的 AI 对话中,Skills 会根据用户输入自动触发。Cursor 还支持:
- Background Agents:后台代理可以在你工作时异步执行任务
- MCP 集成:通过 MCP 连接外部工具和服务
- Auto Mode:自动模式让 AI 自主规划和执行任务
与 MCP 结合
Cursor 支持通过 MCP 使用 Skills 功能:
// .cursor/mcp.json
{
"mcpServers": {
"claude-skills": {
"command": "npx",
"args": ["-y", "@k-dense-ai/claude-skills-mcp"]
}
}
}
Windsurf
Windsurf 是 Codeium 推出的 AI 编程工具,支持 Agent Skills 和 Cascade 模式。
目录结构
项目根目录/
├── .windsurf/
│ └── skills/
│ └── my-skill/
│ └── SKILL.md
└── ...
使用方式
与 Claude Code 类似,Skills 会根据 description 自动触发。
Cascade 模式
Windsurf 的 Cascade 模式支持:
- 智能上下文管理:自动维护对话上下文
- 多文件编辑:同时处理多个文件
- Skills 集成:在 Cascade 中使用 Skills 扩展能力
Gemini CLI
Google 的 Gemini CLI 于 2026 年初正式支持 Agent Skills 标准。
目录结构
项目根目录/
├── .gemini/
│ └── skills/
│ └── my-skill/
│ └── SKILL.md
└── ...
特点
- 与 Google 生态系统深度集成
- 支持 Gemini 系列模型
- 兼容标准的 Agent Skills 格式
- 支持渐进式披露(Progressive Disclosure)模式
GitHub Copilot
GitHub Copilot 在 VS Code 中通过扩展支持 Agent Skills,提供原生集成体验。
安装与使用
Copilot 的 Skills 支持内置于 VS Code 扩展中:
- 安装 GitHub Copilot 扩展
- 在 Chat 面板中使用
/命令查看可用 Skills - Skills 会根据对话上下文自动触发
特点
- 与 VS Code 深度集成
- 支持自然语言触发 Skills
- 可通过设置自定义 Skills
OpenCode
OpenCode 是一款支持 Agent Skills 和 ACP(Agent Connect Protocol)的 AI 编程工具。
目录结构
项目根目录/
├── .opencode/
│ └── skills/
│ └── my-skill/
│ └── SKILL.md
└── ...
特点
- 支持 ACP(Agent Connect Protocol)
- 支持自定义工具集成
- 可通过 Skills 扩展 AI 能力
- 文档参考:https://opencode.ai/docs/skills/
VS Code 扩展
多款 VS Code 扩展支持 Agent Skills,为开发者提供多样化选择。
Cline
Cline 是一款开源的 VS Code AI 编程扩展,支持 Agent Skills。
目录结构:
项目根目录/
├── .cline/
│ └── skills/
│ └── my-skill/
│ └── SKILL.md
└── ...
特点:
- 支持多种模型(Claude、GPT、Gemini 等)
- 开源免费
- 支持 Skills 扩展能力
全局 Skills
除了项目级别的 Skills,大多数工具还支持全局 Skills,适用于所有项目。
Skills 扫描范围
大多数本地运行的 Agent 会扫描至少两个范围:
| 范围 | 路径 | 用途 |
|---|---|---|
| 项目级 | <project>/.<client>/skills/ | 客户端原生位置 |
| 项目级 | <project>/.agents/skills/ | 跨客户端共享(通用约定) |
| 用户级 | ~/.<client>/skills/ | 客户端原生位置 |
| 用户级 | ~/.agents/skills/ | 跨客户端共享(通用约定) |
.agents/skills/ 已成为跨客户端 Skill 共享的广泛采用约定。虽然 Agent Skills 规范没有强制要求 Skill 目录的位置,但扫描 .agents/skills/ 意味着其他合规客户端安装的 Skills 会自动对你的客户端可见,反之亦然。
信任考虑
项目级 Skills 来自正在处理的仓库,可能是不可信的(如新克隆的开源项目)。建议对项目级 Skill 加载进行信任检查——只有用户将项目文件夹标记为受信任时才加载。这可以防止不受信任的仓库静默向 Agent 上下文中注入指令。
信任机制实现建议:
| 场景 | 建议处理 |
|---|---|
| 打开新项目 | 提示用户确认是否信任项目级 Skills |
| 用户拒绝信任 | 只加载用户级 Skills,跳过项目级 |
| 用户已标记信任 | 正常加载所有 Skills |
| Skills 内容变更 | 可选:提示用户重新确认 |
安全最佳实践:
- 沙箱隔离:考虑在隔离环境中执行 Skill 脚本
- 权限最小化:限制 Skill 可访问的资源范围
- 审计日志:记录 Skill 激活和执行情况
- 用户确认:对高风险操作要求显式确认
权限白名单
如果你的 Agent 有权限系统来控制文件访问,应该将 Skill 目录加入白名单。这样模型在读取捆绑资源时就不会触发用户确认弹窗。否则,每次引用捆绑脚本或参考文件都会弹出权限对话框,打断包含资源的 Skill 的正常工作流程。
实现建议:
// 权限配置示例
{
"allowed_paths": [
"~/.claude/skills/",
"~/.agents/skills/",
"./.claude/skills/",
"./.agents/skills/"
]
}
上下文管理
当对话上下文窗口填满时,Agent 可能会压缩或总结旧消息。Skill 内容应该被保护,不被修剪。Skill 指令是持久的行为指导——在对话中途丢失它们会默默降低 Agent 的性能,而没有任何可见的错误提示。模型会继续工作,但失去了 Skill 提供的专业指令。
常见保护策略:
| 策略 | 说明 |
|---|---|
| 标记保护 | 将 Skill 工具输出标记为受保护,让压缩算法跳过它们 |
| 结构化标签 | 使用结构化标签标识 Skill 内容,在压缩时保留 |
| 去重激活 | 跟踪已激活的 Skills,避免重复加载相同指令 |
去重激活示例:
如果模型(或用户)尝试加载已经在上下文中的 Skill,可以跳过重新注入,避免相同指令在对话中出现多次。这不仅节省 Token,也保持了对话的清晰性。
全局 Skills 位置
| 工具 | 全局 Skills 目录 |
|---|---|
| Claude Code | ~/.claude/skills/ |
| OpenAI Codex | ~/.codex/skills/ |
| Trae IDE | ~/.trae/skills/ |
| Cursor | ~/.cursor/skills/ |
| Windsurf | ~/.windsurf/skills/ |
| Gemini CLI | ~/.gemini/skills/ |
| OpenCode | ~/.opencode/skills/ |
| Cline | ~/.cline/skills/ |
全局 vs 项目 Skills
- 全局 Skills:适用于所有项目,适合通用技能(如代码审查、文档生成)
- 项目 Skills:仅适用于当前项目,适合项目特定需求(如特定框架规范)
优先级
当全局和项目中存在同名 Skill 时,项目级 Skill 优先。
Skills 共享
GitHub 仓库
可以将 Skills 发布到 GitHub 仓库供他人使用:
my-skills/
├── README.md
├── skills/
│ ├── code-reviewer/
│ │ └── SKILL.md
│ └── test-generator/
│ └── SKILL.md
└── LICENSE
安装共享的 Skills
从 GitHub 仓库安装:
# Claude Code
git clone https://github.com/user/my-skills.git temp
mv temp/skills/* .claude/skills/
rm -rf temp
或使用自然语言:
帮我安装 skill,地址是:https://github.com/user/my-skills
跨工具兼容性
由于 Agent Skills 是开放标准,同一个 Skill 可以在不同工具中使用。
兼容性注意事项
- 目录位置:不同工具使用不同的目录名
- description 格式:建议同时包含功能描述和触发条件
- 特殊功能:某些工具可能有特殊功能,但核心格式保持一致
跨工具使用示例
假设你有一个 Skill:
---
name: "code-reviewer"
description: "审查代码质量。当用户请求代码审查时触发。"
---
# 代码审查专家
...
这个 Skill 可以直接复制到不同工具的 skills 目录中使用:
# 复制到 Claude Code
cp -r my-skill .claude/skills/
# 复制到 OpenAI Codex
cp -r my-skill .codex/skills/
# 复制到 Trae IDE
cp -r my-skill .trae/skills/
# 复制到 Cursor
cp -r my-skill .cursor/skills/
# 复制到 Windsurf
cp -r my-skill .windsurf/skills/
# 复制到 Gemini CLI
cp -r my-skill .gemini/skills/
# 复制到 OpenCode
cp -r my-skill .opencode/skills/
# 复制到 Cline (VS Code)
cp -r my-skill .cline/skills/
脚本设计最佳实践
如果你的 Skill 包含脚本,遵循以下最佳实践可以显著提升 Agent 使用脚本的体验。
避免交互式提示(硬性要求)
这是 Agent 执行环境的硬性要求。Agent 在非交互式 Shell 中操作——它们无法响应 TTY 提示、密码对话框或确认菜单。一个阻塞在交互式输入上的脚本将无限期挂起。
正确做法:通过命令行标志、环境变量或 stdin 接受所有输入:
# 错误:交互式提示
name = input("Enter your name: ")
# 正确:命令行参数
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--name", required=True)
args = parser.parse_args()
使用 --help 文档
--help 输出是 Agent 了解脚本接口的主要方式。包含简要描述、可用标志和使用示例:
def main():
parser = argparse.ArgumentParser(
description="分析代码库并生成依赖关系图",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog="""
示例:
python analyze.py ./src
python analyze.py ./src --format json --output deps.json
python analyze.py ./src --exclude "tests/*" --exclude "docs/*"
"""
)
parser.add_argument("path", help="要分析的代码目录")
parser.add_argument("--format", choices=["text", "json", "dot"],
default="text", help="输出格式")
parser.add_argument("--output", "-o", help="输出文件路径")
parser.add_argument("--exclude", action="append",
help="排除的文件模式")
写有帮助的错误信息
当 Agent 收到错误时,错误信息直接影响它的下一次尝试。模糊的"Error: invalid input"浪费一次对话轮次。相反,说明哪里错了、期望什么、以及应该尝试什么:
# 错误:模糊的错误信息
if not os.path.exists(path):
raise ValueError("Invalid input")
# 正确:有帮助的错误信息
if not os.path.exists(path):
raise ValueError(
f"Path not found: {path}\n"
f"Make sure the directory exists and is accessible.\n"
f"Current working directory: {os.getcwd()}"
)
使用结构化输出
优先使用结构化格式——JSON、CSV、TSV——而非自由文本。结构化格式可以被 Agent 和标准工具(jq、cut、awk)同时处理,使脚本可在管道中组合使用。
分离数据和诊断信息:将结构化数据发送到 stdout,将进度消息、警告和其他诊断信息发送到 stderr。这样 Agent 可以捕获干净、可解析的输出,同时仍能访问诊断信息。
import sys
import json
def analyze(path):
# 诊断信息到 stderr
print(f"Analyzing {path}...", file=sys.stderr)
# 结构化数据到 stdout
result = {"path": path, "dependencies": [...]}
print(json.dumps(result, indent=2))
其他设计考虑
幂等性:Agent 可能重试命令。"不存在则创建"比"创建并在重复时报错"更安全。
输入约束:用清晰的错误拒绝模糊输入,而不是猜测。尽可能使用枚举和封闭集合。
Dry-run 支持:对于破坏性或有状态操作,--dry-run 标志让 Agent 预览将要发生什么。
有意义的退出码:为不同的失败类型使用不同的退出码(未找到、参数无效、认证失败),并在 --help 输出中记录它们。
安全默认值:考虑破坏性操作是否需要显式确认标志(--confirm、--force)或其他适合风险级别的保护措施。
可预测的输出大小:许多 Agent 工具会自动截断超过阈值(如 10-30K 字符)的工具输出。如果脚本可能产生大量输出,默认使用摘要或合理的限制,并支持 --offset 等标志让 Agent 在需要时请求更多信息。
调试 Skills
验证 Skill 格式
确保 SKILL.md 文件格式正确:
- frontmatter 使用
---包围 - name 和 description 字段存在
- description 不超过 1024 字符
测试触发
测试 Skill 是否正确触发:
- 使用 description 中包含的关键词
- 观察是否正确调用 Skill
- 检查输出是否符合预期
常见问题
Skill 不触发
- 检查 description 是否包含正确的关键词
- 确认 Skill 文件位置正确
- 验证 frontmatter 格式
输出不符合预期
- 检查指令是否清晰
- 添加更多示例
- 明确输出格式
工具对比总结
| 特性 | Claude Code | OpenAI Codex | Trae IDE | Cursor | Windsurf | Gemini CLI |
|---|---|---|---|---|---|---|
| Skills 支持 | ✅ 完整 | ✅ 完整 | ✅ 完整 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| MCP 支持 | ✅ 支持 | ✅ 支持 | ✅ 支持 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| 包管理器 | Skills.sh | Skills.sh | 内置工具 | - | - | - |
| 内置安装器 | 自然语言 | $skill-installer | 界面引导 | - | - | - |
| Skill 创建器 | 自然语言 | $skill-creator | 界面引导 | - | - | - |
| 多层级 Skills | ✅ 支持 | ✅ 5级 | ✅ 支持 | ✅ 支持 | ✅ 支持 | ✅ 支持 |
| 后台代理 | ✅ 支持 | ✅ 支持 | ✅ 支持 | ✅ Background Agents | ✅ Cascade | - |
| 开放标准 | ✅ 创始者 | ✅ 采用 | ✅ 采用 | ✅ 采用 | ✅ 采用 | ✅ 采用 |
选择建议
- Claude Code:追求最完整的 Skills 生态和官方支持
- OpenAI Codex:习惯 OpenAI 生态,需要与 GPT 模型深度集成
- Trae IDE:偏好图形界面,需要可视化 Skill 管理
- Cursor:需要 Background Agents 和强大的 MCP 生态
- Windsurf:喜欢 Cascade 模式的智能上下文管理
- Gemini CLI:深度使用 Google 服务和 Gemini 模型
历史背景
Agent Skills 标准的发展历程:
- 2025年10月:Anthropic 在 Claude Code 中首次推出 Claude Skills 功能
- 2025年12月:Anthropic 将 Agent Skills 发布为开放标准,多家厂商宣布支持
- 2026年1月:OpenAI 在 Codex CLI 中采用该标准,Vercel 推出 Skills.sh 包管理器
- 2026年初:Google 在 Gemini CLI 中支持 Agent Skills
- 2026年:Trae IDE、Cursor、Windsurf 等工具陆续支持,形成跨平台生态
小结
各工具对 Agent Skills 的支持情况:
- Claude Code:创始者,最完整的生态,支持子代理、参数化和钩子
- OpenAI Codex:全面支持,提供
$skill-installer和$skill-creator工具 - Trae IDE:内置可视化 Skill 创建工具,支持 MCP 集成
- Cursor:支持 Background Agents 和丰富的 MCP 生态
- Windsurf:Cascade 模式提供智能上下文管理
- Gemini CLI:支持渐进式披露
- 跨工具兼容:所有工具遵循相同的开放标准,Skills 可无缝迁移
- 跨客户端共享:使用
.agents/skills/目录实现跨客户端共享
下一章是 知识速查表,汇总所有关键知识点。