
GitHub Copilot的instructions是为生成内容设定行为准则,帮助模型理解项目背景、规范和资源,从而提升代码生成的针对性和效率。
如果你用过 Cursor,会接触到 rules(规则)这一概念。GitHub Copilot/VS Code 中也有类似概念,称为 instructions(生成规则),我感觉Copilot不采用rules,可能这个单词带有动作的含义。
官方文档: https://code.visualstudio.com/docs/copilot/customization/custom-instructions
本文围绕三方面展开:
instructions 是为 Copilot的Chat 功能提供的全局上下文说明与行为准则。它们在每次会话时被客户端合并并发送给 LLM,用以约束生成结果的风格、范围与可用资源。
注意: 客户端合并规则文件时,不保证文件顺序,因此不要依赖顺序来实现优先级逻辑。
正在渲染 Mermaid 图表...
核心作用:
在工作区中(我感觉这些规则就近放置比较好,虽然可能存在重复,但是具有灵活性,文档中也提到了可以放到user profile路径中),生成规则以 Markdown 文件形式存在,目前常见的几种类型:

以下是构造高效生成规则时应包含的关键内容与示例。
简洁说明项目目的、用户与主要功能,帮助 Copilot 明确生成目标。
一个项目的总体概览,告诉了LLM项目的背景,限定生成内容方向,使其具有了"针对性"。
示例:
越详细越具体最好,😅 当然也浪费Token。
虽然在应用中,LLM可以通过Chat记录中推断出当前应用采用了那些技术,但是给他的信息仍然是模糊的,提供更详细的技术栈明细,可以让LLM生成更好的实现代码并最终提高效率。
例如:我采用MUI7作为UI的后端实现,每次Copilot生成时,总是输出MUI5的实现方案,在交互中需要多次的优化。
示例:
向同你新加入的伙伴一样,同步项目的编码规范,防止规范的差异,造成文件变动的干扰。当前LLM生成业务代码,可以很好的按照你的编码规范要求生成,但是你要告诉他。
不同的组件,应用的方向不同。例如我的习惯就是后端和前端的组件分开存放,那个是前端目录,那个是后端目录。
如果你经常使用MCP,那么在开发应用中,有些MCP的功能你将离不开,当前Copilot的客户端已经很好的集成了这部分功能。
明确的告诉LLM他可以使用的那些资源或者脚本,将会大大的增强你的开发效率,仅需在运行确认时,点击"确认"执行即可。
instructions 没有固定模板,应在实际使用中不断调整。优先保留能显著提升生成质量的关键信息,避免过于冗长导致模型“注意力稀释”。
注意力稀释:当给模型的上下文/指令太多、太长或信息杂乱时,模型在有限的上下文窗口里无法把注意力集中在最关键的信息上,导致生成质量下降、优先级混乱或出现自相矛盾的结果。