GitHub Copilot app for Beginners: How to teach Copilot about your codebase
TL;DR · AI 摘要
本文详解GitHub Copilot通过自定义指令、代理技能和MCP服务器适配项目规范的4种方法,提升AI代码生成准确性。
核心要点
- 通过.github/copilot-instructions.md定义项目规范,确保生成代码符合团队标准
- 使用.github/skills目录封装质量检查等可复用流程
- MCP服务器可扩展Copilot连接CI/CD工具和数据库
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- GitHub Copilot优化方法
- 自定义指令
- 全局规范文件
- 路径特定规则
- 代理技能
- 质量检查流程
- 发布准备脚本
- MCP扩展
- CI/CD集成
- 数据库访问
金句 / Highlights
值得收藏与分享的关键句。
自定义指令让Copilot理解项目规范,避免生成不符合团队标准的代码
代理技能通过封装脚本和资源,提升Copilot在特定任务中的自动化能力
MCP服务器使Copilot能访问CI/CD工具和数据库,扩展其功能边界
在使用 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 技能,并遵循项目已建立的测试和代码检查流程,而不是猜测应运行哪些命令。
为更广泛、专业的任务使用自定义代理
某些任务的范围超出单一操作的范畴。例如,可访问性审查可能需要 Copilot 检查多个文件中的组件、模板、样式和交互。
自定义代理 可帮助您为这类工作创建专用版本的 Copilot。仓库级别的代理配置文件存储在 .github/agents 中,可以定义代理的目标、指令、工具和相关项目上下文。
当某种重复性工作能从专用角色或视角中受益时,尤其是任务可能涉及多个文件并需要使用多种工具或上下文来源时,请使用自定义代理。
通过 MCP 服务器将 Copilot 连接到外部工具
指令、技能和代理帮助 Copilot 理解如何在您的项目中工作。MCP 服务器则扩展了其访问范围和功能,使其超越仓库的限制。
MCP 服务器 可将 Copilot 连接到外部工具、数据源和服务。文档服务器可以为其提供框架指南,而像 Playwright 这样的服务器则允许其在浏览器中打开并操作您的应用程序。
您可以在 Copilot 应用中浏览可用的 MCP 服务器或添加自定义服务器。配置好 Playwright 后,您可以发出指令:使用 Playwright MCP 服务器手动测试功能。
此时 Copilot 可通过 Playwright 在浏览器中打开应用程序并与其交互,就像您自己操作一样。这使其不仅能验证代码是否通过自动化检查,还能确认更新后的界面行为是否符合预期。
选择合适的自定义类型
这些自定义方案解决不同的问题,但它们的效用会随着组合使用而增强:
- 自定义指令 定义 Copilot 在整个仓库或特定文件中应遵循的规范。
- 代理技能 将可重复的操作封装为 Copilot 在相关场景下可加载的模块。
- 自定义代理 为更广泛的任务提供专注的专业知识和指导。
- MCP 服务器 连接 Copilot 到外部工具、服务和数据源,扩展其功能边界。
请记住这些要点
为 Copilot 提供有用的项目上下文始于四个问题:
- 我需要反复解释的项目规范是什么?
- 我需要重复执行的多步骤流程是什么?
- 哪些复杂任务可以从专用的自定义代理中受益?
- Copilot 需要访问哪些外部工具或数据源?
不确定从哪里开始?社区已通过 Awesome Copilot 共享了现成的指令、技能、代理等资源。找到一个能解决您已重复执行的工作流的方案,查看其内容,然后根据您仓库的工具和标准进行调整。
从小处着手:选择一个您经常需要解释的规范,将其添加到 .github/copilot-instructions.md,然后观察 Copilot 如何将其应用到下一个任务中。
- * *
标签:
作者
GitHub 高级开发者倡导者
相关文章
[秘密保护必须与软件同步扩展](https://github.blog/ai-and-ml/github-copilot/secret-protection-must-scale-with-software/)
开发者并非变得越来越粗心;而是被技术发展所超越。能够让开发者构建更多软件的工具,也应当承担起更多保护软件的责任。
了解更多 GitHub 内容
文档
汇聚所有你需要掌握 GitHub 的资源,一应俱全。
GitHub
在 GitHub 上构建未来,这里是任何人都能从任何地方构建任何事物的地方。
客户案例
了解使用 GitHub 构建产品的公司和工程团队。
GitHub Universe 2026
10月28-29日,加入我们在旧金山或在线举办的 GitHub Universe,这是我们的旗舰开发者大会,汇聚全球开发者、代理和代码。