Appearance
Agent Skills 是 Copilot 的按需知识模块:在 SKILL.md 文件中写入专项指令,当任务与技能描述匹配时,Copilot 自动调用该技能。适合那些"只在特定情况下才需要"的详细操作规程,比自定义指令更精准。
GitHub Copilot Agent Skills:为 AI 代理添加专项技能
Skills vs 自定义指令
| 对比项 | 自定义指令 | Skills |
|---|---|---|
| 适用场景 | 几乎每次任务都适用的通用规则 | 特定情况下才需要的详细知识 |
| 触发方式 | 始终生效 | 按任务需要自动选择 |
| 示例 | "始终用中文回复" | "部署流程:先运行测试,再执行 deploy.sh" |
技能文件结构
.github/
└── skills/
└── deploy/ # 技能目录(小写+连字符)
├── SKILL.md # 技能定义(必须)
└── deploy.sh # 可选的脚本文件创建技能
在技能目录中创建 SKILL.md:
markdown
---
name: deploy
description: 将当前项目部署到测试环境,包含完整的前置检查和回滚流程
---
# 部署到测试环境
## 前置检查
1. 确认所有测试通过:运行 `npm test`
2. 检查当前分支是否为功能分支,不能直接在 main 上部署
## 部署步骤
1. 运行 `./scripts/build.sh` 构建生产包
2. 执行 `./scripts/deploy-staging.sh` 推送到测试环境
3. 等待健康检查通过(通常 30 秒内)
4. 输出测试环境 URL
## 回滚
如果部署失败,执行 `./scripts/rollback.sh` 恢复上一个稳定版本。SKILL.md frontmatter 字段
| 字段 | 必须 | 说明 |
|---|---|---|
name | 是 | 唯一标识,小写+连字符 |
description | 是 | 技能用途,Copilot 根据此字段判断何时调用 |
allowed-tools | 否 | 预授权工具(如 shell) |
license | 否 | 开源许可证 |
允许脚本执行
如果技能需要执行 Shell 命令:
markdown
---
name: image-convert
description: 将 SVG 图片转换为 PNG 格式
allowed-tools: shell
---安全提示:只有在你完全审查过技能内容和脚本,并且信任来源时,才设置
allowed-tools: shell。
技能存放位置
| 路径 | 作用范围 |
|---|---|
.github/skills/ | 当前仓库 |
.claude/skills/ | Claude Code 兼容路径 |
.agents/skills/ | 通用代理路径 |
~/.copilot/skills/ | 当前用户(所有项目) |
~/.agents/skills/ | 用户级通用路径 |
使用 gh skill 命令管理
bash
# 搜索主题相关技能
gh skill search documentation
# 预览技能内容(安装前先看看)
gh skill preview github/awesome-copilot documentation-writer
# 安装技能
gh skill install github/awesome-copilot documentation-writer
# 更新已安装的技能
gh skill update
# 发布自己的技能
gh skill publishCopilot 如何选择技能
Copilot 根据你的任务描述和技能的 description 字段匹配,自动决定是否调用某个技能。description 写得越准确,触发精度越高。
常见问题
Q: 技能安全吗?第三方技能有风险吗?
A: GitHub 不对技能内容做审核。第三方技能可能包含提示词注入、隐藏指令或恶意脚本。安装前务必通过 gh skill preview 检查内容,只安装你信任来源的技能。
Q: Copilot 会不会误用技能?
A: description 越具体,误触发越少。如果技能总是在不该用的时候被调用,说明 description 太模糊,需要精细化描述触发条件。
Q: Skills 和 Claude Code 的 Skills 系统兼容吗?
A: Copilot 的 Skills 和 Claude Code 的 SKILL.md 格式相近,部分路径(如 .claude/skills/)也被 Copilot 识别。两者设计理念相同,但 frontmatter 字段有细微差别,跨工具使用需检查兼容性。