跳到主要内容

工具支持

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 扩展中:

  1. 安装 GitHub Copilot 扩展
  2. 在 Chat 面板中使用 / 命令查看可用 Skills
  3. Skills 会根据对话上下文自动触发

特点

  • 与 VS Code 深度集成
  • 支持自然语言触发 Skills
  • 可通过设置自定义 Skills

OpenCode

OpenCode 是一款支持 Agent Skills 和 ACP(Agent Connect Protocol)的 AI 编程工具。

目录结构

项目根目录/
├── .opencode/
│ └── skills/
│ └── my-skill/
│ └── SKILL.md
└── ...

特点

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 内容变更可选:提示用户重新确认

安全最佳实践

  1. 沙箱隔离:考虑在隔离环境中执行 Skill 脚本
  2. 权限最小化:限制 Skill 可访问的资源范围
  3. 审计日志:记录 Skill 激活和执行情况
  4. 用户确认:对高风险操作要求显式确认

权限白名单

如果你的 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 可以在不同工具中使用。

兼容性注意事项

  1. 目录位置:不同工具使用不同的目录名
  2. description 格式:建议同时包含功能描述和触发条件
  3. 特殊功能:某些工具可能有特殊功能,但核心格式保持一致

跨工具使用示例

假设你有一个 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 和标准工具(jqcutawk)同时处理,使脚本可在管道中组合使用。

分离数据和诊断信息:将结构化数据发送到 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 文件格式正确:

  1. frontmatter 使用 --- 包围
  2. name 和 description 字段存在
  3. description 不超过 1024 字符

测试触发

测试 Skill 是否正确触发:

  1. 使用 description 中包含的关键词
  2. 观察是否正确调用 Skill
  3. 检查输出是否符合预期

常见问题

Skill 不触发

  • 检查 description 是否包含正确的关键词
  • 确认 Skill 文件位置正确
  • 验证 frontmatter 格式

输出不符合预期

  • 检查指令是否清晰
  • 添加更多示例
  • 明确输出格式

工具对比总结

特性Claude CodeOpenAI CodexTrae IDECursorWindsurfGemini CLI
Skills 支持✅ 完整✅ 完整✅ 完整✅ 支持✅ 支持✅ 支持
MCP 支持✅ 支持✅ 支持✅ 支持✅ 支持✅ 支持✅ 支持
包管理器Skills.shSkills.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 的支持情况:

  1. Claude Code:创始者,最完整的生态,支持子代理、参数化和钩子
  2. OpenAI Codex:全面支持,提供 $skill-installer$skill-creator 工具
  3. Trae IDE:内置可视化 Skill 创建工具,支持 MCP 集成
  4. Cursor:支持 Background Agents 和丰富的 MCP 生态
  5. Windsurf:Cascade 模式提供智能上下文管理
  6. Gemini CLI:支持渐进式披露
  7. 跨工具兼容:所有工具遵循相同的开放标准,Skills 可无缝迁移
  8. 跨客户端共享:使用 .agents/skills/ 目录实现跨客户端共享

下一章是 知识速查表,汇总所有关键知识点。