在VS Code中使用代理技能
Agent Skills 是包含指令、脚本和资源的文件夹,GitHub Copilot 可以在相关时加载以执行专业任务。Agent Skills 是一个开放标准,适用于多个 AI 代理,包括 GitHub Copilot in VS Code、GitHub Copilot CLI 和 GitHub Copilot 编码代理。
与主要定义编码指南的定制指令不同,技能能够实现专业化的能力和工作流程,这些内容可以包括脚本、示例和其他资源。你创造的技能是可移动的,适用于任何技能兼容的代理。
代理技能的主要优势:
- 专精 Copilot:为领域特定任务量身定制能力,无需重复上下文
- 减少重复:创建一次,所有对话自动使用
- Compose 能力:结合多种技能构建复杂的工作流程
- 高效加载:只有相关内容在需要时才加载到上下文中
特工技能与定制说明
虽然代理技能和自定义指令都有助于定制Copilot的行为,但它们有不同的用途:
| 特色 | 特工技能 | 自定义说明 |
|---|---|---|
| 目的 | 教授专业能力和工作流程 | 定义编码标准和指南 |
| 便携性 | 可以跨 VS Code、Copilot CLI 和 Copilot 编码代理 | 仅有VS Code和 GitHub.com |
| 内容 | 说明、脚本、示例和资源 | 仅有指令 |
| 范围 | 任务特定、按需加载 | 总是贴上(或者通过球状图案) |
| 标准 | 开放标准(agentskills.io) | VS 代码特定 |
想用特工技能时:
- 创建可重复使用、跨不同AI工具的功能
- 请在说明旁附上脚本、示例或其他资源
- 与更广泛的人工智能社区共享能力
- 定义专业工作流程,如测试、调试或部署流程
当你想这样做时,使用自定义说明:
- 定义项目特定的编码标准
- 集合语言或框架约定
- 明确代码审查或提交信息的指导方针
- 基于文件类型使用球状模式应用规则
创建一项技能
类型/技能在聊天输入中快速打开配置技能菜单。
技能存储在带有SKILL.md定义技能行为的文件。VS Code 支持两种技能:
| 技能类型 | 位置 |
|---|---|
| 项目技能,存储在你的仓库中 | .github/skills/,.claude/skills/,.agents/技能/ |
| 个人技能存储在你的用户档案中 | ~/.copilot/skills/,~/.claude/skills/,~/.agents/技能/ |
你可以通过使用
创建技能:
-
创建一个
.github/skills目录放在你的工作区。 -
为你的技能创建一个子目录。每个技能都应该有自己的目录(例如,
.github/skills/webapp-testing). -
创建一个
SKILL.md在Skill目录中,文件结构如下:--- name: skill-name description: Description of what the skill does and when to use it --- # Skill Instructions Your detailed instructions, guidelines, and examples go here... -
可选地,将脚本、示例或其他资源添加到你的技能目录中。
例如,测试网页应用的技能可能包括:
SKILL.md- 测试运行说明test-template.js- 模板测试文件示例/- 示例测试场景
SKILL.md 文件格式
该SKILL.mdfile 是一个带有 YAML 前置的 Markdown 文件,定义了技能的元数据和行为。
头部(必需)
该头部格式为 YAML 前置文件,包含以下字段:
| 场地 | 必修 | 描述 |
|---|---|---|
名称 |
是的 | 技能的唯一标识符。必须使用小写字母,空格使用连字符(例如,WebApp测试).必须与父目录名称匹配。最多64字符。 |
描述 |
是的 | 描述该技能的作用以及何时使用。具体说明能力和使用场景,帮助Copilot决定何时加载该技能。最多1024字符。 |
论证提示 |
不 | 当技能作为砍击命令被调用时,聊天输入栏会显示提示文字。帮助用户了解应提供哪些额外信息(例如,[测试文件][选项]). |
用户可调用 |
不 | 控制技能是否会在聊天菜单中以斩击命令的形式出现。默认确实如此.设置为错误这样可以从菜单中隐藏技能,同时让特工自动加载。/ |
失能模型调用 |
不 | 控制代理人是否能根据相关性自动加载技能。默认错误.设置为确实如此只能通过slash命令手动调用。/ |
正体
技能内容包含副驾驶在使用该技能时应遵循的指导、指导和示例。写出清晰具体的说明,描述:
- 这项技能有助于实现什么
- 何时使用该技能
- 步骤步骤
- 期望输入和输出的示例
- 引用任何包含的脚本或资源
你可以在技能目录里用相对路径引用文件。例如,要引用技能目录中的脚本,请使用[测试脚本](./test-template.js).
示例技能
以下示例展示了你可以创造的不同类型的技能。
示例:网页应用测试技能
---
name: webapp-testing
description: Guide for testing web applications using Playwright. Use this when asked to create or run browser-based tests.
---
# Web Application Testing with Playwright
This skill helps you create and run browser-based tests for web applications using Playwright.
## When to use this skill
Use this skill when you need to:
- Create new Playwright tests for web applications
- Debug failing browser tests
- Set up test infrastructure for a new project
## Creating tests
1. Review the [test template](./test-template.js) for the standard test structure
2. Identify the user flow to test
3. Create a new test file in the `tests/` directory
4. Use Playwright's locators to find elements (prefer role-based selectors)
5. Add assertions to verify expected behavior
## Running tests
To run tests locally:
```bash
npx playwright test
```
To debug tests:
```bash
npx playwright test --debug
```
## Best practices
- Use data-testid attributes for dynamic content
- Keep tests independent and atomic
- Use Page Object Model for complex pages
- Take screenshots on failure
示例:GitHub Actions 调试技能
---
name: github-actions-debugging
description: Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows.
---
# GitHub Actions Debugging
This skill helps you debug failing GitHub Actions workflows in pull requests.
## Process
1. Use the `list_workflow_runs` tool to look up recent workflow runs for the pull request and their status
2. Use the `summarize_job_log_failures` tool to get an AI summary of the logs for failed jobs
3. If you need more information, use the `get_job_logs` or `get_workflow_run_logs` tool to get the full failure logs
4. Try to reproduce the failure locally in your environment
5. Fix the failing build and verify the fix before committing changes
## Common issues
- **Missing environment variables**: Check that all required secrets are configured
- **Version mismatches**: Verify action versions and dependencies are compatible
- **Permission issues**: Ensure the workflow has the necessary permissions
- **Timeout issues**: Consider splitting long-running jobs or increasing timeout values
将技能用作斩击指令
技能在聊天中以斜杠命令形式提供,同时还有提示文件。在聊天输入栏输入,查看可用技能和提示列表,然后选择一个技能来调用。/
你可以在slash命令后添加额外的上下文。例如,登录页面的 /webapp-testing或/github-actions-debugging PR #42.
默认情况下,所有技能都会出现在菜单中。使用该/用户可调用以及失能模型调用控制每个技能访问方式的前置属性:
| 配置 | 斜击命令 | 由副驾驶自动加载 | 使用场景 |
|---|---|---|---|
| 默认(两个属性均省略) | 是的 | 是的 | 通用技能 |
用户可调用:错误 |
不 | 是的 | 模型在相关时加载的背景知识技能 |
disable-model-invocation: true |
是的 | 不 | 这些技能你只想按需运行 |
| 两人都已完成 | 不 | 不 | 残疾技能 |
Copilot 如何使用技能
技能部门利用渐进披露,仅在必要时高效加载内容。这个三级加载系统确保你可以安装多种技能而不消耗上下文:
第一关:技能发现
副驾驶总是通过阅读他们的信息知道有哪些技能可用名称以及描述摘自YAML前言。这些元数据很轻量级,有助于Copilot决定哪些技能与你的请求相关。
第二级:指令加载
当你的请求符合某个技能的描述时,副驾驶会加载SKILL.md将正体归入其上下文中。只有在那之后,详细的说明才会被提供。你也可以在聊天中用斩击命令直接调用技能。/
第三级:资源获取
Copilot 只能根据需要访问技能目录中的额外文件(脚本、示例、文档)。这些资源只有在Copilot引用后才加载,保持上下文的高效。
这种架构意味着技能既会根据提示自动激活,也能通过斜杠手动调用。你可以安装多种技能,Copilot只加载与每个任务相关的内容。
使用共享技能
你可以利用他人创造的技能来增强Copilot的能力。github/awesome-copilot 仓库包含不断增长的社区技能、定制代理、说明和提示。人类学/技能库包含额外的参考技能。
使用共享技能:
- 浏览仓库中的可用技能
- 把技能目录复制到你的
.github/skills/文件夹 - 审核并定制
SKILL.md按需提交 - 可选地,根据需要修改或添加资源
在使用共享技能前,务必审查,确保符合您的要求和安全标准。VS Code 的终端工具为脚本执行提供了控制,包括自动批准选项、可配置的允许列表以及对代码运行的严格控制。了解更多关于自动审批功能安全考虑的问题。
从扩展中贡献技能
扩展可以通过以下方式贡献技能聊天技能贡献点package.json.路径必须指向包含SKILL.md文件,遵循代理技能规范。
必需文件夹结构
技能目录必须遵循以下结构:
extension-root/
└── skills/
└── my-skill/ # Directory name must match the `name` field in SKILL.md
└── SKILL.md # Required
package.json注册技能
添加聊天技能你扩展中的贡献点package.json.该路径属性必须指向包含SKILL.md文件:
{
"contributes": {
"chatSkills": [
{
"path": "./skills/my-skill"
}
]
}
}
该名称在SKILL.mdFrontmatter 必须与父目录名称匹配。例如,如果目录是技能/我的技能/,名称域必须为我的技能.如果名字不匹配,技能就不加载。
该SKILL.md文件格式与项目和个人技能相同。例如:
---
name: my-skill
description: Description of what the skill does and when to use it.
---
# My Skill
Detailed instructions for the skill...
特工技能标准
Agent Skills 是一个开放标准,使不同 AI 代理之间能够实现可移植性。你在VS Code中创建的技能可以与多个代理合作,包括:
- GitHub Copilot 在 VS Code 中:支持聊天和代理模式
- GitHub Copilot CLI:在终端工作时可访问
- GitHub Copilot 编码代理:用于自动化编码任务
在 agentskills.io 了解更多关于特工技能标准的信息。