自定义指令与 Agent Skills
Copilot CLI 支持的指令文件位置与合并规则、@ 引用其他文件、/instructions 命令;agent skills 的位置、调用与 /skills 管理命令。
自定义指令
如果提供足够的上下文,Copilot 可以给出贴合你个人偏好、团队工作方式、所用工具和项目细节的回复。与其在提示里反复添加这些上下文,不如用自定义指令。Copilot CLI 支持来自这些位置的指令:
| 位置 | 范围与行为 |
|---|---|
$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 在标准位置发现仓库和智能体指令文件:仓库根、当前工作目录、两者之间的中间目录,以及嵌套在这些目录里的目录。设置了 COPILOT_HOME 环境变量时,Copilot 对两个用户级指令位置使用该目录而不是 $HOME/.copilot。用 /instructions 命令查看当前会话发现的指令文件并启用或禁用单个文件。
多个指令文件如何交互:存在多个适用的用户级和仓库指令文件时,Copilot 合并它们的指令(现在所有自定义指令文件都是合并,而不是按优先级回退);它会去掉用户级 copilot-instructions.md、仓库范围和智能体指令里完全相同的重复副本。路径特定的指令只在其 applyTo 值匹配 Copilot 正在处理的文件时才包含;你用 /instructions 禁用的指令文件不包含。
创建仓库范围的指令:在仓库根创建名为 .github/copilot-instructions.md 的文件(.github 目录不存在就先创建),用 Markdown 格式写自然语言指令;指令之间的空白被忽略,所以可以写成一个段落、每条一行或用空行分隔。引用其他文件:在 .github/copilot-instructions.md、AGENTS.md 或 CLAUDE.md 里用 @ 加相对路径包含另一个文件,Copilot 立即读取被引用的文件并支持被引用文件里的引用;被引用的文件必须留在仓库内(本地指令则是自定义指令目录内),绝对路径和以 ~/ 开头的路径不会被加载,GEMINI.md 和 *.instructions.md 里的文件引用不展开。让改动生效:对自定义指令文件的更改在活动的 CLI 会话里不会立即可用;退出当前会话,然后恢复它(如 copilot --continue)或开始新会话。
Agent Skills
Agent skills 是 Copilot 在相关时可以加载以改进其在专门任务上表现的指令、脚本和资源文件夹,遵循开放的 Agent Skills 规范。Copilot 支持项目 skills(存放在你的仓库里:.github/skills、.claude/skills 或 .agents/skills)和个人 skills(存放在主目录、跨项目共享:~/.copilot/skills 或 ~/.agents/skills)。你可以创建自己的 skills,也可以用在线共享的(如 anthropics/skills 仓库或 GitHub 社区的 github/awesome-copilot 集合),还可以在 GitHub CLI 里用 gh skill 从 GitHub 仓库发现和安装 skills。
添加后,启动 CLI 会话,或在会话里输入 /skills reload,再用 /skills info SKILL-NAME 检查 skill 已重新加载(SKILL-NAME 在 SKILL.md 里定义,通常与 skill 目录名相同)。使用:在提示里在 skill 名前加斜杠,例如「Use the /frontend-design skill to create a responsive navigation bar in React.」。CLI 里的命令:/skills list(列出当前可用的 skills,或直接问「What skills do you have?」);/skills 然后用上下键选择 skill、按 Enter 选 Enable 或 Disable;/skills info(了解某个 skill 的更多信息,包括位置);/skills add(添加存放 skills 的备用位置);/skills reload(会话期间添加了 skill 时重新加载);/skills remove SKILL-DIRECTORY(移除你直接添加的 skill,通过插件添加的要管理插件本身)。这些 /skills 命令在交互会话里运行,列出、添加、移除、禁用和启用的操作也可以在终端里用 copilot skill 子命令完成,适用于脚本。