agent skill的规则

Agent skill注意事项

  1. 完整路径:项目根目录/.github/skills/你的技能名/SKILL.md

  2. SKILL.md 文件名必须全大写

  3. 技能名称文件夹(如 code-review)可以任意命名,建议用英文小写加连字符

  4. 在一个技能文件夹(例如 code-review)里,只能放一个 SKILL.md 文件

  5.  在一个仓库中的 项目根目录/.github/skills/ 这个目录下可以创建多个“技能文件名”:在不同的技能文件夹中,创建不同情况下调用的SKILL.md文件.

在 VS Code 中打开代码仓库文件夹作为工作区根目录,Copilot 就能自动识别这个路径下的 Skills。

SKILL.md 是一个技能的“入口文件”。每个技能文件夹就是一个独立的“技能包”,Copilot 只认识这个文件夹下唯一的 SKILL.md,不能包含多个。

正确的目录结构

你应该用多个不同的文件夹来区分不同的技能,这样能更好地实现模块化管理。一个典型的目录结构如下:

.github/skills/
├── code-review/                # 技能A:代码审查
│   └── SKILL.md                # 唯一的入口文件
├── generate-tests/             # 技能B:生成单元测试
│   └── SKILL.md
└── commit-message/             # 技能C:生成提交信息
    └── SKILL.md

补充说明与规范

  • 一个文件夹,一个技能:这种“一文件夹一技能”的布局,本质上是 Agent Skills 的标准化设计,确保了 Copilot 能准确地识别和调用你的技能。

  • 文件夹名必须与 name 一致:SKILL.md 中 name 字段的值必须与父文件夹的名称完全一致。例如,如果你的文件夹是 code-reviewSKILL.md 开头的元数据部分需要这样写:

  • ---
    name: code-review
    description: 执行代码审查、检查代码风格、提供改进建议。
    ---

    一个文件夹,多个资源文件:虽然只能有一个 SKILL.md,但你可以在它旁边放很多辅助文件(如脚本、模板、参考资料),实现更复杂的自动化流程。目录结构可以像这样:

  • code-review/
    ├── SKILL.md           # 唯一的入口文件
    ├── scripts/           # 存放可执行脚本
    │   └── linter.py
    ├── references/        # 存放参考资料
    │   └── style-guide.md
    └── templates/         # 存放模板文件
        └── report.md

     例如,下面截图是一个SKILL.md的内容,通过它能一目了然SKILL.md和一些辅助参考文件(references)和脚本(scripts)如何协同工作的:

  • image

    image

    问答环节:

  • Q : SKILL.md中的元数据和body都是系统提示词吗?

  • A:实际上在 skill.md 文件中:

  1. 元数据(如 namedescription 等)主要用于标识、索引和调用该技能,并非作为系统提示词直接送入模型。它通常由系统框架读取,决定何时使用哪个技能。

  2. 主体(body) 才是实际注入到模型上下文中的指令内容,相当于系统提示词的一部分,用于指导模型的行为和输出。

  3. 所以只有 body 属于系统提示词,元数据不是。

posted @ 2026-04-17 15:29  苹果芒  阅读(50)  评论(0)    收藏  举报