GitHub Copilot 如果提供了足够的上下文,它可以根据个人偏好、团队的工作方式、你使用的工具或项目的具体信息来定制响应。 可以创建自定义说明,自动为你添加此信息,而不是重复将此上下文详细信息添加到提示中。 附加信息虽然不会显示,但可供Copilot使用,以便生成更高质量的响应。
自定义说明的类型
GitHub Copilot CLI 支持以下类型的自定义指令。
代码库范围的自定义指令
这些请求适用于存储库上下文中发出的所有请求。
这些在存储库根目录的 copilot-instructions.md 目录中的 .github 文件中指定。 请参阅创建全仓库内的自定义指令。
路径特定的自定义说明
这些适用于在与指定路径匹配的文件上下文中发出的请求。
这些文件在存储库根目录的 NAME.instructions.md 目录或当前工作目录中的 .github/instructions 目录中或以下的一个或多个 .github/instructions 文件中指定。 请参阅创建路径特定的自定义指令。
如果在这些说明中指定的路径与正在处理的文件 Copilot 匹配,并且还存在存储库范围的自定义指令文件,则使用这两个文件中的说明。 应避免指令之间的潜在冲突,因为 Copilot冲突指令之间的选择是不确定的。
智能体说明
各款 AI 智能体会使用这些指令。
可以创建一个或多个 AGENTS.md 文件。 这些目录可以位于存储库的根目录、当前工作目录或环境变量中 COPILOT_CUSTOM_INSTRUCTIONS_DIRS 以逗号分隔的路径列表指定的任何目录中。
`AGENTS.md`根目录中的指令(如果找到)被视为主要指令。 如果在存储库的根目录中找到 `AGENTS.md` 文件和 `.github/copilot-instructions.md` 文件,则使用这两个文件中的说明。
在其他 AGENTS.md 文件中找到的说明被视为其他说明。 发现的任何主要指令都可能比 Copilot其他指令对响应产生更大的影响。
有关详细信息,请参阅 agentsmd/agents.md 存储库。
或者,可以使用 CLAUDE.md 和 GEMINI.md 文件。 这些属性必须位于存储库的根目录中。
本地说明
这些应用在特定本地环境中。
可以在自己的主目录中通过创建文件$HOME/.copilot/copilot-instructions.md来指定指令。
还可以将 COPILOT_CUSTOM_INSTRUCTIONS_DIRS 环境变量设置为逗号分隔的目录列表。
Copilot CLI 将在这些目录中的每一个中查找一个 AGENTS.md 文件和任何 .github/instructions/**/*.instructions.md 文件。
创建全仓库内的自定义指令
-
在存储库的根目录中,创建名为
.github/copilot-instructions.md的文件。创建
.github目录(如果尚不存在)。 -
以 Markdown 格式在该文件中添加自然语言说明。
系统会忽略说明信息间的空格,因此可将信息编写为一个段落,每个段落位于一行上,或用空白行分隔,以保持其可读性。
有关编写有效自定义说明的帮助,请参阅 关于自定义GitHub Copilot 响应。
创建路径特定的自定义指令
-
如果尚无
.github/instructions目录,则创建该目录。 -
(可选)创建用于组织指令文件的子目录
.github/instructions。 -
创建一个或多个
NAME.instructions.md文件,其中NAME指示指令的用途。 文件名必须以.instructions.md结尾。 -
在文件开头,创建包含
applyTo关键字的前辅文块。 使用 glob 语法指定指令应用于的文件或目录。例如:
--- applyTo: "app/models/**/*.rb" ---可以通过用逗号分隔多个模式来指定这些模式。 例如,若要将指令应用于仓库中的所有 TypeScript 文件,可以使用以下前辅文块:
--- applyTo: "**/*.ts,**/*.tsx" ---Glob 示例:
-
`*` - 会匹配当前目录中的所有文件。 -
`**` 或 `**/*` - 均会匹配所有目录中的所有文件。 -
`*.py` - 将匹配当前目录中的所有 `.py` 文件。 -
`**/*.py` - 将以递归方式匹配所有目录中的所有 `.py` 文件。 -
`src/*.py` - 将匹配 `.py` 目录中所有 `src` 文件。 例如,`src/foo.py`和`src/bar.py`但_不_`src/foo/bar.py`。 -
`src/**/*.py` - 将以递归方式匹配目录中的所有 `.py` 文件 `src` 。 例如 、 `src/foo.py``src/foo/bar.py`和 `src/foo/bar/baz.py`。 -
`**/subdir/**/*.py` - 将以递归方式匹配任何深度目录中所有`.py`文件。 例如,`subdir/foo.py`、`subdir/nested/bar.py`、`parent/subdir/baz.py`和`deep/parent/subdir/nested/qux.py`_,但不_`foo.py`位于不包含`subdir`目录的路径。
-
-
或者,为了防止文件被 Copilot云代理 或 Copilot代码评审 使用,将
excludeAgent关键字添加到 frontmatter 区块中。 使用"code-review"或"cloud-agent"。例如,以下文件将仅由 Copilot云代理 读取。
--- applyTo: "**" excludeAgent: "code-review" ---如果在 front matterblock 中不包括关键字
excludeAgent,则 Copilot代码评审 和 Copilot云代理 都将使用您的说明。 -
使用 Markdown 格式以自然语言添加自定义指令。 系统会忽略说明信息间的空格,因此可将信息编写为一个段落,每个段落位于一行上,或用空白行分隔,以保持其可读性。
你是否已成功将自定义指令文件添加到你的仓库中?
<a href="https://docs.github.io/success-test/yes.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline">
<span>是</span></a><a href="https://docs.github.io/success-test/no.html" target="_blank" class="btn btn-outline mt-3 mr-3 no-underline"><span>否</span></a>
正在使用的自定义说明
文件(s)中的说明可在保存文件后立即使用 Copilot 。 指令会自动添加到您提交给Copilot的请求中。
如果在 CLI 会话期间对自定义说明进行更改,则在当前或将来的会话中下次提交提示时,这些更改将可供使用 Copilot 。
延伸阅读
-
[AUTOTITLE](/copilot/reference/custom-instructions-support) -
[AUTOTITLE](/copilot/tutorials/customization-library/custom-instructions) — 精选的示例集合 -
[AUTOTITLE](/copilot/tutorials/use-custom-instructions)