技术速递|密钥保护必须跟上软件开发的步伐

学习如何为代码仓库添加自定义指令和技能、使用自定义智能体,以及连接 Playwright 等 MCP服务器。
在使用 AI 时,上下文至关重要。每个代码库都有自己的规范:组件如何组织、应该运行哪些脚本,以及不同框架和文件类型分别适用哪些约定。
Copilot 可以帮助你修改整个项目,但如果它也了解这些规范,工作效果会更好。这些知识中的大部分都可以存放在代码仓库中,让 Copilot 自动获取,而不必在每次开始新任务时,都重复向它解释相同的标准、脚本和工作流程。
在本期 GitHub Copilot App 入门指南 系列中,我们将介绍四种定制 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 服务器则能够扩展 Copilot 在代码仓库之外可以访问的资源和执行的操作。
MCP 服务器可以将 Copilot 连接到外部工具、数据源和服务。例如,文档服务器可以让它获取框架相关的指导文档,而 Playwright 这样的服务器则可以让它在浏览器中打开应用并与之交互。
你可以在 Copilot App 中浏览可用的 MCP 服务器,也可以添加自定义服务器。配置好 Playwright 后,你就可以向 Copilot 提出这样的要求:使用 Playwright MCP 服务器手动测试功能。
随后,Copilot 就可以借助 Playwright 在浏览器中打开应用,并像你一样与应用进行交互。这样,它不仅可以验证代码是否通过自动化检查,还能进一步确认更新后的界面是否符合预期。
选择合适的定制方式
这些定制方式解决的问题各不相同,但组合使用时,能够发挥更大的作用:
- 自定义指令:定义 Copilot 在整个仓库或特定文件中应遵循的规范。
- 智能体技能:封装可重复执行的流程,让 Copilot 在相关情况下加载使用。
- 自定义智能体:为更广泛的任务提供有针对性的专业能力和指导。
- MCP 服务器:将 Copilot 连接到外部工具、服务和数据源,扩展其能力。
总结与实践
为 Copilot 提供有用的项目上下文,可以从以下四个问题入手:
- 有哪些项目规范是我经常需要向 Copilot 反复解释的?
- 有哪些多步骤流程是我经常重复执行的?
- 哪些复杂任务适合交给专门定制的智能体处理?
- Copilot 需要使用哪些外部工具或数据源?
如果你还不确定从哪里开始,可以看看社区通过 Awesome Copilot分享的现成资源,包括指令、技能、智能体等。找到一个能够解决你日常重复工作问题的资源,检查其中的内容,并根据仓库使用的工具和规范进行调整。
从小处着手:选择一项你经常需要向 Copilot 解释的规范,将它添加到 .github/copilot-instructions.md 文件中,然后观察 Copilot 在下一个任务中如何应用这项规范。
本文来自博客园,作者:微软开发者社区,转载请注明原文链接:https://www.cnblogs.com/Microsoftdeveloper/p/23329432
浙公网安备 33010602011771号