GitHub AI & ML

GitHub Copilot 初学者应用:如何让 Copilot 了解你的代码库

GitHub博客的入门教程介绍了四种让Copilot理解代码库的方法:用.github/copilot-instructions.md等文件写自定义指令、把可重复流程打包为代理技能、为跨文件任务创建自定义代理,以及通过Playwright等MCP服务器连接外部工具。教程给出具体文件路径与配置步骤,可复现性强,但属于官方使用指南而非新模型发布。

Copilot moves through a decorative field of floating cubes marked with sync and check icons.
配图来源 · GitHub AI & ML

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

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

在我们的 GitHub Copilot 初学者应用系列的这一期中,我们将探讨四种定制 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 何时应使用该技能。
  • 哪些脚本用于运行项目的测试和代码检查。
  • 每个脚本检查什么。
  • 如何排查常见故障。

中的描述 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 分享了现成的 instructions、skills、agents 等资源。找到能解决你已在重复的某个工作流程的资源,审阅其内容,并根据你仓库的工具和标准进行调整。

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

试用 GitHub Copilot 应用 >

这篇文章 面向初学者的 GitHub Copilot 应用:如何让 Copilot 了解你的代码库 首发于 The GitHub Blog.

原始出处

GitHub AI & ML

内容说明

原始发布及相关权利归来源方。

机器翻译 · 请以原文为准