关于自定义 Copilot 响应
GitHub Copilot 可以提供根据你的偏好、团队的工作方式、你使用的工具以及项目的具体细节做出的响应。 可以创建自定义说明,以便自动向 Copilot 提供此信息,从而让它生成更高质量的响应,而不是在提示词中反复加入相同的上下文。
提示文件提供另一种方法来提供 Copilot 特定于任务的指令和上下文。 与你的自定义说明不同,你可以选择何时在聊天中使用它们。 有关详细信息,请参阅“GitHub Copilot 的提示文件”。
可用的自定义指令类型以及Copilot使用这些指令的功能因客户端和界面(GitHub.com、Visual Studio Code、Visual Studio、JetBrains IDEs、Xcode 和 Eclipse)而异。 若要检查环境支持的类型,请参阅 支持不同类型的自定义说明。 有关支持的 IDE 和版本,请参阅 Copilot特征矩阵。
注意
由于 AI 的非确定性性质,Copilot 在执行您的自定义指令时可能无法每次都以完全相同的方式操作。
自定义说明的类型
自定义说明可在不同级别应用:
| 类型 | Scope | 示例用法 |
|---|---|---|
| 个人说明 | 你与 Copilot 的对话 | 指定个人偏好,例如首选语言或响应样式。 |
| 存储库自定义说明 | 在存储库、项目、路径或受支持的代理上下文中与Copilot进行的会话 | 描述项目中使用的语言、框架、工具、体系结构和编码约定。 |
| 组织自定义说明 | 在组织上下文中使用时与 Copilot 的对话 | 提供组织范围的语言、安全、合规性或响应准则。 |
某些客户端(JetBrains IDEs 和 Xcode)提供额外的全局、工作区或项目指令机制。 这些机制并不总是直接映射到GitHub中的个人、存储库和组织说明。
关于个人指示
在 GitHub.com 上配置的个人说明适用于 GitHub Copilot Chat in GitHub。 其他客户端(例如 Copilot CLI)使用本地文件存储个人说明。 请参阅“为 GitHub Copilot CLI 添加自定义说明”。
可以通过添加个人说明来自定义 Copilot Chat 在 GitHub.com 上如何响应你。 这些说明仅适用于你。 例如,可以指定首选语言、所需的详细信息级别,或希望如何构造响应。 请参阅“为 GitHub Copilot 添加个人自定义说明”。
关于存储库自定义指令
存储库自定义说明提供特定于项目的上下文和指南。 例如,可以描述存储库的目的、其使用的框架和工具,以及参与者应遵循的编码或测试约定。
存储库自定义指令有三种主要类型:
-
全仓库内的自定义指令,适用于在仓库上下文中发出的所有请求****。
这些是在仓库的
copilot-instructions.md目录中的.github文件中指定的。 -
特定于路径的自定义指令,适用于在匹配指定路径的文件上下文中发出的请求****。
在存储库中
.github/instructions目录中或其下的一个或多个NAME.instructions.md文件中指定这些内容。通过使用特定于路径的指令,可以避免使用仅适用于特定类型的文件或特定目录中的信息重载全仓库内的指令。
-
代理说明类似于适用于整个存储库的自定义指令,但目前不受所有 Copilot 功能的支持。
这些在名为
AGENTS.md、CLAUDE.md或GEMINI.md的文件中指定。
有关跨不同 Copilot 功能对这些类型的存储库自定义指令的支持的详细信息,请参阅 支持不同类型的自定义说明。
有关精选的示例集合,请参阅 自定义说明。
请注意,代理指令文件(例如 AGENTS.md)向支持的 AI 代理提供说明。 它们不同于存储在 .github/agents 中的自定义代理定义文件,这些文件定义了专用代理及其配置。 有关 Copilot 可识别的代理指令文件名,请参阅 支持不同类型的自定义说明。
跨客户端和界面的存储库自定义说明
可以使用哪种类型的存储库自定义说明(存储库范围、特定于路径或代理说明)取决于环境和任务,例如聊天、在云中工作或查看拉取请求。 例如,环境可能支持某一任务的路径特定说明,而不支持另一任务的。 若要检查对您的配置的支持,请参阅 支持不同类型的自定义说明。 有关支持的 IDE 和版本,请参阅 Copilot特征矩阵。
关于自定义组织说明
注意
支持: 目前支持在 GitHub 网站(在云沙盒中或在 Copilot code review 上)运行的会话使用组织自定义说明,以及用于 GitHub Actions。 本地客户端会话不支持它们。
组织所有者可以添加说明,使 Copilot 可根据其组织的需求和偏好进行定制。 这些说明适用于组织的所有成员,无论他们是否从该组织获得其 Copilot 订阅。
只能为具有 Copilot Business 或 Copilot Enterprise 订阅的组织配置组织自定义说明。
例如,组织说明可以:
- 指定应在响应中使用的语言。
- 提供组织范围内的安全或合规性指南。
- 指定首选响应格式,例如不生成代码块。
- 将用户定向到特定主题的内部知识库或支持渠道。
有关添加组织说明的信息,请参阅 为 GitHub Copilot 添加组织自定义指令。
自定义指令的优先级
优先级取决于客户端和功能。 大多数界面和客户端(包括Copilot CLIVisual Studio Code和Visual Studio)合并适用的指令文件,而无需定义一般优先顺序。
对于 Copilot Chat 上的 GitHub.com,将向 Copilot 提供所有相关说明。 优先级顺序(从最高到最低)为:
- 个人说明
- 存储库自定义指令:
- 任何适用**** 文件中的
.github/instructions/**/*.instructions.md - 存储库范围内的说明 在
.github/copilot-instructions.md - 代理说明,例如
AGENTS.md文件中的说明
- 任何适用**** 文件中的
- 组织自定义说明
尽可能避免提供冲突的指令集。 如果担心响应质量,可以暂时禁用存储库说明。 请参阅“为GitHub Copilot添加存储库自定义说明”。
添加自定义指令
自定义指令由自然语言指令组成,在后者是简短的自包含语句时最有效。 在决定是否在个人、存储库或组织级别添加指令之前,请考虑其应用范围。
常见用例包括:
- 响应首选项。 指定首选语言、响应结构、语调或解释级别。
- 项目上下文。 说明存储库的用途、体系结构或域。
- 语言和框架。 标识项目使用的语言、库、框架和版本。
- 编码和测试约定。 描述命名、格式设置、测试、错误处理或文档标准。
- 审查和安全指南。 确定在对受支持的功能进行评审或更改代码时应特别关注的问题。
- 组织要求。 提供组织范围的语言、安全、合规性或支持指导。
例如:
- 个人说明:
Always respond in Portuguese. - 个人说明:
Explain a single concept per line. Be clear and concise. - 存储库说明:
Use Vue with the PrimeVue library. - 存储库说明:
Use early returns whenever possible. - 组织说明:
For questions related to security, use the Security Docs Knowledge Base. - 组织说明:
Do not generate code blocks in responses.
有关测试、提交消息或代码评审的说明可以提供有用的上下文。 但是,Copilot 使用特定指令的功能因客户端和界面而异,自定义说明不保证生成的内容符合策略。
注意
审查拉取请求时,Copilot 会从头部分支(包含更改的分支)而不是基础分支读取存储库自定义说明、智能体说明和智能体技能。 例如,在将 my-feature-branch 合并到 main 时,Copilot 会使用 my-feature-branch 中的说明和技能,因此您可以在同一个拉取请求中测试对它们的更改,而无需先将它们合并。
编写有效的自定义说明
你添加到自定义指令文件中的指令应当是简短、完整独立的表述,并向 Copilot 提供相关信息,以帮助它更好地在此仓库中工作。 由于这些说明随每个聊天消息一起发送,因此它们应广泛适用于你将在存储库上下文中发出的大多数请求。
用于说明文件的确切结构因项目和需求而异,但以下准则提供了一个很好的起点:
- 提供正在处理的项目的概述,包括其用途、目标和任何相关的背景信息。
- 指定应遵循的编码标准和约定,例如命名约定、格式规则和最佳做法。
- 包括项目中使用的任何特定工具、库或框架,以及任何相关的版本号或配置。
以下说明文件是这些实践生效的一个示例:
# Project Overview
This project is a web application that allows users to manage their tasks and to-do lists. It is built using React and Node.js, and uses MongoDB for data storage.
## Libraries and Frameworks
- React and Tailwind CSS for the frontend.
- Node.js and Express for the backend.
- MongoDB for data storage.
## Coding Standards
- Use semicolons at the end of each statement.
- Use single quotes for strings.
- Use function based components in React.
- Use arrow functions for callbacks.
## UI guidelines
- A toggle is provided to switch between light and dark mode.
- Application should have a modern and clean design.
你还应考虑仓库的大小和复杂度。 以下类型的指令仅适用于只有少数参与者的小型存储库,但对于大型和多样化的存储库,这可能会导致问题****:
- 要求在提供的回答中引用外部资源
- 有关按特定风格回答的说明
- 要求始终以某一详细程度作答
例如,以下指令可能无法获得预期结果****:
Always conform to the coding styles defined in styleguide.md in repo my-org/my-repo when generating code.
Use @terminal when answering questions about Git.
Answer all questions in the style of a friendly colleague, using informal language.
Answer all questions in less than 1000 characters, and words of no more than 12 characters.
后续步骤
- 为 GitHub Copilot 添加个人自定义说明
- 为GitHub Copilot添加存储库自定义说明
- 在 IDE 中添加 GitHub Copilot 的存储库自定义说明
- 为 GitHub Copilot 添加组织自定义指令