news 2026/6/9 21:05:14

第三节:用AI让重复任务一键完成——prompts.md 文件详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第三节:用AI让重复任务一键完成——prompts.md 文件详解

一、什么是 Prompt 文件?

你已经学会了用 Agent 定义 AI 的“专业身份”(第一节),用 Instructions 为 AI 设定“全局行为准则”(第二节)。但在日常开发中,还有一些频繁执行的标准化任务,比如:

  • “请审查这段代码的安全性”
  • “为这个函数生成单元测试”
  • “写一个符合 Conventional Commits 规范的提交信息”

这些任务流程固定、要求明确,每次都要重新输入一长串提示词,既低效又容易遗漏关键要求。

Prompt 文件正是为了解决这个问题——它把常用的任务提示词保存为可复用的模板,你可以通过/命令一键调用,Copilot 会自动加载模板内容(包括变量占位符、工具权限等),让你以最少的输入完成重复性工作。

💡 官方定义:Prompt 文件是存储在仓库中的可重用提示模板,用于标准化特定任务的 AI 交互。你可以在 Copilot Chat 中通过/菜单选择,或直接输入/文件名来调用。

二、Prompt 在配置体系中的定位

为了更好地理解 Prompt 的作用,我们重新审视整个 Copilot 定制化体系:

定制功能文件类型与位置触发方式核心用途类比
自定义指令.github/copilot-instructions.md自动(每次对话都加载)全局背景规则(编码规范、架构原则)公司的《员工手册》
自定义代理.github/agents/*.agent.md手动选择(下拉菜单或@agent-name拥有专属角色、工具权限的专家特种兵编制
提示文件.github/prompts/*.prompt.md手动调用/prompt-name标准化、可交互的重复任务模板作战指令卡
代理技能.github/skills/<skill-name>/SKILL.md自动/手动封装脚本和资源的复杂任务模块战术工具包

Prompt 是最轻量、最直接的复用方式:它不改变 AI 的身份(Agent 改变身份),不改变全局规则(Instructions 改变背景),只是把一段精心设计的提示词保存下来,并支持变量交互——让你每次调用时可以临时填入不同的参数。

三、.prompt.md 文件结构与 Frontmatter 详解

*.prompt.md文件与agent.mdinstructions.md一样,由YAML FrontmatterMarkdown 内容两部分组成。下面是支持的 Frontmatter 字段。

3.1 name(可选,推荐配置)

属性说明
类型string
用途在 Copilot Chat 的/菜单中显示的名称
默认值文件名(不含.prompt.md

示例

name:"代码审查(安全版)"

3.2 description(可选,强烈推荐)

属性说明
类型string
用途简要描述该 Prompt 的作用,帮助你在菜单中区分不同 Prompt
长度建议10-200 字符

示例

description:"根据 OWASP Top 10 审查代码中的安全漏洞"

3.3 agent(可选)

属性说明
类型string
用途指定调用此 Prompt 时使用哪个 Agent(如@security-agent
默认值当前活跃的 Agent

示例

agent:"security-agent"

为什么要指定 Agent?
如果你的 Prompt 需要特殊的工具权限或角色背景(例如安全审查需要只读权限,不能修改文件),可以绑定一个已经配置好的 Agent。这样调用 Prompt 时,Copilot 会自动切换到该 Agent 模式。

3.4 model(可选)

属性说明
类型string
用途指定调用此 Prompt 时使用的 AI 模型
可选值gpt-4ogpt-4-turbogpt-3.5-turbo等(取决于你的订阅)
默认值用户当前选择的模型

示例

model:"gpt-4o"

3.5 tools(可选)

属性说明
类型string 或 string[]
用途为此 Prompt 临时启用的工具列表(覆盖当前 Agent 的工具设置)
默认值不启用额外工具(继承 Agent 的配置)

示例

tools:["read","grep","search"]

⚠️ 注意:如果当前 Agent 不支持工具(例如ask模式),指定tools后 Copilot 会自动将模式升级为agent

3.6 argument-hint(可选)

属性说明
类型string
用途当你调用 Prompt 时,在输入框中显示的占位提示文字
默认值

示例

argument-hint:"<请粘贴要审查的代码或输入文件路径>"

这个字段可以提升用户体验,让团队成员知道该 Prompt 期望什么输入。

四、核心机制:使用${input:变量名}实现交互

Prompt 文件与普通提示词最大的区别在于支持变量占位符。通过${input:变量名}语法,你可以在模板中定义需要用户临时填写的参数。

4.1 基本语法

${input:<变量名>:<可选默认值/占位文本>}
  • 变量名:必填,用于在模板中引用用户输入的值
  • 默认值/占位文本:可选,显示在输入框中作为提示或默认内容

4.2 实际示例

假设你要创建一个“生成 React 组件”的 Prompt:

--- name: "创建 React 组件" description: "生成一个带有 TypeScript 类型定义的 React 函数组件" --- 请创建一个名为 `${input:组件名:例如 UserCard}` 的 React 函数组件。 **Props 定义**: ```typescript interface ${input:组件名}Props { ${input:Props类型:例如 user: User; onClick?: () => void} }

组件要求

  • 使用 React 18+ 的函数组件
  • 包含 JSDoc 注释
  • 使用 Tailwind CSS 进行样式布局
当你调用 `/创建 React 组件` 时,Copilot 会依次弹出三个输入框: 1. “请输入组件名” (默认显示 `例如 UserCard`) 2. “请输入 Props 类型” (默认显示 `例如 user: User; onClick?: () => void`) 你填写后,AI 就会基于这些参数生成最终代码。 ### 4.3 变量作用域 变量在单个 Prompt 文件的 Markdown 内容中全局有效。你可以在多处使用同一个变量名,用户只需输入一次,所有引用位置都会被替换。 ## 五、编写高质量 Prompt 的实战技巧 Frontmatter 定义了交互方式,但 Prompt 的核心价值在于 **Markdown 内容**。以下是提升效果的三条核心技巧。 ### 5.1 明确角色与约束 在内容开头,为 AI 设定清晰的角色和必须遵守的约束: ```markdown ## 角色 你是一位资深后端工程师,专注于 **Node.js + TypeScript** 项目。 ## 约束 - 严格遵循项目的 `.github/copilot-instructions.md` 中的编码规范 - 不要使用 `any` 类型 - 必须处理所有异步操作的错误 - 输出只包含代码和必要注释,不要添加额外解释

5.2 提供输入格式和示例

如果 Prompt 需要处理用户提供的代码片段或数据,明确告知 AI 期望的输入格式,并给出正反例

## 输入格式 用户会提供一个函数或一段代码块。请基于它生成单元测试。 ## 好的示例 输入: ```typescript function add(a: number, b: number): number { return a + b; }

输出应包含:

  • 正常情况测试
  • 边界情况(如负数、零)
  • 类型错误测试
### 5.3 结构化输出要求 明确要求 AI 按固定格式输出,便于阅读和复制: ```markdown ## 输出格式 请按以下结构输出: ### 1. 问题列表 - [严重] 问题描述 + 行号 - [一般] 问题描述 ### 2. 修复建议 对每个问题给出修改后的代码片段 ### 3. 总体评价 - 优点: - 改进空间:

六、完整实战示例:security-review.prompt.md

下面是一个可以直接使用的安全审查 Prompt,结合了所有知识点:

--- name: "安全审查" description: "基于 OWASP Top 10 检查代码中的安全漏洞" agent: "security-agent" tools: ["read", "search", "grep"] argument-hint: "<请粘贴代码或输入文件路径>" model: "gpt-4o" --- ## 🎯 角色 你是一位应用安全专家,精通 OWASP Top 10 漏洞和常见攻击模式。 ## 📥 输入 用户会提供一段代码(或文件名)。你需要分析这段代码。 ## ✅ 审查清单 请检查以下项目: 1. **注入漏洞**:SQL 注入、命令注入、NoSQL 注入 2. **认证与授权**:是否有硬编码凭证、未检查权限的 API 3. **敏感数据暴露**:是否记录了密码/token、未加密传输 4. **XSS**:用户输入是否被安全转义 5. **不安全反序列化**:是否使用了 `eval()`、`new Function()` 等 ## 📤 输出格式(严格按此格式) ### 🔴 严重漏洞(Critical) - 漏洞描述 + 具体代码行 - 攻击场景(攻击者如何利用) - 修复方案(代码示例) ### 🟡 高危问题(High) (同上结构) ### 🔵 最佳实践偏离(Info) - 建议改进的地方(无安全风险但影响健壮性) ### ✅ 结论 - 是否建议合并:是 / 否(并说明理由) ## ⚠️ 约束 - 不要输出任何修改后的完整文件,只输出审查报告 - 如果不确定是否存在漏洞,标记为“需要人工确认”并说明原因 - 所有修复示例必须使用参数化查询或安全 API,禁止使用字符串拼接

七、部署与使用

7.1 存放位置

在仓库根目录下创建.github/prompts/文件夹,将所有*.prompt.md文件放入其中:

your-repo/ ├── .github/ │ ├── agents/ │ │ └── security-agent.agent.md │ ├── instructions/ │ │ └── backend.instructions.md │ ├── prompts/ │ │ ├── security-review.prompt.md │ │ ├── generate-test.prompt.md │ │ └── write-commit-message.prompt.md │ └── copilot-instructions.md └── src/

7.2 调用方法

  • 斜杠命令:在 Copilot Chat 输入框中输入/security-review(文件名,不含扩展名),然后按回车。如果 Prompt 定义了argument-hint,光标会自动定位到参数输入位置。
  • 菜单选择:输入/,从弹出的列表中选择“安全审查”。
  • 带参数调用:可以直接输入/security-review 待审查的代码片段,参数会作为${input}变量的默认值。

7.3 共享

.github/prompts/目录提交到 Git 仓库后,所有克隆该仓库的团队成员都可以使用这些 Prompt。这非常适合团队标准化代码审查流程、测试模板等。

八、Prompts vs. Agents vs. Instructions 对比总结

维度InstructionsAgentsPrompts
作用提供全局背景规则定义专业身份和权限标准化具体任务流程
触发方式自动(每次对话)手动选择(下拉菜单或@手动调用(/命令)
是否支持变量交互否(但可通过对话传递)${input}语法)
典型用途编码规范、架构原则多步骤复杂任务(如重构、迁移)单一重复任务(如审查、生成测试)
文件位置.github/copilot-instructions.md.github/agents/*.agent.md.github/prompts/*.prompt.md

使用建议

  • 全局规则用Instructions
  • 需要特定工具权限或持久化角色的用Agent
  • 标准化、可交互的重复性任务用Prompts

三者可以组合使用:一个 Prompt 可以指定使用某个 Agent(通过agent字段),该 Agent 又继承了 Instructions 的全局规则。

九、参考资料

  • GitHub Docs: Using prompt files with Copilot Chat
  • GitHub Blog: Customizing GitHub Copilot with prompts and slash commands
  • GitHub Docs: About custom agents
  • GitHub Docs: Custom instructions for GitHub Copilot

以上是重新整理后的第三节,格式与前两节完全一致(包含二级标题、三级标题、表格、代码块、对比总结、参考资料)。现在可以向用户交付了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:04:23

群雄逐鹿 AI 流量赛道:2026 主流 GEO 工具实测,搜极星实力领跑

一、引言随着生成式 AI 全面融入大众信息获取与消费决策环节&#xff0c;传统 SEO 的流量增长空间逐渐收窄&#xff0c;GEO&#xff08;生成式引擎优化&#xff09;成为品牌数字化布局的全新风口。当下各大 AI 大模型成为用户查询品牌、对比产品、获取服务信息的主要渠道&#…

作者头像 李华
网站建设 2026/6/9 21:02:05

告别‘黑盒’调用:手把手教你用Python+clr调试C# DLL内部逻辑与异常

透视C# DLL内部&#xff1a;PythonCLR深度调试实战指南当Python开发者需要集成C#编写的DLL时&#xff0c;最令人头疼的莫过于遇到异常时那一串晦涩难懂的错误信息。就像面对一个密封的黑匣子&#xff0c;我们只能看到输入和输出&#xff0c;却对内部发生的故障一无所知。本文将…

作者头像 李华
网站建设 2026/6/9 20:58:59

CSP-J 2022 初赛补全代码题解析

2022年的两道题,一道是枚举因数,一道是洪水填充(BFS)。难度中规中矩,但因数那道题在输出顺序上做了点小文章,需要留意一下。 第一题:枚举因数 题目描述 输入一个正整数 n,从小到大输出它的所有正因数。比如 n=36,输出 1 2 3 4 6 9 12 18 36。 代码用了优化方法:只…

作者头像 李华
网站建设 2026/6/9 20:56:55

3步解锁Ryzen处理器的隐藏性能:SDT调试工具深度指南

3步解锁Ryzen处理器的隐藏性能&#xff1a;SDT调试工具深度指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…

作者头像 李华
网站建设 2026/6/9 20:55:02

C++新手练手包:100个带图形界面的可运行小项目,含BGI驱动和BMP素材

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;专为C初学者准备的实操型练习资源&#xff0c;包含100个独立、完整、可直接编译运行的小程序&#xff0c;覆盖输入输出、循环、数组、函数、指针、结构体、文件读写等基础语法点。所有代码采用标准C编写&#x…

作者头像 李华