Agent Skill 能在 Codex、Cursor 和其他 Agent 中通用吗?
SKILL.md 是开放格式,同一个文件夹通常能在多个 Agent 中运行。本文说明哪些部分可以通用、哪些不能,以及安装前如何判断。
最简单的方法
让 AI 帮你做
把下面这句话发给你正在使用的 AI Agent:
请检查一个 Agent Skill 能否在我的 AI Agent 中使用。先问我使用哪个 Agent,并让我提供 Skill 文件夹或链接;然后检查安装目录、所需工具和 Agent 专属依赖,明确告诉我哪些可以直接使用、哪些可能失效,以及需要修改什么。
大多数时候可以。Skill 是由普通文件组成的文件夹,格式也是开放的,因此只要 Agent 能读取 SKILL.md,同一个 Skill 通常就能运行。不同 Agent 之间的差别主要在安装目录、触发 Skill 的方式,以及它们是否具备某个 Skill 所需的工具。
先看结论
- Skill 的工作说明可以通用,因为本质上就是文本。
- 安装目录因 Agent 而异,也是最常见的失败原因。
- 匹配方式有所不同:同一个 Skill 在某个 Agent 里可能自动触发,在另一个 Agent 里可能需要说得更明确。
- 依赖特定模型或某个宿主专属能力的 Skill 无法完整通用。
- 放在
~/.agents/skills中的一份 Skill,可以同时供多个 Agent 使用。
为什么 Skill 能在不同 Agent 之间使用
Skill 没有需要绑定到某个平台的运行时。它通常包含一个带有 frontmatter(文档元数据)的 Markdown 文件,以及工作所需的参考资料和脚本。它不需要编译,也不需要向某个宿主 API 注册。
所以,与其问“这个 Claude Skill 能不能在 Cursor 里使用”,更准确的问题是:Cursor 会不会读取我安装的目录?这个 Skill 是否依赖 Cursor 不具备的能力?
哪些可以通用,哪些不能
| 内容层 | 可以通用吗? | 说明 |
|---|---|---|
SKILL.md 中的工作说明 | 可以 | 普通文本,各个 Agent 都能读取 |
| 参考文档、模板和示例 | 可以 | 文件本身不依赖 Agent |
| 安装目录 | 不可以直接照搬 | 每个 Agent 的目录不同,见下表 |
| Agent 什么时候决定使用它 | 部分可以 | 不同 Agent 匹配请求和 description(用途描述)的方式不同 |
| 指定模型或宿主专属能力 | 不可以 | 例如依赖某个模型图像生成功能的 Skill,需要对应模型 |
scripts/ 中的脚本 | 部分可以 | 取决于 Agent 是否允许执行本地脚本 |
简单来说:内容通常可以带走,目录和运行条件需要重新确认。
各个 Agent 把 Skill 放在哪里
| Agent | Skill 目录 |
|---|---|
| Claude Code | ~/.claude/skills |
| Codex | ~/.agents/skills |
| Cursor | ~/.agents/skills |
| Gemini CLI | ~/.agents/skills |
| OpenCode | ~/.agents/skills |
| Kimi Code CLI | ~/.agents/skills |
| Antigravity | ~/.gemini/config/skills |
~/.agents/skills 是多个 Agent 共用的目录约定。把 Skill 放进去一次,几个 Agent 都可以读取,这也是“同一个 Skill 能否用于两个工具”的实际答案。
Claude Code 使用自己单独的目录。如果你同时使用 Claude Code 和其他 Agent,可以安装两份,也可以保留一份主要副本,再用符号链接连接到另一个目录。
如果你的 Agent 不在表里,请查询它自己的文档。Skill 放错目录后通常会直接被忽略,不一定会出现报错。
为什么同一个 Skill 在两个 Agent 里的表现不同
先不用急着判断 Skill 坏了,可以按这个顺序检查:
- 目录错误。 这是最常见的原因,请先对照上表。
- 仍在旧会话里。 Agent 通常在会话开始时扫描 Skill,请开启一个新会话。
- 用途描述没有匹配。 不同 Agent 判断请求是否符合
description的方式不同。先原样运行 Skill 自带的演示提示词;如果可以触发,说明 Skill 本身正常,差别只在你的表达方式。 - 缺少依赖。 如果 Skill 会调用外部模型或服务,请检查它的依赖说明。
- 宿主确实不支持。 少数 Skill 围绕某个 Agent 的专属能力设计,这种情况无法完整迁移。
安装前怎么判断
Skillry 上每个 Skill 都会显示两个不同的信息:
**Runs in(可运行于)**表示声明的兼容范围。Skill 格式是开放的,所以只要没有依赖某个宿主的专属能力,它通常会被标记为兼容主流 Agent。这说明的是 Skill 的设计范围。
**Last tested(最近测试)**表示我们实际在哪些 Agent 上运行过,以及测试日期。这说明的是已经完成的真实测试。
这两个信息需要分开看。兼容范围广,不等于我们已经在所有 Agent 上测试过;为了显得谨慎而少写兼容宿主,也不能准确反映 Skill 的设计。如果某个 Skill 没有真实测试记录,页面不会显示 Last tested 这一行。
如果 Last tested 列表里没有你的 Agent,可以理解为:从设计上应该能运行,但还没有人在与你相同的环境中确认过。
常见问题
Claude Skill 可以在 Cursor 中使用吗?
通常可以。工作说明文件完全相同,安装目录不同:Claude Code 使用 ~/.claude/skills,Cursor 使用 ~/.agents/skills。依赖 Claude 专属能力的 Skill 无法完整迁移。
Codex 会读取 SKILL.md 吗?
会。Codex 从 ~/.agents/skills 读取 Skill,这也是 Skillry CLI 默认安装到的共享目录。
同一个文件夹可以同时用于两个 Agent 吗?
可以,前提是它们读取同一个目录。多个 Agent 共用 ~/.agents/skills。Claude Code 使用独立路径,因此需要第二份副本或符号链接。建议保留一份主要来源,避免版本逐渐不一致。
为什么同一个 Skill 在某个 Agent 中效果更好? 输出质量同时取决于工作说明和底层模型。Skill 规定了方法,真正完成工作的仍然是模型。
怎么知道 Skill 实际在哪些 Agent 中测试过?
查看 Skill 页面上的 Last tested。Runs in 告诉你它按设计支持什么,Last tested 告诉你我们实际运行过什么。
我的 Agent 不在列表里怎么办?
先从该 Agent 的官方文档里找到 Skill 目录,再使用 --target <directory> 安装,不要凭经验猜路径。
接下来
浏览 Skill 目录。每个 Skill 页面都会列出可运行的 Agent,并展示由该 Skill 真实生成的结果。