指令文件与加载
配置个人和仓库指令,理解合并、相对文件导入和会话刷新。
This page has not been translated into English yet. The original Chinese version is shown below.
自定义指令把项目背景、编码规范和验证要求放进 Copilot 的上下文,减少每次提示时重复说明。先写短而准确的规则,再用 /instructions 检查实际发现的文件。
文件位置
| 位置 | 用途 |
|---|---|
$HOME/.copilot/copilot-instructions.md | 跨仓库的个人指令 |
$HOME/.copilot/instructions/**/*.instructions.md | 个人路径专用指令 |
.github/copilot-instructions.md | 仓库通用指令 |
.github/instructions/**/*.instructions.md | 仓库路径专用指令 |
AGENTS.md、CLAUDE.md、.claude/CLAUDE.md、GEMINI.md | 支持的智能体指令文件 |
COPILOT_CUSTOM_INSTRUCTIONS_DIRS | 逗号分隔的额外目录,发现 AGENTS.md 和 *.instructions.md |
设置 COPILOT_HOME 后,两个个人位置改用该目录。仓库与智能体指令的标准发现范围包括仓库根、当前工作目录、两者之间的目录,以及正在处理的文件路径上的嵌套目录;不是无条件遍历加载整个仓库的所有子目录。
仓库的模块化 *.instructions.md 不在上述中间目录发现,且只有 applyTo 匹配才适用。
创建通用规则
在仓库根的 .github/copilot-instructions.md 写 Markdown 自然语言。例如:
Describe the purpose of a change before editing files.
Use the repository's documented build and test commands.
Report any verification you could not complete.这是写法示例。项目的目录、命令与规范应来自真实仓库,避免把不适用的模板原样填入。
多份指令的关系
适用的用户级和仓库指令会合并。CLI 会去掉完全相同的用户通用指令、仓库通用指令和智能体指令副本,但没有通用的“个人覆盖仓库”或“离文件近就覆盖远处”指令优先级。避免同一要求在多处出现矛盾。
/instructions 显示当前会话发现的文件,并可启用或禁用单个文件。禁用的文件不会加入上下文。路径专用规则见applyTo 配置。
用相对路径引用文档
.github/copilot-instructions.md、AGENTS.md 和 CLAUDE.md 支持 @ 加相对路径导入。CLI 立即读取引用文件,也支持引用文件继续引用其他文件。
引用必须留在仓库内;本地指令的引用必须留在自定义指令目录内。绝对路径和 ~/ 开头的路径不会加载。GEMINI.md 与 *.instructions.md 中的引用不会展开,不能把所有指令文件都视作相同的导入入口。
应用修改
活动会话不会立即获得文件改动。退出后可以恢复最近会话:
copilot --continue也可在交互界面用 /new 创建新会话。若规则仍不生效,检查文件位置、applyTo 和禁用状态;若由自定义 subagent 执行任务,还需检查仓库指令的 opt-in。