跳到正文
GitHub Blog · AI & ML· Christopher Harrison·· 3 小时前精选AI 评分61

GitHub Copilot 教程:如何用自定义指令、skills、agents 和 MCP 服务器教 Copilot 理解你的代码库

GitHub Copilot app for Beginners: How to teach Copilot about your codebase

AI 导读

GitHub 发布 Copilot app for Beginners 系列教程,讲解四种为 Copilot 提供项目上下文的方式:.github/copilot-instructions.md 自定义指令。

推荐理由

GitHub 官方教程梳理了四种让 Copilot 理解项目上下文的机制及其适用场景,读者可以按需组合应用到自己的仓库。

正文 · AI 翻译

了解如何为你的仓库添加自定义指令和技能、使用自定义智能体,并连接 Playwright 等 MCP 服务器。

2026年10月12日

|

5 分钟

  • 分享:

在使用 AI 时,上下文非常重要。每个代码库都有自己的内部规则:组件如何组织、要运行哪些脚本、以及哪些约定适用于不同的框架和文件类型。

Copilot 可以帮助你在一个项目中进行修改,但当它也了解这些规则时,效果最佳。这些知识大部分可以保存在仓库内部,让 Copilot 自动获取,而不必要求你在每次开始新任务时解释相同的标准、脚本和工作流程。

在《GitHub Copilot app for Beginners》系列的这一期中,我们将介绍四种定制 Copilot 处理项目方式的方法:

  • 自定义指令用于传达 Copilot 应遵循的约定。
  • 智能体技能将可重复的流程打包。
  • 自定义智能体为更大的任务带来专业化指导。
  • 模型上下文协议(MCP)服务器将 Copilot 连接到外部工具和数据源,扩展它的能力范围。

我们来看看它们各自如何工作,以及如何协同工作。

从自定义指令开始

假设你让 Copilot 为一个应用程序添加自定义页面尺寸。完成修改只是工作的一部分。新代码还应遵循你的团队已经在使用的模式。

仓库自定义指令为 Copilot 提供这一基线上下文。添加一个 .github/copilot-instructions.md 文件来定义适用于整个仓库的指导,例如你偏好的架构、命名约定,或对测试和验证的要求。

你还可以在 .github/instructions 内创建针对特定路径的指令文件。这些文件使用 applyTo 字段告诉 Copilot 该指导何时适用。

当 Copilot 处理匹配的文件时,它可以同时使用仓库级指令和更具体的指导。这让你可以将宽泛的规则保存在一处,而不必强迫每种文件类型套用同一模式。

将可重复的流程打包为智能体技能

自定义指令适用于应该影响许多任务的标准。但有些指导只在 Copilot 执行特定流程时才重要,例如运行质量检查、准备发布版本,或调试失败的工作流程。

这正是智能体技能的用武之地。技能是一个文件夹,包含指令,以及可选的脚本和其他资源,Copilot 会在相关时加载它们。项目级技能可以放在 .github/skills 中,每个技能位于各自的子文件夹中。

例如,一个 .github/skills/quality-checks 文件夹可以包含一个 SKILL.md 文件,用于说明:

  • Copilot 何时应使用该技能。
  • 哪些脚本用于运行项目的测试和 lint。
  • 每个脚本检查什么。
  • 如何排查常见故障。

SKILL.md 中的描述帮助 Copilot 判断技能何时适用。在更新界面后,Copilot 可以加载 quality-checks 技能并遵循项目既定的测试和 lint 流程,而不必猜测要运行哪些命令。

使用自定义智能体处理更广泛的专业工作

有些任务比单个流程更大。例如,一次无障碍审查可能需要 Copilot 检查跨多个文件的组件、模板、样式和交互。

自定义智能体让你可以为这类工作创建专门化的 Copilot 版本。仓库级的智能体配置文件位于 .github/agents,可以定义该智能体的用途、指令、工具以及相关的项目上下文。

当某类重复性工作需要一个专门的角色或视角时,使用自定义智能体,尤其是当任务可能跨越多个文件、并需要借助多种工具或上下文来源时。

使用 MCP 服务器将 Copilot 连接到外部工具

指令、技能和智能体帮助 Copilot 理解如何在你的项目中工作。MCP 服务器则扩展了它在仓库之外能够访问和执行的内容。

MCP 服务器将 Copilot 连接到外部工具、数据源和服务。文档服务器可以让它访问框架指南,而像 Playwright 这样的服务器则可以让它在浏览器中打开你的应用并与之交互。

你可以在 Copilot 应用中浏览可用的 MCP 服务器,或添加自定义服务器。配置好 Playwright 后,你可以这样提问:使用 Playwright MCP 服务器手动测试该功能。

随后 Copilot 可以使用 Playwright 在浏览器中打开应用,并像你一样与它交互。这让它不仅能验证代码是否通过自动化检查,还能验证更新后的界面是否按预期运行。

选择合适的自定义类型

这些自定义解决的是不同的问题,但将它们组合起来会更有用:

  • 自定义指令定义 Copilot 在整个仓库或特定文件中应遵循的规范。
  • 智能体技能打包了可重复的流程,Copilot 在相关时可以加载它们。
  • 自定义智能体为更宽泛的任务提供专注的专业知识和指导。
  • MCP 服务器将 Copilot 连接到外部工具、服务和数据源,扩展 Copilot 的能力。

随身带走这些要点

为 Copilot 提供有用的项目上下文从四个问题开始:

  • 我一直在反复解释哪个项目规范?
  • 我在重复哪个多步骤流程?
  • 哪个复杂任务可以从专门的自定义智能体中受益?
  • Copilot 需要哪个外部工具或数据源?

不知道从哪里开始?社区已经通过 Awesome Copilot 分享了现成的指令、技能、智能体等。找一个能解决你已在重复的工作流程的方案,审阅其内容,并使其适应你仓库的工具和标准。

从小处着手:选择一个你不断解释的规范,将其添加到 .github/copilot-instructions.md 中,看看 Copilot 如何将它应用到你下一个任务中。


标签:

作者

Christopher Harrison

GitHub 高级开发者布道师

相关文章

Secret protection 必须随软件一同扩展

开发者并不是变得更粗心了,而是被时代甩在了后面。那些让开发者创造出更多软件的工具,也应该承担更多保护这些软件的工作。

我们也提供新闻通讯

在我们专为开发者打造的每两周一期新闻通讯中发现技巧、技术指南和最佳实践。

来源:GitHub Blog · AI & ML · github.blog