Agent 技能
Agent Skills 是一项开放标准,用于为 AI 智能体扩展专业能力。技能将特定领域的知识和工作流打包,使智能体能够执行特定任务。
什么是技能?
技能是可移植、纳入版本控制的功能包,用于让智能体学会执行特定领域的任务。技能可以包含脚本、模板和参考资料,智能体可借助工具使用这些内容。
可移植
技能可用于任何支持 Agent 技能 标准的智能体。
纳入版本控制
技能以文件形式存储,可在您的代码仓库中追踪,或通过 GitHub 代码仓库链接安装。
可操作
技能可以包含脚本、模板和参考资料,智能体可借助工具使用这些内容。
渐进式
技能按需加载资源,高效利用上下文。
技能的工作原理
Cursor 启动时,会自动从技能目录中发现技能,并将其提供给 智能体 使用。智能体会看到可用的技能,并根据上下文判断何时适用。
你也可以在 智能体聊天 中输入 /,然后搜索技能名称以手动调用技能。以这种方式调用的技能会附加到一条消息。要让技能在整个会话期间保持启用,请使用 Option+EnterAlt+Enter (Mac) 或 Alt+Enter (Windows) 将其作为自定义模式使用。请参阅自定义模式。
Cursor 内置技能
Cursor 提供了一组内置技能,帮助您优化日常工作流。这些技能由 Cursor 管理,与您自行添加的技能一同显示。
| 技能 | 功能 |
|---|---|
/automate | 创建由计划、Slack 消息、GitHub 事件及其他来源触发的 Cursor 自动化。 |
/autopilot | 监控 PR,并处理反馈、冲突、失败的检查及后续工作。 |
/canvas | 创建在对话旁呈现的交互式 React 工件。 |
/create-hook | 创建 Cursor 钩子,并针对智能体生命周期事件更新 hooks.json。 |
/create-rule | 创建具有适当范围和指令的 Cursor 规则。 |
/create-skill | 创建 Agent 技能,包括其结构和 SKILL.md 文件。 |
/create-subagent | 创建具有明确角色和委派指令的自定义子智能体。 |
/cursor-blame | 调查由 AI 编写的更改及生成这些更改的提示词。 |
/loop | 按指定间隔重复运行提示词或技能。 |
/migrate-to-skills | 将符合条件的动态规则和斜杠命令转换为 Agent 技能。 |
/review | 选择并运行合适的代码评审智能体。 |
/review-bugbot | 使用 Bugbot 评审代码,查找可能的缺陷和回归。 |
/review-security | 使用安全评审检查代码中的安全漏洞。 |
/sdk | 帮助您使用 Cursor SDK 构建应用和集成。 |
/shell | 将提供的文本按原样作为 Shell 命令运行。 |
/split-to-prs | 将大型更改拆分为较小的 PR。 |
/statusline | 配置 Cursor 命令行界面的状态行。 |
/update-cli-config | 更新 ~/.cursor/cli-config.json 中的 Cursor 命令行界面设置。 |
/update-cursor-settings | 查找并更新相应的 Cursor 或 VS Code 设置。 |
您可以在智能体聊天中输入 /,然后选择相应名称来运行任何内置技能。当您的请求明确符合其用途时,智能体也可能自动使用某些内置技能。
技能目录
技能会自动从以下位置加载:
| 位置 | 适用范围 |
|---|---|
.agents/skills/ | 项目级 |
.cursor/skills/ | 项目级 |
~/.agents/skills/ | 本地计算机上的用户级 (全局) |
~/.cursor/skills/ | 本地计算机上的用户级 (全局) |
Cursor 会从智能体运行所在的计算机加载用户级技能。Cursor 不会��你的本地 ~/.cursor/skills/ 和 ~/.agents/skills/ 文件夹复制到云端代理、代理窗口中的远程 SSH 会话,或自托管 worker。在这些环境中,请使用仓库中的项目技能,或将技能预置到 worker 镜像中。
为保持兼容性,Cursor 还会从 Claude 和 Codex 目录加载技能:.claude/skills/、.codex/skills/、~/.claude/skills/ 和 ~/.codex/skills/。
每个技能都应为一个包含 SKILL.md 文件的文件夹:
.agents/└── skills/ └── my-skill/ └── SKILL.md技能还可以包含用于存放脚本、参考资料和静态资源的可选目录:
.agents/└── skills/ └── deploy-app/ ├── SKILL.md ├── scripts/ │ ├── deploy.sh │ └── validate.py ├── references/ │ └── REFERENCE.md └── assets/ └── config-template.json嵌套技能目录
技能目录可以包含子目录,便于按类别、团队或域名对相关技能进行分组。Cursor 会递归遍历技能根目录,并识别找到的所有 SKILL.md:
.cursor/└── skills/ ├── shipping/ │ ├── land-it/ │ │ └── SKILL.md │ └── careful-merge-conflicts/ │ └── SKILL.md ├── debugging/ │ └── using-datadog-mcp/ │ └── SKILL.md └── workflow/ └── tdd/ └── SKILL.md类别文件夹仅用于归类。技能的标识由包含 SKILL.md 的文件夹决定 (如此处的 land-it、tdd 等) ,而非其父级类别。
Cursor 还会识别嵌套项目子目录中的技能。代码仓库中任意位置的 .cursor/skills/ (或 .agents/skills/) 文件夹都会被识别,因此在单体仓库中,可以将技能与其适用的 package 放在同一位置:
my-monorepo/├── .cursor/skills/ # 仓库级技能│ └── land-it/SKILL.md└── apps/ └── web/ └── .cursor/skills/ # 应用专属技能 └── deploy-web/SKILL.md嵌套项目目录中的技能会自动作用于该目录内的文件。在上面的示例中,智能体仅在处理 apps/web/ 下的文件时才会显示 deploy-web;而仓库级 .cursor/skills/ 中的技能则可在任何位置使用。这与 paths frontmatter 字段类似——无需为嵌套技能设置 paths,即可将其限定在所在目录内。
SKILL.md 文件格式
每项技能均通过一个包含 YAML frontmatter 的 SKILL.md 文件定义:
---name: my-skilldescription: 简短说明此技能的功能及使用场景。---# 我的技能为代理提供的详细说明。## 何时使用- 在...情况下使用此技能- 此技能在...方面有帮助## 说明- 为代理提供的逐步指导- 特定领域的约定- 最佳实践和模式- 如果需要向用户澄清需求,请使用“询问问题”工具Frontmatter 字段
| 字段 | 必填 | 描述 |
|---|---|---|
name | 是 | 技能标识符。只能包含小写字母、数字和连字符。必须与父文件夹名称一致。 |
description | 是 | 描述该技能的功能及适用时机。智能体据此判断相关性。 |
paths | 否 | 使用 glob 模式将技能限定于匹配的文件。接受以逗号分隔的 string 或列表。设置后,仅当智能体处理匹配文件时才会显示该技能。 |
disable-model-invocation | 否 | 设为 true 时,该技能仅会在通过 /skill-name 显式调用时包含。智能体不会根据上下文自动应用该技能。 |
icon | 否 | 当技能用作自定义模式时,徽章上显示的图标。默认值为闪电图标。 |
color | 否 | 当技能用作自定义模式时的徽章颜色。可选值为 default、green、cyan、blue、purple、magenta、orange、yellow、red 或 brand。 |
metadata | 否 | 用于存储额外元数据的任意键值映射。 |
将技能限定为仅适用于特定文件
使用 paths 字段将技能限定为仅适用于匹配一个或多个 glob 模式的文件。这样,只有当智能体读取或编辑匹配的文件时,才会启用该技能,避免在处理无关工作时将特定文件的指导加入上下文。
---name: react-component-patternsdescription: Conventions for writing React components in this codebase.paths: - "**/*.tsx" - "packages/ui/**/*.ts"---# React component patterns...您也可以传入一个以逗号分隔的 string:
---name: python-styledescription: Style rules for Python files.paths: "**/*.py, scripts/**/*.py"---模式遵循标准 glob 语法。若希望某项技能在打开任意文件时均可用,请不要设置 paths。
为兼容较早版本的技能,仍支持使用旧版 globs 字段作为后备;但新技能应使用 paths。
禁用自动调用
默认情况下,智能体判断某项技能相关时,会自动应用该技能。设置 disable-model-invocation: true 可使技能像传统斜杠命令一样,只有在��天中显式输入 /skill-name 时才会被加入上下文。
将技能用作自定义模式
任何包含有效 frontmatter 块的技能都可支持自定义模式,使该技能在整个会话期间始终保留在上下文中。启用的模式会在聊天输入框中显示徽章。可通过可选的 icon 和 color frontmatter 字段设置其样式:
---name: tdddescription: Test-driven development playbook for this repo.icon: beakercolor: green---图标来自 Cursor 的图标集,名称包括 code、terminal、bug、git-branch、book-open、beaker、shield 和 rocket。无法识别的图标或颜色将使用默认徽章 (闪电图标) 。
在技能中包含脚本
技能可包含 scripts/ 目录,其中存放可由智能体运行的可执行代码。在 SKILL.md 中使用相对于技能根目录的路径引用脚本。
---name: deploy-appdescription: 将应用部署到预发布或生产环境。用于部署代码,或当用户提及部署、发布或环境时。---# 部署应用使用提供的脚本部署应用。## 用法运行部署脚本:`scripts/deploy.sh <environment>`其中,`<environment>` 可以是 `staging` 或 `production`。## 部署前验证在部署之前,运行验证脚本:`python scripts/validate.py`智能体会读取这些说明,并在调用技能时执行引用的脚本。脚本可使用任何语言编写,如 Bash、Python、JavaScript,或智能体实现支持的其他可执行格式。
脚本应可独立运行,提供清晰的错误消息,并妥善处理边界情况。
可选目录
技能支持以下可选目录:
| 目录 | 用途 |
|---|---|
scripts/ | 智能体可运行的可执行代码 |
references/ | 按需加载的附加文档 |
assets/ | 模板、图像或数据文件等静态资源 |
保持主 SKILL.md 简洁,将详细的参考资料移至单独的文件。这样可以更高效地利用上下文,因为智能体会按需逐步加载资源。
查看技能
要查看已发现的技能,请在侧边栏中打开 自定义,然后前往 技能。从插件或您的项目安装的技能会与规则一同显示在 由智能体决定 部分。
从 GitHub 安装技能
你可以从 GitHub 仓库导入技能:
- 在侧边栏中打开 自定义
- 前往 规则,然后点击 添加规则
- 选择 远程规则 (GitHub)
- 输入 GitHub 仓库 URL
将规则和命令迁移到技能
Cursor 2.4 内置了 /migrate-to-skills 技能,可帮助您将现有的动态规则和斜杠命令转换为技能。
迁移技能会转换:
- 动态规则:使用“智能应用”配置的规则,即
alwaysApply: false(或未定义) 且未定义globs模式的规则。这些规则会转换为标准技能。 - 斜杠命令:用户级和工作区级命令都会转换为设置了
disable-model-invocation: true的技能,以保留其显式调用行为。
迁移方法:
- 在智能体聊天中输入
/migrate-to-skills - 智能体将识别符合条件的规则和命令,并将其转换为技能
- 在
.cursor/skills/中评审生成的技能
alwaysApply: true 或定义了特定 globs 模式的规则不会被迁移,因为它们具有不同于技能行为的明确触发条件。用户规则也不会被迁移,因为它们不存储在文件系统中。
了解更多
Agent 技能 是一项开放标准。请访问 agentskills.io 了解详情。