Skip to main content

关于自定义 GitHub Copilot 聊天助手响应

了解如何根据个人偏好和需求自定义 GitHub Copilot 的行为。

注意

本文的此版本关于 GitHub 网站上的自定义指令。 对其他环境单击上述选项卡。

关于自定义 GitHub Copilot Chat 响应

GitHub Copilot 可基于你的个人偏好设置、你团队的工作方式、你使用的工具或项目的具体情况(如果提供足够的上下文信息来满足此前提)提供量身定制的聊天响应。 无需重复将此上下文详细信息添加到聊天问题中,而是可以创建自动添加此信息的自定义指令。 聊天中不会显示这些附加信息,但这些信息可供 Copilot 使用以便其能够生成更优质的响应。

自定义指令的类型

  • “个人自定义指令”适用于你在 GitHub 网站上与 Copilot 对话助手 的所有对话****。 此类指令可用于指定个人偏好设置,例如首选语言或响应样式,确保根据个人需求定制响应。
  • “存储库自定义指令”适用于特定存储库上下文中的对话****。 此类指令可用于定义特定于项目的编码标准、框架或工具。 例如,可以指定存储库使用 TypeScript 和特定库,确保所有参与者的响应一致。
  • “组织自定义指令(公共预览版)”适用于 GitHub 网站上的组织上下文中的对话****。 此类指令非常适合强制实施组织范围的偏好设置,例如公共语言或安全准则。 只有拥有 Copilot Enterprise 订阅的组织的组织所有者才能设置组织自定义指令。

关于存储库自定义指令

存储库自定义指令由你在存储库中创建的单个文件 .github/copilot-instructions.md 组成。

存储库自定义说明文件用于聊天响应、代码评审,还可供 Copilot 使用(当你将它分配给议题或要求它创建拉取请求时)。 此文件中包含的说明可帮助 Copilot 以匹配团队的工作实践且符合项目编码标准的方式来处理文件。 请参阅“关于 Copilot 编码代理”。

.github/copilot-instructions.md 文件示例包含三条针对 Copilot 的指令。

We use Bazel for managing our Java dependencies, not Maven, so when talking about Java packages, always give me instructions and code samples that use Bazel.

We always write JavaScript with double quotes and tabs for indentation, so when your responses include JavaScript code, please follow those conventions.

Our team uses Jira for tracking items of work.

有关用于配置 Copilot 代码评审 的自定义指令示例,请参阅 使用 GitHub Copilot 代码评审

添加自定义指令

自定义指令由自然语言指令组成,在后者是简短的自包含语句时最有效。 在选择是向个人、存储库还是(如果可用)组织级别添加指令时,请考虑所需的指令适用范围。

注意

  • 可以向聊天应用多种类型的自定义指令。 个人指令具有最高优先级,存储库指令其次,组织指令的优先级最低。 但是,所有相关指令集仍将被合并并提供给 Copilot 对话助手。
  • 请尽可能避免提供冲突的指令集。 如果顾虑响应质量,也可以选择暂时禁用存储库说明。 请参阅“为 GitHub Copilot 添加存储库自定义说明”。

下面是每种自定义指令类型的一些常见用例和示例:

  • 个人自定义指令:
    • 首选单个语言: Always respond in Portuguese.
    • 单个响应首选项:Explain a single concept per line. Be clear and concise.
  • 存储库自定义指令:
    • 编码标准:Use early returns whenever possible.
    • 框架:Use Vue with the PrimeVue library.Use Typescript rather than Javascript.
    • 代码样式首选项:Use camel case for variable names.
  • 组织自定义指令:
    • 描述如何回答某些问题:For questions related to security, use the Security Docs Knowledge Base or advise people to consult with #security on Slack.
    • 仅使用一种语言的公司的首选语言:Always respond in Portuguese.
    • 组织范围的首选项:Do not generate code blocks in responses.

编写有效的自定义说明

所添加的说明理想情况下应是简短、独立的陈述,为 Copilot 提供相关信息以辅助其工作。

为存储库编写自定义说明时,还应考虑存储库的规模和复杂度。 以下类型的指令仅适用于只有少数参与者的小型存储库,但对于大型和多样化的存储库,这可能会导致问题****:

  • 要求在提供的回答中引用外部资源
  • 有关按特定风格回答的说明
  • 要求始终以特定详细级别的信息来回答

例如,以下指令可能无法获得预期结果****:

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.

后续步骤