Skip to content

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 publish

Copilot 如何选择技能

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 字段有细微差别,跨工具使用需检查兼容性。