{"meta":{"title":"为 GitHub Copilot CLI 添加自定义说明","intro":"提供 Copilot 有关如何理解你的项目以及如何构建、测试和验证其更改的额外背景信息。","product":"GitHub Copilot","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos","title":"操作方法"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli","title":"Copilot CLI"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot","title":"自定义 Copilot CLI"},{"href":"/zh/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions","title":"添加自定义说明"}],"documentType":"article"},"body":"# 为 GitHub Copilot CLI 添加自定义说明\n\n提供 Copilot 有关如何理解你的项目以及如何构建、测试和验证其更改的额外背景信息。\n\nGitHub Copilot 如果提供了足够的上下文，它可以根据个人偏好、团队的工作方式、你使用的工具或项目的具体信息来定制响应。 可以创建自定义说明，自动为你添加此信息，而不是重复将此上下文详细信息添加到提示中。 附加信息不会显示，但可供 Copilot 用于生成更高质量的响应。\n\n## 自定义说明的类型\n\nGitHub Copilot CLI 支持来自以下位置的指令。\n\n除非下表中另有说明，否则 Copilot CLI会在**标准位置**中查找存储库指令文件和代理指令文件：存储库根目录、当前工作目录、它们之间的各级中间目录，以及其正在处理的文件所在路径中的任何嵌套目录。 模块化指令文件（即与 `*.instructions.md` 匹配的那些文件）是路径特定的——带有 `applyTo` 值的文件仅适用于与之匹配的文件。\n\n| 位置                                                 | 范围和行为                                                                                       |\n| -------------------------------------------------- | ------------------------------------------------------------------------------------------- |\n| `$HOME/.copilot/copilot-instructions.md`           | 适用于所有存储库的用户级说明。                                                                             |\n| `$HOME/.copilot/instructions/**/*.instructions.md` | 模块化的面向用户说明。                                                                                 |\n| `.github/copilot-instructions.md`                  | 在标准位置中发现的存储库范围指令。                                                                           |\n| `.github/instructions/**/*.instructions.md`        | 在标准位置而非中间目录中发现的模块化存储库指令。                                                                    |\n| `AGENTS.md`                                        | 在标准位置中发现的智能体指令。 有关详细信息，请参阅 [agentsmd/agents.md 存储库](https://github.com/agentsmd/agents.md)。 |\n| `CLAUDE.md`                                        | 在标准位置中发现的智能体指令。                                                                             |\n| Copilot CLI 也使用 `.claude/CLAUDE.md`。               |                                                                                             |\n| `GEMINI.md`                                        | 在标准位置中发现的智能体指令。                                                                             |\n| 在 `COPILOT_CUSTOM_INSTRUCTIONS_DIRS` 中列出的目录        | 附加的 `AGENTS.md` 和 `*.instructions.md` 文件。 用逗号分隔多个目录。                                        |\n\n如果设置了 `COPILOT_HOME` 环境变量，Copilot CLI 将使用该目录而不是 `$HOME/.copilot` 作为两个用户级指令位置。\n\n使用 `/instructions` 命令可查看为当前会话发现的说明文件，并启用或禁用各个文件。\n\n## 多个指令文件如何交互\n\n当存在多个适用的用户级和仓库级指令文件时，Copilot CLI 会合并这些指令。 它删除相同的用户级别 `copilot-instructions.md`、存储库范围和代理指令的副本，但不定义这些文件之间的一般优先顺序。 避免矛盾的指令。\n\n仅当 `applyTo` 的值与 Copilot CLI 当前正在处理的文件匹配时，才会包含路径特定的指令。 使用 `/instructions` 禁用的指令文件不包括在内。\n\n## 创建全仓库内的自定义指令\n\n1. 在存储库的根目录中，创建名为 `.github/copilot-instructions.md` 的文件。\n\n   创建 `.github` 目录（如果尚不存在）。\n\n2. 以 Markdown 格式在该文件中添加自然语言说明。\n\n   系统会忽略说明信息间的空格，因此可将信息编写为一个段落，每个段落位于一行上，或用空白行分隔，以保持其可读性。\n\n   有关编写有效自定义说明的帮助，请参阅 [关于自定义GitHub Copilot 响应](/zh/enterprise-cloud@latest/copilot/concepts/prompting/response-customization#writing-effective-custom-instructions)。\n\n### 引用其他文件\n\n在 `.github/copilot-instructions.md`、`AGENTS.md` 或 `CLAUDE.md` 中，使用 `@` 后跟相对路径，以包含另一个文件。\nCopilot CLI 会立即读取被引用的文件，并支持被引用文件中的引用。\n\n引用的文件必须保留在存储库中，或在本地说明的自定义说明目录中。 绝对路径以及以 `~/` 开头的路径不会被加载。 文件引用不会在 `GEMINI.md` 或 `*.instructions.md` 文件中展开。\n\n## 创建路径特定的自定义指令\n\n1. 如果尚无 `.github/instructions` 目录，则创建该目录。\n\n2. （可选）创建用于组织指令文件的子目录 `.github/instructions` 。\n\n3. 创建一个或多个 `NAME.instructions.md` 文件，其中 `NAME` 指示指令的用途。 文件名必须以 `.instructions.md` 结尾。\n\n4. 在文件开头，创建包含 `applyTo` 关键字的前辅文块。 使用 glob 语法指定指令应用于的文件或目录。\n\n   例如：\n\n   ```markdown\n   ---\n   applyTo: \"app/models/**/*.rb\"\n   ---\n   ```\n\n   可以通过用逗号分隔多个模式来指定这些模式。 例如，若要将指令应用于仓库中的所有 TypeScript 文件，可以使用以下前辅文块：\n\n   ```markdown\n   ---\n   applyTo: \"**/*.ts,**/*.tsx\"\n   ---\n   ```\n\n   Glob 示例：\n\n   * `*` - 会匹配当前目录中的所有文件。\n   * `**` 或 `**/*` - 均会匹配所有目录中的所有文件。\n   * `*.py` - 将匹配当前目录中的所有 `.py` 文件。\n   * `**/*.py` - 将以递归方式匹配所有目录中的所有 `.py` 文件。\n   * `src/*.py` - 将匹配 `.py` 目录中所有 `src` 文件。 例如，`src/foo.py`和`src/bar.py`但\\_不\\_`src/foo/bar.py`。\n   * `src/**/*.py` - 将以递归方式匹配目录中的所有 `.py` 文件 `src` 。 例如 、 `src/foo.py``src/foo/bar.py`和 `src/foo/bar/baz.py`。\n   * ```\n               `**/subdir/**/*.py` - 将递归匹配任意深度下任意 `subdir` 目录中的所有 `.py` 文件。 例如，`subdir/foo.py`、`subdir/nested/bar.py`、`parent/subdir/baz.py` 和 `deep/parent/subdir/nested/qux.py`，但不匹配_不_`foo.py`包含 `subdir` 目录的路径。\n     ```\n\n5. 或者，为了防止文件被 Copilot cloud agent 或 Copilot code review 使用，将 `excludeAgent` 关键字添加到 frontmatter 区块中。 使用 `\"code-review\"` 或 `\"cloud-agent\"`。\n\n   例如，以下文件将仅由 Copilot cloud agent 读取。\n\n   ```markdown\n   ---\n   applyTo: \"**\"\n   excludeAgent: \"code-review\"\n   ---\n   ```\n\n   如果在 front matterblock 中不包括关键字 `excludeAgent`，则 Copilot code review 和 Copilot cloud agent 都将使用您的说明。\n\n6. 使用 Markdown 格式以自然语言添加自定义指令。 系统会忽略说明信息间的空格，因此可将信息编写为一个段落，每个段落位于一行上，或用空白行分隔，以保持其可读性。\n\n## 正在使用的自定义说明\n\n对自定义说明文件所做的更改不会立即可用于活动 CLI 会话。 若要应用更改，请退出当前会话，然后恢复它（例如运行 `copilot --continue`），或启动新会话（例如， `/new` 从交互式会话中使用）。\n\n## 延伸阅读\n\n* [支持不同类型的自定义说明](/zh/enterprise-cloud@latest/copilot/reference/custom-instructions-support)\n* [自定义说明](/zh/enterprise-cloud@latest/copilot/tutorials/customization-library/custom-instructions) — 精选的示例集合\n* [使用自定义指令来激发Copilot代码评审的强大功能](/zh/enterprise-cloud@latest/copilot/tutorials/customize-code-review)"}