Skip to content
Go back

Prompt 文件与 Instructions 文件详解:为 Copilot 提供长期规则与一次性任务上下文

Published:  at  12:00 AM

概览

GitHub Copilot 正在从“代码补全工具”进化为“智能编码代理”。要想让它在你的代码库里发挥最大价值,关键在于给它清晰的“规则”和“任务说明”。这正是 Instructions 文件与 Prompt 文件的职责所在:

为什么要区分两类文件?

什么是 Instructions 文件?

Instructions 文件应包含什么?

建议结构(可按需裁剪):

Instructions 文件示例骨架

# Repository-wide Copilot Instructions

- Scope: src/**/\*.cs, src/**/\*.razor; exclude: src/Generated/**, vendor/**
- Runtime: .NET 9/10; Node 20 for tooling

## Build/Run/Test (PowerShell)

- Build: dotnet build
- Test: dotnet test
- Run: dotnet run --project src/App/App.csproj

## Conventions

- C# style: dotnet format; nullable enabled; PascalCase for public APIs
- Commit: feat/fix/docs style; imperative mood; link issue when applicable

## Allowed Autonomous Actions

- Safe refactors within a single file with tests
- Add/adjust unit tests; fix typos; run formatters

## Require Human Review

- DB schema/migrations; infra changes; dependency major bumps

## Output & PR

- Provide patch diff per file; include test evidence and lint results

## Failure Handling

- If build/test fails: revert, summarize root cause, propose fix options

小贴士:本仓库已配有 /.github/copilot-instructions.md(如有),你可以在此基础上补充“范围、命令、允许/禁止清单”等高价值信息。

什么是 Prompt 文件?

Prompt 文件应包含什么?

Prompt 文件示例骨架

---
mode: agent
---

目标:创建一个 Roslyn Analyzer,检测弱加密 API 的使用并给出替代建议。

范围:仅修改 src/Analyzers/** 与 tests/**;禁止改动 infra/\*\* 与生产配置。

要求:

- 先生成最小 Analyzer 与 CodeFix 骨架
- 覆盖以下用例:MD5.Create(), SHA1.Create(), RijndaelManaged (insecure modes), new HMACSHA1(), TripleDES
- 建议替代:SHA256、RandomNumberGenerator 或内部封装库

本地验证(PowerShell):

- dotnet build
- dotnet test

输出:

- 以补丁形式逐文件展示变更
- 附带通过的测试摘要与关键实现说明

在 VS Code 中,打开聊天输入:/CreateAnalyzer 检测项目中弱加密 API 的使用并替换为安全实现,即可复用该 Prompt。

如何选择:Instructions vs. Prompts

维度Instructions 文件Prompt 文件
目标长期规范与边界一次性/可复用的具体任务
生效范围仓库/语言/路径级别会话/文件/局部场景
触发方式自动随请求附加聊天命令按需调用
风险控制制定护栏(允许/禁止)在护栏内执行操作
最佳实践与 CI 规则、风格工具强绑定与任务模板、复用清单强绑定

建议组合用法:

落地清单(一步到位)

常见陷阱与规避

进阶技巧(提高命中率与可维护性)

参考与延伸阅读


通过将 Instructions 与 Prompt 文件结合使用,你可以既“立规矩”,又“提效率”。让 Copilot 成为真正的团队成员——稳定、可靠、可控,并持续复用团队的最佳实践。



Next Post
ASP.NET Core 中的结构化日志记录:使用 Serilog 实现高效日志管理