name 和 description。只有当 Cascade 决定调用该技能 (或当你 @mention 它) 时,才会加载完整的 SKILL.md 内容和辅助文件。这样一来,即使定义了很多技能,你的上下文窗口也能保持精简。
有关技能规范的更多信息,请访问 agentskills.io。
如何创建 Skill
使用 UI (最简单)
- 打开 Cascade 面板
- 点击面板右上角的三个点,打开自定义菜单
- 点击
技能部分 - 点击
+ 工作区创建工作区 (项目专属) 技能,或点击+ 全局创建全局技能 - 为技能命名 (仅限使用小写字母、数字和连字符)
手动创建
工作区技能 (项目专用) :- 创建目录:
.devin/skills/<skill-name>/(旧版.windsurf/skills/<skill-name>/仍会被读取) - 添加一个带有 YAML frontmatter 的
SKILL.md文件
- 创建目录:
~/.codeium/windsurf/skills/<skill-name>/(或~/.config/devin/skills/<skill-name>/,该目录与 Devin CLI 共享) - 添加一个带有 YAML frontmatter 的
SKILL.md文件
SKILL.md 文件格式
每个技能都需要一个SKILL.md 文件,其中包含 YAML frontmatter,用于定义该技能的元数据:
技能示例
必填 Frontmatter 字段
- name:技能的唯一标识符 (显示在 UI 中,并用于 @ 提及)
- description:展示给模型的简要说明,用于帮助其判断何时调用该技能
deploy-to-staging、code-review、setup-dev-environment
添加辅助资源
将所有辅助文件放在技能文件夹中,与SKILL.md 放在同一目录下。调用该技能时,Cascade 就可以使用这些文件:
调用技能
自动调用
当你的请求与某个技能的描述相匹配时,Cascade 会自动调用该技能,并使用其指示和资源来完成任务。这是技能最常见的使用方式——你只需描述你想做什么,Cascade 就会判断哪些技能适用。 你的技能 frontmatter 中的description 字段至关重要:它能帮助 Cascade 理解应在何时调用该技能。请编写清晰说明技能作用及其适用时机的描述。
手动调用
你始终可以在 Cascade 输入框中键入@skill-name,以显式启用某个技能。当你想确保使用特定技能,或者想调用某个可能不会因你的请求而自动触发的技能时,这种方式就很有用。
技能作用域
为实现跨 Agent 兼容,Devin Desktop 也会在
.agents/skills/ 和 ~/.agents/skills/ 中发现技能。如果你已启用 Claude Code 配置读取功能,还会扫描 .claude/skills/ 和 ~/.claude/skills/。系统级技能 (企业版)
企业版组织可以部署系统级技能,这些技能在所有工作区中均可用,且终端用户无法修改。Devin Desktop 会在Devin 技能目录存在时加载该目录,只有在其不存在时才回退到旧版 Windsurf 目录;两者不会合并:
每个技能都是一个子目录,其中包含一个
SKILL.md 文件,与工作区技能相同。
示例用例
部署工作流程
创建一个包含部署脚本、环境配置和回滚步骤的技能:代码审查指南
包括风格指南、安全检查清单和审查模板:测试步骤
将测试模板、覆盖率要求和 CI/CD 配置整合在一起:最佳实践
- 编写清晰的描述:描述能帮助 Cascade 判断何时调用该技能。请具体说明该技能的作用,以及适用场景。
- 包含相关资源:模板、检查清单和示例能让技能更实用。想一想哪些文件可以帮助他人完成这项任务。
-
使用描述性名称:
deploy-to-staging比deploy1更好。名称应清楚表明该技能的作用。
技能 vs 规则 vs 工作流程
这三者都可以自定义 Cascade,但它们在结构、调用方式和上下文成本方面有所不同:
**经验法则:**如果 Cascade 应该自动拾取它,并且它需要辅助文件,就使用技能。如果它是简短的行为约束,就使用规则。如果你希望始终由自己手动触发,就使用工作流程。

