在 VS Code 中使用提示文件
提示文件是 Markdown 文件,用于为常见的开发任务定义可复用的提示,例如生成代码、执行代码审查或搭建项目组件。它们是独立的提示,可以直接在聊天中运行,从而能够创建一个标准化的开发工作流程库。
它们可以包含特定于任务的指南或引用自定义指令,以确保一致的执行。与适用于所有请求的自定义指令不同,提示文件是针对特定任务按需触发的。
提示文件目前是实验性功能,在未来的版本中可能会发生变化。
VS Code 支持两种类型的提示文件作用域
- 工作区提示文件:仅在工作区内可用,并存储在工作区的
.github/prompts
文件夹中。 - 用户提示文件:可在多个工作区中使用,并存储在当前的 VS Code 配置文件中。
提示文件示例
以下示例演示了如何使用提示文件。更多社区贡献的示例,请参阅 Awesome Copilot 仓库。
示例:生成一个 React 表单组件
---
mode: 'agent'
model: GPT-4o
tools: ['githubRepo', 'codebase']
description: 'Generate a new React form component'
---
Your goal is to generate a new React form component based on the templates in #githubRepo contoso/react-templates.
Ask for the form name and fields if not provided.
Requirements for the form:
* Use form design system components: [design-system/Form.md](../docs/design-system/Form.md)
* Use `react-hook-form` for form state management:
* Always define TypeScript types for your form data
* Prefer *uncontrolled* components using register
* Use `defaultValues` to prevent unnecessary rerenders
* Use `yup` for validation:
* Create reusable validation schemas in separate files
* Use TypeScript types to ensure type safety
* Customize UX-friendly validation rules
示例:对 REST API 执行安全审查
---
mode: 'ask'
model: Claude Sonnet 4
description: 'Perform a REST API security review'
---
Perform a REST API security review and provide a TODO list of security issues to address.
* Ensure all endpoints are protected by authentication and authorization
* Validate all user inputs and sanitize data
* Implement rate limiting and throttling
* Implement logging and monitoring for security events
Return the TODO list in a Markdown format, grouped by priority and issue type.
提示文件格式
提示文件是 Markdown 文件,使用 .prompt.md
扩展名,并具有以下结构
-
头部(可选):YAML frontmatter
description
:提示的简短描述mode
:用于运行提示的聊天模式:ask
、edit
或agent
(默认)。model
:运行提示时使用的语言模型。如果未指定,则使用模型选择器中当前选择的模型。tools
:可以使用的工具(集)名称数组。选择配置工具以从工作区中的可用工具列表中选择工具。如果在运行提示时给定的工具(集)不可用,它将被忽略。
-
正文:Markdown 格式的提示指令
通过使用 Markdown 链接来引用其他工作区文件、提示文件或指令文件。使用相对路径来引用这些文件,并确保路径根据提示文件的位置是正确的。
在提示文件中,您可以使用
${variableName}
语法引用变量。您可以引用以下变量- 工作区变量 -
${workspaceFolder}
、${workspaceFolderBasename}
- 选择变量 -
${selection}
、${selectedText}
- 文件上下文变量 -
${file}
、${fileBasename}
、${fileDirname}
、${fileBasenameNoExtension}
- 输入变量 -
${input:variableName}
、${input:variableName:placeholder}
(从聊天输入字段向提示传递值)
- 工作区变量 -
创建提示文件
创建提示文件时,选择是将其存储在工作区还是用户配置文件中。工作区提示文件仅适用于该工作区,而用户提示文件可在多个工作区中使用。
要创建提示文件
-
启用 chat.promptFiles 设置。
-
在聊天视图中,选择配置聊天 > 提示文件,然后选择新建提示文件。
或者,从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))使用聊天:新建提示文件命令。
-
选择提示文件应创建的位置。
-
工作区:默认情况下,工作区提示文件存储在工作区的
.github/prompts
文件夹中。使用 chat.promptFilesLocations 设置为您的工作区添加更多提示文件夹。
-
-
为您的提示文件输入一个名称。
-
使用 Markdown 格式编写聊天提示。
在提示文件中,以 Markdown 链接(
[index](../index.ts)
)的形式引用额外的工作区文件。您还可以引用其他
.prompt.md
文件来创建提示的层级结构。您也可以用同样的方式引用指令文件。
要修改现有的提示文件,请在聊天视图中选择配置聊天 > 提示文件,然后从列表中选择一个提示文件。或者,从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))使用聊天:配置提示文件命令,并从快速选择中选择提示文件。
在聊天中使用提示文件
您有多种选项来运行提示文件
-
在聊天视图的输入字段中,输入
/
后跟提示文件名。此选项使您能够在聊天输入字段中传递附加信息。例如,
/create-react-form
或/create-react-form: formName=MyForm
。 -
从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行聊天:运行提示命令,并从快速选择中选择一个提示文件。
-
在编辑器中打开提示文件,然后按编辑器标题区域的播放按钮。您可以选择在当前聊天会话中运行提示或打开一个新的聊天会话。
此选项对于快速测试和迭代您的提示文件非常有用。
跨设备同步用户提示文件
VS Code 可以使用设置同步在多个设备间同步您的用户提示文件。
要同步您的用户提示文件,请为提示和指令文件启用设置同步
-
确保您已启用设置同步。
-
从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行设置同步:配置。
-
从要同步的设置列表中选择提示和指令。
定义提示文件的技巧
-
清楚地描述提示应完成的任务以及期望的输出格式。
-
提供预期输入和输出的示例,以指导 AI 的响应。
-
使用 Markdown 链接引用自定义指令,而不是在每个提示中重复指南。
-
利用内置变量(如
${selection}
)和输入变量使提示更加灵活。 -
使用编辑器播放按钮测试您的提示,并根据结果进行优化。