跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Node.jsAI大前端

GitHub Copilot Agent Skills 详解与进阶用法

综述由AI生成GitHub Copilot Agent Skills 的概念、优势及与自定义指令的区别。内容包括技能创建步骤(标准化目录与 SKILL.md 编写)、存储位置选择、自动与手动调用方式、以及三层渐进式加载机制。通过实战案例展示了 GitHub Actions 调试与 Vue3 组件开发的技能模板,并介绍了社区技能复用与插件集成方法,帮助开发者定制专属 AI 工作流,提升编码效率。

追风少年发布于 2026/4/6更新于 2026/5/2237 浏览
GitHub Copilot Agent Skills 详解与进阶用法

Copilot 进阶玩法:Agent Skills 让 AI 助手适配你的专属开发流

用过 GitHub Copilot 的开发者应该都有这样的体验:想让它适配项目专属的测试流程、调试规范,总要反复输入 prompt;团队统一的开发准则,要挨个给 Copilot 喂指令;换个工具(比如从 VS Code 切到 Copilot CLI),之前的定制化配置全失效……

而Agent Skills就是 Copilot 为解决这些痛点推出的核心功能 —— 它把 Copilot 从'通用代码补全工具'升级成了可自定义、可复用、跨工具的智能代理,让我们能为 AI 打造专属的'技能工具箱',一次配置,多端复用。这篇文章就从基础概念到实操步骤,把 Agent Skills 的用法讲透,让你的 Copilot 真正懂你的开发流。

一、什么是 Agent Skills?

简单来说,Agent Skills 是包含指令、脚本、资源的标准化文件夹,GitHub Copilot 能根据任务相关性自动加载这些技能,完成专业化的开发任务。它是一套开放标准,不仅能在 VS Code 的 Copilot 中使用,还能无缝兼容 Copilot CLI、Copilot coding agent 等多个 AI 代理工具。

和传统的自定义 prompt 相比,Agent Skills 的核心是模块化、可复用、轻量加载:它不是把一堆指令一次性塞给 Copilot,而是把技能拆成'元数据 + 核心指令 + 辅助资源',只有在需要时才加载对应内容,既不浪费上下文,又能让 Copilot 精准执行专业任务。

Agent Skills 的核心优势
  1. 专属定制:为领域化任务定制能力,比如项目专属的 Playwright 测试流程、GitHub Actions 调试规范,无需重复输入上下文;
  2. 一次配置多端用:创建的技能可跨 VS Code、Copilot CLI 等工具使用,告别跨工具重新配置的麻烦;
  3. 能力组合:多个技能可搭配使用,构建复杂的开发工作流,比如'代码检查 + 单元测试 + 部署验证'一站式执行;
  4. 高效加载:采用渐进式加载机制,仅在需要时加载相关内容,避免上下文冗余,提升 Copilot 响应效率。

二、别搞混!Agent Skills vs 自定义指令

很多开发者会把 Agent Skills 和 Copilot 的Custom Instructions(自定义指令) 弄混,两者虽然都是定制 Copilot 行为,但定位、用法完全不同,核心区别看这张表就够了:

特性Agent SkillsCustom Instructions
核心用途教 Copilot 专业能力和工作流(如测试、调试、部署)定义编码标准和通用准则(如命名规范、提交信息要求)
可移植性跨 VS Code、Copilot CLI、Copilot coding agent仅支持 VS Code、GitHub.com
内容组成指令 + 脚本 + 示例 + 各类资源仅纯文本指令
生效范围任务专属,按需加载全局生效(或通过 glob 匹配文件类型)
遵循标准开放标准(agentskills.io)VS Code 专属标准
什么时候用哪个?记好这两个原则

✅ 用 Agent Skills:想创建跨工具复用的能力、需要搭配脚本 / 模板等资源、想定义专业化工作流(测试 / 调试 / 部署)、想分享能力给社区;

✅ 用自定义指令:想定义项目专属的编码规范、设置语言 / 框架的通用约定、指定代码审查 / 提交信息规则、按文件类型配置专属规则。

简单来说:自定义指令管'基础规矩',Agent Skills 管'专业能力'。

三、实操第一步:创建属于你的 Agent Skill

创建 Agent Skills 的核心是标准化的文件夹结构和SKILL.md 文件,整个过程零开发门槛,按步骤来就能搞定,甚至还能根据需求添加脚本、模板等辅助资源。

先搞懂:技能的两种存储位置

Copilot 支持项目级技能和个人级技能,分别对应不同的使用场景,存储路径也不同,可根据需求选择:

技能类型存储路径适用场景
项目级技能(仓库内).github/skills/、.claude/skills/、.agents/skills/仅对当前项目生效,比如项目专属的测试流程、部署脚本
个人级技能(全局)~/.copilot/skills/、~/.claude/skills/、~/.agents/skills/跨所有项目生效,比如个人通用的调试方法、代码规范

💡 小技巧:可通过 VS Code 的chat.agentSkillsLocations配置项,添加自定义的技能搜索路径,方便跨项目共享技能。

手把手创建技能:三步搞定

这里以创建项目级的 Web 应用测试技能为例,全程只需三步,其他技能可直接复用这个流程:

步骤 1:创建技能目录结构

在项目根目录创建标准化的目录,每个技能对应一个独立子目录(目录名后续要和 SKILL.md 中的 name 一致,小写,横杠分隔空格):

# 进入项目根目录
cd your-project
# 创建项目级技能根目录
mkdir -p .github/skills
# 创建专属技能子目录(示例:webapp-testing)
mkdir .github/skills/webapp-testing
步骤 2:编写核心文件 SKILL.md

这是技能的核心文件,必须放在技能子目录下,采用「YAML 头 + Markdown 主体」的格式:YAML 头定义技能元数据,Markdown 主体写详细的执行指令、步骤、示例。

基础模板如下,其中name和description为必填项,其他为可选:

--- # 必选:技能唯一标识,小写 + 横杠,必须和父目录名一致(最大 64 字符)
name: webapp-testing
# 必选:技能用途 + 触发场景,越具体越好(最大 1024 字符)
description: 基于 Playwright 的 Web 应用测试指南,创建/运行/调试浏览器测试时自动加载
# 可选:斜杠命令调用时的参数提示
argument-hint: [测试文件] [调试选项]
# 可选:是否在 Copilot 聊天的/菜单中显示,默认 true
user-invokable: true
# 可选:是否禁止 Copilot 自动加载,默认 false(true 则仅能手动调用)
disable-model-invocation: false
---
# 技能主体:详细指令
## 适用场景
- 创建 Playwright 浏览器测试用例
- 调试失败的 Web 应用测试
- 搭建项目的 Playwright 测试基础设施

## 操作步骤
1. 参考测试模板 [./test-template.js] 创建测试文件,遵循项目标准结构
2. 优先使用 Playwright 的角色选择器定位元素,避免使用 XPath
3. 本地运行测试:npx playwright test
4. 调试测试:npx playwright test --debug

## 最佳实践
- 为动态内容添加 data-testid 属性
- 测试用例保持独立,避免依赖其他用例
- 失败时自动截图,方便问题定位
步骤 3:添加辅助资源(可选)

在技能子目录下,可添加脚本、模板、示例等资源,比如上面的测试技能可添加:

  • test-template.js:Playwright 测试模板文件
  • examples/:测试用例示例目录
  • debug-script.sh:测试调试辅助脚本

Copilot 会根据 SKILL.md 中的引用,按需加载这些资源,无需提前塞入上下文。

SKILL.md 编写踩坑提醒
  1. name字段必须和技能子目录名完全一致,否则 Copilot 无法加载技能;
  2. description要写清触发场景,比如'创建 Playwright 测试时加载',否则 Copilot 无法精准匹配;
  3. 引用子目录内的资源时,使用相对路径,比如./test-template.js;
  4. 指令要步骤化、具体化,避免模糊描述,让 Copilot 能直接执行。

四、如何使用已创建的 Agent Skills?

创建好的技能有两种使用方式:Copilot 自动加载、手动斜杠命令调用,可通过 SKILL.md 中的配置项控制,灵活适配不同场景。

方式 1:自动加载(懒人首选)

只要你的提问匹配 SKILL.md 中description的触发场景,Copilot 会自动加载对应的技能,无需手动操作。

比如你在 Copilot 聊天中输入:'帮我写一个登录页的 Playwright 测试用例',Copilot 会自动匹配webapp-testing技能,按其中的指令生成符合规范的测试代码。

方式 2:手动斜杠命令调用(精准控制)

在 Copilot 聊天输入框中输入/,会弹出技能列表,选择对应的技能即可调用,还能在技能后添加额外上下文,让 Copilot 更精准执行:

# 示例 1:调用 webapp-testing 技能,为登录页创建测试
/webapp-testing 为登录页创建浏览器测试用例

# 示例 2:调用 github-actions-debugging 技能,调试 PR#42 的工作流
/github-actions-debugging 调试 PR#42 的失败的 CI 工作流
四种技能调用配置组合

通过user-invokable和disable-model-invocation两个可选配置,可实现四种调用方式,覆盖所有使用场景:

配置组合能否通过 / 命令调用能否被 Copilot 自动加载适用场景
都不配置(默认)是是通用技能,比如通用测试、基础调试
user-invokable: false否是背景知识类技能,无需手动调用,比如项目专属的技术栈知识
disable-model-invocation: true是否高危 / 特殊技能,需手动触发,比如项目部署、代码重构
两者都设为 false/true否否禁用技能,暂时不用的技能可这样配置

五、Copilot 如何高效加载技能?三层渐进式机制

为什么 Agent Skills 能做到'多技能共存但不冗余'?核心是 Copilot 的三层渐进式加载机制,只在需要时加载对应内容,最大化节省上下文,提升响应效率。

第一层:技能发现(始终加载)

Copilot 只会读取所有技能 SKILL.md 中的YAML 头元数据(name+description),这部分内容极轻量,用于判断技能是否和当前任务相关,不会占用过多上下文。

第二层:指令加载(匹配时加载)

当你的提问匹配某个技能的 description 时,Copilot 才会加载该技能的SKILL.md 主体指令,此时 Copilot 就能获取详细的执行步骤。

第三层:资源访问(需要时加载)

只有 Copilot 执行指令时需要用到辅助资源(脚本、模板、示例),才会加载技能子目录中的相关文件,未引用的资源永远不会被加载。

这套机制让我们可以为 Copilot 配置几十个甚至上百个技能,而不用担心上下文冗余,真正实现'技能多而不杂'。

六、进阶玩法:复用共享技能 + 插件贡献技能

除了自己创建技能,我们还能复用社区的共享技能,插件开发者还能将技能集成到自己的 VS Code 插件中,让技能的复用性拉满。

复用社区共享技能

GitHub 社区已经有大量现成的 Agent Skills,可直接复用,核心仓库有两个:

  • github/awesome-copilot:社区精选的技能、自定义代理、prompt 合集;
  • anthropics/skills:官方参考技能库,覆盖测试、调试、部署等常见场景。

使用步骤:

  1. 浏览仓库,找到符合需求的技能;
  2. 将技能子目录复制到自己项目的.github/skills/(项目级)或~/.copilot/skills/(个人级);
  3. 根据自己的需求,修改 SKILL.md 中的指令和资源;
  4. 直接使用,无需额外配置。

💡 安全提醒:使用社区技能前,一定要检查其中的脚本和指令,避免包含恶意代码,VS Code 的终端工具可配置脚本执行白名单,提升安全性。

插件开发者:为插件添加 Agent Skills

VS Code 插件开发者可通过chatSkills贡献点,将技能集成到插件中,用户安装插件后就能直接使用,步骤如下:

  1. 插件内创建技能目录,遵循标准结构:
extension-root/
└── skills/
    └── my-skill/ # 技能子目录,名对应 SKILL.md 的 name
        └── SKILL.md # 核心技能文件
  1. 在 package.json 中注册技能,添加chatSkills贡献点,指定 SKILL.md 的路径:
{
  "contributes": {
    "chatSkills": [
      {
        "path": "./skills/my-skill/SKILL.md"
      }
    ]
  }
}
  1. 发布插件,用户安装后,就能在 Copilot 中直接使用该技能。

七、实战案例:两个常用技能模板

分享两个开发中高频使用的 Agent Skills 模板,可直接复制修改,快速适配自己的项目:

案例 1:GitHub Actions 调试技能

解决开发中 CI/CD 工作流失败的调试问题,让 Copilot 按标准化流程排查问题:

---
name: github-actions-debugging
description: GitHub Actions 工作流调试指南,排查失败的 PR/分支工作流时自动加载
argument-hint: [PR 编号/分支名]
---
# GitHub Actions 工作流调试
## 调试流程
1. 使用 list_workflow_runs 工具查询目标 PR/分支的最新工作流运行状态
2. 使用 summarize_job_log_failures 工具获取失败任务的日志摘要
3. 若摘要信息不足,使用 get_job_logs 工具查看完整失败日志
4. 本地复现失败场景,定位问题根源
5. 修复问题后,本地验证再提交代码

## 常见问题排查
- 环境变量缺失:检查仓库 Secrets 是否配置齐全
- 版本不兼容:验证 Action 版本和项目依赖版本匹配
- 权限不足:确保工作流拥有仓库/分支的操作权限
- 超时问题:拆分长任务或增加 timeout 配置
案例 2:Vue3 组件开发技能

让 Copilot 按团队规范生成 Vue3 组件,避免重复的代码审查问题:

---
name: vue3-component-dev
description: Vue3 组件开发指南,创建/重构 Vue3 组件时自动加载,遵循团队 TS+Script Setup 规范
argument-hint: [组件名] [组件类型 (全局/业务)]
---
# Vue3 组件开发规范
## 技术栈要求
- 必须使用<script setup>语法+TypeScript
- 样式使用 Scoped CSS,全局样式统一放在@/styles/
- 组件 Props 必须添加类型注解和默认值
- 事件触发使用 defineEmits,添加类型校验

## 组件创建步骤
1. 在对应目录创建组件文件:[组件名].vue,按'容器组件/展示组件'拆分
2. Props 定义遵循'最小可用'原则,避免冗余属性
3. 展示组件仅负责渲染,业务逻辑放在容器组件
4. 为组件添加基础注释,说明用途、Props、事件
5. 全局组件需在@/components/index.ts 中注册

## 最佳实践
- 避免组件嵌套过深(不超过 3 层)
- 通用逻辑抽离为 Composables,放在@/composables/
- 图片使用 vite 的 import.meta.url 导入,避免绝对路径
- 组件命名使用 PascalCase,文件命名和组件名一致

八、最后总结:Agent Skills 的核心价值

Agent Skills 的出现,让 GitHub Copilot 从'通用的 AI 代码助手'升级成了可定制、可扩展、跨工具的智能开发代理,它的核心价值不是'多一个功能',而是让 AI 适配开发者的开发流,而不是开发者适配 AI。

通过 Agent Skills,我们可以:

  • 把个人 / 团队的开发经验、标准化流程封装成可复用的技能;
  • 让 Copilot 在不同工具中保持一致的行为,告别跨工具重新配置;
  • 构建属于自己的 AI 技能库,让 Copilot 成为真正的'专属开发助手'。

如果你还在为 Copilot'不懂你的项目'而烦恼,不妨从一个简单的技能(比如测试、调试)开始,试试 Agent Skills,你会发现 Copilot 的效率能提升一个台阶。

💡 最后一个小技巧:在 Copilot 聊天中输入/skills,可快速打开技能配置菜单,查看、管理所有已创建的技能,新手必用!

目录

  1. Copilot 进阶玩法:Agent Skills 让 AI 助手适配你的专属开发流
  2. 一、什么是 Agent Skills?
  3. Agent Skills 的核心优势
  4. 二、别搞混!Agent Skills vs 自定义指令
  5. 什么时候用哪个?记好这两个原则
  6. 三、实操第一步:创建属于你的 Agent Skill
  7. 先搞懂:技能的两种存储位置
  8. 手把手创建技能:三步搞定
  9. 步骤 1:创建技能目录结构
  10. 进入项目根目录
  11. 创建项目级技能根目录
  12. 创建专属技能子目录(示例:webapp-testing)
  13. 步骤 2:编写核心文件 SKILL.md
  14. 必选:技能用途 + 触发场景,越具体越好(最大 1024 字符)
  15. 可选:斜杠命令调用时的参数提示
  16. 可选:是否在 Copilot 聊天的/菜单中显示,默认 true
  17. 可选:是否禁止 Copilot 自动加载,默认 false(true 则仅能手动调用)
  18. 技能主体:详细指令
  19. 适用场景
  20. 操作步骤
  21. 最佳实践
  22. 步骤 3:添加辅助资源(可选)
  23. SKILL.md 编写踩坑提醒
  24. 四、如何使用已创建的 Agent Skills?
  25. 方式 1:自动加载(懒人首选)
  26. 方式 2:手动斜杠命令调用(精准控制)
  27. 示例 1:调用 webapp-testing 技能,为登录页创建测试
  28. 示例 2:调用 github-actions-debugging 技能,调试 PR#42 的工作流
  29. 四种技能调用配置组合
  30. 五、Copilot 如何高效加载技能?三层渐进式机制
  31. 第一层:技能发现(始终加载)
  32. 第二层:指令加载(匹配时加载)
  33. 第三层:资源访问(需要时加载)
  34. 六、进阶玩法:复用共享技能 + 插件贡献技能
  35. 复用社区共享技能
  36. 插件开发者:为插件添加 Agent Skills
  37. 七、实战案例:两个常用技能模板
  38. 案例 1:GitHub Actions 调试技能
  39. GitHub Actions 工作流调试
  40. 调试流程
  41. 常见问题排查
  42. 案例 2:Vue3 组件开发技能
  43. Vue3 组件开发规范
  44. 技术栈要求
  45. 组件创建步骤
  46. 最佳实践
  47. 八、最后总结:Agent Skills 的核心价值
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++ 入门:C 语言没有的基础知识总结
  • AI 写作技术发展趋势与伦理挑战
  • AI 开发工作流:4 个核心 Skills 组合实战指南
  • VS Code 配置 AI Agent Skills 指南
  • Llama-2-7b 在昇腾 NPU 上的六大核心场景性能基准报告
  • ClawdBot 本地 AI 实践:树莓派 4 运行 OCR/Whisper/vLLM 高并发
  • 六款主流 AI 模型评测:国产 Agent 第一梯队共识
  • LeetCode 双指针算法核心解析与实战
  • 大模型英文降重能力测评:千问 DeepSeek 等七款工具对比
  • VS Code 中 GitHub Copilot 的安装与高效使用指南
  • 数据结构核心:图论定义、遍历与关键路径解析
  • MultiResUNet 论文笔记:重新思考 U-Net 架构用于多模态生物医学图像分割
  • C++ STL 常用算法详解
  • Mac Mini 部署 OpenClaw 本地 AI 智能体指南
  • Windows 笔记本使用 LLaMA-Factory 微调 Qwen2.5-3B-Instruct 实战指南
  • 机器人动力学分析:牛顿欧拉法推导与详述
  • 为什么 AI 开发首选 Python 而非 Java 或 C++?
  • Java UniHttp 接口调用中百度 SN 签名参数乱序的三种解决策略
  • SpringAI 结合 Ollama 本地部署 Deepseek 实现对话机器人(二)
  • 基于 yt-dlp 的开源 Web 视频播放器部署指南

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online