如何配置vscode copilot项目提示词 how to config vscode copilot project instruction prompt

笔记

省流:直接在.github/copilot-instructions.md里写提示词就好,比如

## 项目特定约定
- 文档与注释统一为**中文**,新增内容请保持一致

正文

以下中文为机翻,原文见

自定义指令使您能够定义通用的指南和规则,这些规则会自动影响 AI 生成代码和其他开发任务的方式。您无需在每个聊天提示中手动添加上下文,而是可以通过 Markdown 文件指定自定义指令,以确保 AI 响应与您的编码实践和项目需求保持一致。

您可以配置自定义指令,使其自动应用于所有聊天请求或仅特定文件。或者,您可以手动将自定义指令附加到特定的聊天提示上。

注意

在编辑器中输入时,自定义指令不会被考虑用于内联建议。

指令文件类型

VS Code 支持多种基于 Markdown 的指令文件类型。如果你的项目中有多种类型的指令文件,VS Code 会将它们合并并添加到聊天上下文中,但不保证特定的顺序。

  • 一个 .github/copilot-instructions.md 文件
    • 自动应用于工作区中的所有聊天请求
    • 存储在工作区中
  • 一个或多个 .instructions.md 文件
    • 根据文件类型或位置使用 glob 模式有条件地应用指令
    • 存储在工作区或用户配置文件中
  • 一个或多个 AGENTS.md 文件
    • 如果您在工作区中使用多个 AI 代理,这会很有用
    • 自动应用于工作区中的所有聊天请求或特定子文件夹(实验性功能)
    • 存储在工作区根目录或子文件夹中(实验性功能)

指令之间的空格会被忽略,因此可以将指令写成一个段落,每行一个,或用空行分隔以提高可读性。

若要在指令中引用特定上下文,例如文件或网址,可以使用 Markdown 链接。

自定义指令示例

以下示例演示了如何使用自定义指令。如需更多社区贡献的示例,请参阅 Awesome Copilot 仓库。

示例:通用编码规范

Markdown

---
applyTo: "**"
---
# Project general coding standards

## Naming Conventions
- Use PascalCase for component names, interfaces, and type aliases
- Use camelCase for variables, functions, and methods
- Prefix private class members with underscore (_)
- Use ALL_CAPS for constants

## Error Handling
- Use try/catch blocks for async operations
- Implement proper error boundaries in React components
- Always log errors with contextual information

示例:语言特定的编码规范

Notice how these instructions reference the general coding guidelines file. You can separate the instructions into multiple files to keep them organized and focused on specific topics.

Markdown

---
applyTo: "**/*.ts,**/*.tsx"
---
# Project coding standards for TypeScript and React

Apply the [general coding guidelines](./general-coding.instructions.md) to all code.

## TypeScript Guidelines
- Use TypeScript for all new code
- Follow functional programming principles where possible
- Use interfaces for data structures and type definitions
- Prefer immutable data (const, readonly)
- Use optional chaining (?.) and nullish coalescing (??) operators

## React Guidelines
- Use functional components with hooks
- Follow the React hooks rules (no conditional hooks)
- Use React.FC type for components with children
- Keep components small and focused
- Use CSS modules for component styling

示例:文档编写指南

You can create instructions files for different types of tasks, including non-development activities like writing documentation.

Markdown

---
applyTo: "docs/**/*.md"
---
# Project documentation writing guidelines

## General Guidelines
- Write clear and concise documentation.
- Use consistent terminology and style.
- Include code examples where applicable.

## Grammar
* Use present tense verbs (is, open) instead of past tense (was, opened).
* Write factual statements and direct commands. Avoid hypotheticals like "could" or "would".
* Use active voice where the subject performs the action.
* Write in second person (you) to speak directly to readers.

## Markdown Guidelines
- Use headings to organize content.
- Use bullet points for lists.
- Include links to related resources.
- Use code blocks for code snippets.

使用 .github/copilot-instructions.md 文件

在工作区根目录下定义一个 .github/copilot-instructions.md Markdown 文件来存储自定义指令。VS Code 会自动将此文件中的指令应用到工作区内的所有聊天请求中。

使用 .github/copilot-instructions.md 文件的方法:

  1. 启用 github.copilot.chat.codeGeneration.useInstructionFiles 设置。
  2. 在你的工作区根目录下创建一个 .github/copilot-instructions.md 文件。如果需要,先创建一个 .github 目录。
  3. 使用自然语言和 Markdown 格式描述你的指令。

注意

GitHub Copilot 在 Visual Studio 和 GitHub.com 中也会检测 .github/copilot-instructions.md 文件。如果你有一个在 VS Code 和 Visual Studio 中都使用的工作区,你可以使用同一个文件来为两个编辑器定义自定义指令。

使用 .instructions.md 文件

与其使用一个适用于所有聊天请求的指令文件,您可以创建多个 .instructions.md 文件,这些文件适用于特定的文件类型或任务。例如,您可以为不同的编程语言、框架或项目类型创建指令文件。

通过在指令文件的头部使用 applyTo 前置字段属性,您可以指定一个 glob 模式,以自动定义这些指令应应用于哪些文件。指令文件在创建或修改文件时使用,通常不会用于读取操作。

或者,您可以通过聊天视图中的“添加上下文 > 指令”选项,手动将指令文件附加到特定的聊天提示上。

  • 工作区指令文件:仅在工作区内部可用,并存储在工作区的 .github/instructions 文件夹中。
  • 用户指令文件:可在多个工作区中使用,并存储在当前 VS Code 配置文件中。

指令文件格式

指令文件是 Markdown 文件,使用 .instructions.md 扩展,并具有以下结构:

标题(可选)

标题是使用 YAML frontmatter 格式化的,包含以下字段:

展开表格

字段 描述
description 对指令文件的简要描述。
name 指令文件的名称,用于用户界面。如果未指定,则使用文件名。
applyTo 可选的 glob 模式,用于定义指令应自动应用于哪些文件,相对于工作区根目录。使用 ** 可应用于所有文件。如果未指定值,则指令不会自动应用 - 你仍然可以手动将它们添加到聊天请求中。

正文

指令文件正文包含在应用指令时发送给 LLM 的自定义指令。提供您希望 AI 遵循的具体指南、规则或其他相关信息。

要在正文文本中引用代理工具,请使用 #tool:<tool-name> 语法。例如,要引用 githubRepo 工具,请使用 #tool:githubRepo

示例:

Markdown

---
applyTo: "**/*.py"
---
# Project coding standards for Python
- Follow the PEP 8 style guide for Python.
- Always prioritize readability and clarity.
- Write clear and concise comments for each function.
- Ensure functions have descriptive names and include type hints.
- Maintain proper indentation (use 4 spaces for each level of indentation).

创建指令文件

当你创建一个指令文件时,选择将其存储在你的工作区还是用户配置文件中。工作区指令文件仅适用于该工作区,而用户指令文件可在多个工作区中使用。

创建指令文件的方法如下:

  1. 在聊天视图中,选择“配置聊天”(齿轮图标)> “聊天指令”,然后选择“新建指令文件”。或者,使用命令面板中的“Chat: 新建指令文件”命令(⇧⌘P)。
  2. 选择创建指令文件的位置。
  • 工作区:在你的工作区的 .github/instructions 文件夹中创建指令文件,以便仅在该工作区中使用。通过设置 chat.instructionsFilesLocations 可以为工作区添加更多指令文件夹。
  • 用户配置文件:在当前配置文件文件夹中创建指令文件,以便在所有工作区中使用。
  1. 输入一个文件名用于您的指令文件。这是在用户界面中使用的默认名称。
  2. 使用 Markdown 格式编写自定义指令。
  • 在文件顶部填写 YAML 前置信息,以配置指令的描述、名称以及适用条件。
  • 在文件正文部分添加指令。

要修改现有的指令文件,在聊天视图中选择“配置聊天”(齿轮图标)>“聊天指令”,然后从列表中选择一个指令文件。或者,使用命令面板(⇧⌘P)中的“聊天: 配置指令”命令,并从快速选择中选择指令文件。

使用 AGENTS.md 文件

如果您在工作区中使用多个 AI 代理,可以在工作区根目录下使用 AGENTS.md Markdown 文件定义所有代理的自定义指令。VS Code 会自动将此文件中的指令应用于工作区内的所有聊天请求。

要启用或禁用 AGENTS.md 文件的支持,请配置 chat.useAgentsMdFile 设置。

使用多个 AGENTS.md 文件(实验性功能)

在子文件夹中使用多个 AGENTS.md 文件很有用,如果你想对项目的不同部分应用不同的指令。例如,你可以为前端代码使用一个 AGENTS.md 文件,为后端代码使用另一个。

使用实验性设置 chat.useNestedAgentsMdFiles 启用或禁用工作区中嵌套的 AGENTS.md 文件的支持。

启用此设置后,VS Code 会在工作区的所有子文件夹中递归搜索 AGENTS.md 文件,并将它们的相对路径添加到聊天上下文中。然后代理可以根据正在编辑的文件决定使用哪些指令。

提示

对于特定文件夹的指令,您也可以使用多个 .instructions.md 文件,并使用不同的 applyTo 模式匹配文件夹结构。

在设置中指定自定义指令

你可以通过使用 VS Code 用户或工作区设置来配置自定义指令,以满足特定场景的需求。

展开表格

** codeGenerationtestGeneration 设置自 VS Code 1.102 起已弃用。我们建议您改用指令文件 ( .github/copilot-instructions.md*.instructions.md )。*

您可以在设置值 ( text 属性) 中以文本形式定义自定义指令,或在工作区中引用外部文件 ( file 属性)。

以下代码片段展示了如何在 settings.json 文件中定义一组指令。

JSON

{
  "github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
    { "text": "Always include a list of key changes." }
  ],
  "github.copilot.chat.reviewSelection.instructions": [
    { "file": "guidance/backend-review-guidelines.md" },
    { "file": "guidance/frontend-review-guidelines.md" }
  ]
}

为您的工作区生成一个指令文件

VS Code 可以分析你的工作区,并生成一个与你的编码规范和项目结构相匹配的 .github/copilot-instructions.md 文件,其中包含自定义指令。

为您的工作区生成一个指令文件:

  1. 在聊天视图中,选择“配置聊天”(齿轮图标)> “生成聊天指令”。
  2. 查看生成的指令文件并进行必要的编辑。

在设备间同步用户指令文件

VS Code 可以通过使用设置同步功能在多个设备上同步您的用户指令文件。

要同步您的用户指令文件,请启用设置同步以包含提示和指令文件:

  1. 请确保已启用设置同步。
  2. 运行设置同步:通过命令面板(⇧⌘P)进行配置。
  3. 选择“提示和指令”从设置列表中进行同步。

定义自定义指令的技巧

  • 请保持指令简短且独立完整。每条指令应是一个单一、简单的语句。如果需要提供多个信息点,请使用多条指令。
  • 对于任务或语言特定的指令,可以使用多个 *.instructions.md 文件针对每个主题,并通过使用 applyTo 属性选择性地应用它们。
  • 在你的工作区中存储项目特定的指令,以便与团队成员共享并将其包含在版本控制中。
  • 在你的提示文件和自定义代理中重用和引用指令文件,以保持其整洁和专注,并避免重复指令。

相关资源