什么是 Skills?
SKILL.md 文件,用来教 Devin 如何对你的应用进行端到端测试——如何启动服务、本地运行应用、在浏览器中验证变更,以及在打开 PR(pull request,合并请求)之前确认一切正常工作。它们遵循开放的 Agent Skills 标准,因此同一套 Skill 文件可以在多个 AI 编码工具之间通用。
请在代码仓库中将 Skill 文件放在 .agents/skills/<skill-name>/SKILL.md 路径下。Devin 会自动在所有已连接的代码仓库中发现这些文件。完整的文件格式参考请参见 Agent Skills 规范。
为什么 Skills 很重要
- 启动本地开发环境 — 要运行哪些服务、使用哪些端口、如何准备/填充测试数据
- 在浏览器中验证改动 — 要检查哪些页面、什么样才算“正确”、哪些异常需要标记出来
- 运行合适的测试套件 — 要执行哪些命令、通过时的输出应该是什么样
Devin 会自动推荐技能
- 学到内容的摘要(例如 “how to start the backend with Docker” 或 “如何使用 Docker 启动后端”)
- 建议的
SKILL.md文件内容 - 一个用于将该 skill 提交到代码仓库的 “Create PR” 按钮
快速示例
技能发现
- 已建立索引的代码库(indexed repos) — Devin 的后端会在与你的组织连接的所有代码库中为
SKILL.md文件建立索引。这些技能在会话开始时即可立即使用,此时还未克隆任何代码库。 - 已克隆的代码库(cloned repos) — 当代码库被克隆到会话使用的机器上时,Devin 会在磁盘上扫描其中的
SKILL.md文件。通过磁盘扫描发现的技能会更新或覆盖来自同一代码库的任何匹配的索引技能,确保 Devin 始终使用当前正在处理分支上的最新版本。
支持的技能文件位置
SKILL.md 文件:
.agents/skills/<skill-name>/SKILL.md(推荐).github/skills/<skill-name>/SKILL.md.claude/skills/<skill-name>/SKILL.md.cursor/skills/<skill-name>/SKILL.md.codex/skills/<skill-name>/SKILL.md.cognition/skills/<skill-name>/SKILL.md
Devin 从技能文件中加载的内容
--- 块)并提取:
| Field | Purpose |
|---|---|
name | 标识该技能。如果省略,则回退到父目录名称。 |
description | 在技能列表中显示的简短摘要,让 Devin(以及你)知道该技能的作用。 |
allowed-tools | 限制技能处于激活状态时 Devin 可以使用哪些工具。 |
| Field | Purpose |
|---|---|
argument-hint | 与技能名称一起显示的提示文本,用于描述预期的参数。 |
triggers | 控制谁可以调用该技能——默认是 ["user", "model"]。将其设置为 ["user"] 可以阻止 Devin 自动激活该技能。 |
$ARGUMENTS—— 替换为调用技能时传入的完整参数字符串(例如通过@skills:deploy staging prod)。你也可以按索引访问单个参数:第一个参数用$ARGUMENTS[0]或$0,第二个参数用$ARGUMENTS[1]或$1,依此类推。参数按空白字符拆分。!`command`—— 在仓库根目录执行该命令,并用其标准输出替换,从而让技能可以包含分支名、端口号等动态值。
@skills:deploy staging 时,会用 staging 替代 $ARGUMENTS 和 $0。
Devin 如何使用技能
SKILL.md 文件,并将其正文作为系统级指令注入到当前上下文中。这意味着在接下来的任务中,Devin 会主动遵循该技能中的步骤——它不仅仅是一个参考,而是直接引导 Devin 的行为。
Devin 可以通过多种方式使用技能:
自动调用
test-before-pr 技能,Devin 会在打开 PR 之前先激活它。若要禁止对只希望显式触发的技能进行自动调用,请在 frontmatter 中设置 triggers: ["user"]。
在提示中提到某个技能
@skills:skill-name 来让 Devin 使用某个特定技能:
$ARGUMENTS、$ARGUMENTS[0]、$1 等的地方,都会被替换为对应的参数值。
一次只启用一个技能
搜索和列出
限制
- 全局 / 组织级技能 — 目前,技能只存在于各个代码仓库中。对于组织范围的技能,可以创建一个专门的「skills」仓库作为变通方案。我们正在探索对适用于所有仓库的组织级技能提供原生支持。
- 组合多个技能 — 当前一次只能激活一个技能。我们正在开发对工作流串联与组合的支持。
了解更多
- Agent Skills 规范 — 针对
SKILL.md文件格式、frontmatter 前置字段和目录结构的开放标准 - Knowledge — 用于提供上下文提示和事实信息(而非分步操作指南)
- Playbooks — 用于附加到会话的可重用提示模板
