Skip to main content

为 GitHub Copilot 添加存储库自定义说明

可以在存储库中创建一个文件,自动向询问 Copilot Chat 的所有问题中添加信息。

Note

此功能目前为 公共预览版,可能会更改。

Visual Studio、VS Code 和 GitHub 网站上的 Copilot Chat 目前支持自定义说明。

本文的此版本适用于在 GitHub 上使用存储库自定义说明。 单击上面的选项卡,获取有关在其他环境中使用自定义说明的信息。

Note

Visual Studio、VS Code 和 GitHub 网站上的 Copilot Chat 目前支持自定义说明。

本文的此版本适用于在 VS Code 中使用存储库自定义说明。 单击上面的选项卡,获取有关在其他环境中使用自定义说明的说明。

Note

此功能目前为 公共预览版,可能会更改。

Visual Studio、VS Code 和 GitHub 网站上的 Copilot Chat 目前支持自定义说明。

本文的此版本适用于在 Visual Studio 中使用存储库自定义说明。 单击上面的选项卡,获取有关在其他环境中使用自定义说明的说明。

关于 GitHub Copilot Chat

的存储库自定义说明

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

此外,还可以创建提示文件。 通过使用提示文件,你可以在 Markdown 文件 (*.prompt.md) 中指定常见的提示说明和相关上下文,然后可以在聊天提示中重复使用。 提示文件仅在 VS Code 中可用。

还可以创建个人自定义说明,这些说明适用于你以用户身份跨 GitHub 与 Copilot Chat 进行的对话。 这不同于存储库自定义说明,这些说明适用于单个存储库上下文中的对话。 有关个人说明的详细信息,请参阅 为 GitHub Copilot 添加个人自定义说明

先决条件

  • 自定义说明文件(请参阅以下说明)。
  • 关于是否要使用自定义说明的个人选择必须设置为“已启用”。 此项已默认启用。 请参阅本文后面的启用或禁用存储库自定义说明
  • 在 公共预览版 期间,如果你具有 Copilot Business 订阅,则你从其接收订阅的组织必须已启用“Opt in to preview features”设置。**** 请参阅“管理组织中的 Copilot 策略”。

创建存储库自定义说明文件

  1. 在存储库的根目录中,创建名为 .github/copilot-instructions.md 的文件。

    如果尚无 .github 目录,则创建该目录。

  2. 以 Markdown 格式在该文件中添加自然语言说明。

    系统会忽略说明信息间的空格,因此可将信息编写为一个段落,每个段落位于一行上,或用空白行分隔,以保持其可读性。

示例说明

.github/copilot-instructions.md 文件示例包含三条说明,这些说明将添加到所有聊天问题中。

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.

编写有效的存储库自定义说明

添加到 .github/copilot-instructions.md 文件的说明应为简短的自包含语句,这些语句包含可补充用户聊天问题的上下文或相关信息。

以下类型的说明不太可能起到预期的作用,并可能导致 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.

使用中的存储库自定义说明

保存文件后,.github/copilot-instructions.md 文件中的说明便可即刻供 Copilot Chat 使用。 完整的说明集将自动添加到与包含说明文件的存储库相关的聊天提示中。

在 Copilot Chat 的沉浸式试图 (github.com/copilot) 中,可以通过添加包含说明文件的存储库作为附件来启动使用自定义说明的对话。

每当 Copilot Chat 使用自定义指令时,指令文件都将作为生成的响应的引用进行添加。 要查看是否使用了自定义指令,请展开“Chat”面板中聊天响应顶部的引用列表,检查是否列出了 .github/copilot-instructions.md 文件。

展开的引用列表的屏幕截图,其中“copilot-instructions.md”文件突出显示且带有深橙色边框。

可以单击引用信息来打开该文件。

Note

个人自定义说明优先于存储库自定义说明,但提供给 Copilot Chat 的最终提示中同时包含了两者。 尽可能避免提供相互冲突的个人说明和存储库说明。 请参阅 为 GitHub Copilot 添加个人自定义说明

保存文件后,.github/copilot-instructions.md 文件中的说明便可即刻供 Copilot Chat 使用。 系统会自动将完整说明集附加到在 Copilot Chat 视图或内联聊天中提交的请求中。

自定义说明在“聊天”视图或内联聊天中不可见,但可以通过查看“聊天”视图中的回复引用列表来验证 Copilot 是否正在使用这些说明。 如果将自定义说明添加到发送到模型的提示中,引用信息中会列出文件 .github/copilot-instructions.md。 可以单击引用信息来打开该文件。

展开的“References”列表的屏幕截图,其中用深橙色边框突出显示了“copilot-instructions.md”文件。

保存文件后,.github/copilot-instructions.md 文件中的说明便可即刻供 Copilot Chat 使用。 系统会自动将完整说明集附加到在 Copilot Chat 视图或内联聊天中提交的请求中。

自定义说明在“聊天”视图或内联聊天中不可见,但可以通过查看“聊天”视图中的回复引用列表来验证 Copilot 是否正在使用这些说明。 如果将自定义说明添加到发送到模型的提示中,引用信息中会列出文件 .github/copilot-instructions.md。 可以单击引用信息来打开该文件。

“References”弹出窗口的屏幕截图,其中用深橙色边框突出显示了“copilot-instructions.md”文件。

启用或禁用存储库自定义说明

可以选择是否要将自定义说明添加到聊天问题。

  1. 单击“Chat”面板顶部或沉浸式页面右上角的 按钮。

  2. 单击“Disable custom instructions”或“Enable custom instructions”。********

    Note

    在沉浸式模式下,只有当附加了包含自定义说明文件的仓库时,才会看到这些选项。

你的选择将一直保留,直到你更改它。

  1. 使用键盘快捷方式 Command+, (Mac)/Ctrl+, (Linux/Windows) 打开“设置编辑器”。
  2. 在搜索框中键入 instruction file
  3. 选中或清除“代码生成: 使用说明文件”**** 下的复选框。
  1. 在 Visual Studio 菜单栏中的“工具”下,单击“选项” 。

    Visual Studio 菜单栏的屏幕截图。 “工具”菜单已展开,“选项”项以橙色边框突出显示。

  2. 在“Options”对话框的搜索框中键入 custom instructions,然后单击“Copilot”****。

  3. 选中或清除复选框“(预览)允许加载 .github/copilot-instructions.md 文件中的自定义说明并将其添加到请求中”****。

关于提示文件

Note

提示文件为公共预览版,可能会更改。

通过提示文件,你可以使用额外的上下文生成和共享可重用的提示说明。 提示文件是 Markdown 文件,它模仿 Copilot Chat 中编写提示的现有格式(例如,Rewrite #file:x.ts)。 这允许混合自然语言说明、额外的上下文,甚至链接到其他提示文件作为依赖项。

虽然自定义说明有助于将代码库范围的上下文添加到每个 AI 工作流,但提示文件则使你能够向特定聊天交互添加说明。

常见用例包括:

  • 代码生成。 为组件、测试或迁移创建可重用的提示(例如 React 窗体或 API 模拟)。
  • 领域专业知识。 通过提示共享专业知识,例如安全做法或合规性检查。
  • 团队协作。 记录模式和指南,并参考规范和文档。
  • 新手培训。 为复杂的流程或特定于项目的模式创建分步指南。

提示文件示例

以下示例演示了如何使用提示文件。

  • react-form.prompt.md - 记录用于生成窗体的可重用任务。

    Your goal is to generate a new React form component.
    
    Ask for the form name and fields if not provided.
    
    Requirements for the form:
    - Use form design system components: [design-system/Form.md](../docs/design-system/Form.md)
    - Use `react-hook-form` for form state management:
      - Always define TypeScript types for your form data
      - Prefer *uncontrolled* components using register
      - Use `defaultValues` to prevent unnecessary rerenders
    - Use `yup` for validation:
      - Create reusable validation schemas in separate files
      - Use TypeScript types to ensure type safety
      - Customize UX-friendly validation rules
    
  • security-api.prompt.md - 记录 REST API 的可重用安全做法,可用于对 REST API 进行安全评审。

    Secure REST API review:
    - Ensure all endpoints are protected by authentication and authorization
    - Validate all user inputs and sanitize data
    - Implement rate limiting and throttling
    - Implement logging and monitoring for security events
    …
    

使用提示文件

若要启用提示文件,请配置 chat.promptFiles VS Code 设置。 将其设置为 true 或使用 { "/path/to/folder": boolean } 表示法来指定其他路径。 相对路径是从工作区的根文件夹解析的,如果未提供其他路径,则会使用默认值 .github/prompts。 有关更详细的说明,请参阅 Visual Studio Code 文档中的 VS Code 中的 GitHub Copilot 设置参考

  1. 在工作区的 .github/prompts 目录中创建 .prompt.md 文件。

  2. 使用 Markdown 格式编写提示说明。

    以 Markdown 链接 ([index](../index.ts)) 或提示文件中的 #file:../index.ts 引用的形式引用额外的工作区文件。 还可以引用其他 .prompt.md 文件。

  3. 选择附加图标,然后选择“Prompt...”并选择提示文件以在 Copilot Chat 或 Copilot Edits 中附加它。****

  4. (可选)附加任务所需的额外上下文文件。

  5. 发送聊天提示。

    • 对于可重用的任务,请发送提示,而无需任何其他说明。
    • 包括额外的说明,以便为正在处理的任务提供更多上下文。

Tip

通过使用 Markdown 链接引用额外的上下文文件(例如 API 规范或文档),从而向 Copilot 提供更完整的信息。