参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

在 VS Code 中使用提示文件

提示文件是 Markdown 文件,它们为常见的开发任务定义了可重用的提示,例如生成代码、执行代码审查或构建项目组件。它们是可直接在聊天中运行的独立提示,从而可以创建标准化开发工作流程的库。

它们可以包含特定于任务的指南或引用自定义指令,以确保一致的执行。与适用于所有请求的自定义指令不同,提示文件是按需触发的,用于特定任务。

注意

提示文件目前处于实验阶段,未来版本可能会有所更改。

VS Code 支持两种类型的提示文件范围

  • 工作区提示文件:仅在工作区内可用,并存储在工作区的 .github/prompts 文件夹中。
  • 用户提示文件:可在多个工作区中可用,并存储在当前的 VS Code 配置文件中。

提示文件示例

以下示例演示了如何使用提示文件。如需更多社区贡献的示例,请参阅 Awesome Copilot 存储库

示例:生成一个 React 表单组件
---
mode: 'agent'
model: GPT-4o
tools: ['githubRepo', 'search/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:用于运行提示的聊天模式:askeditagent(默认)。
    • model:运行提示时使用的语言模型。如果未指定,则使用模型选择器中当前选定的模型。
    • tools:可使用的工具(集)名称数组。选择 Configure Tools 以从工作区中可用工具列表中选择工具。如果在运行提示时给定工具(集)不可用,则会忽略它。
  • 正文:Markdown 格式的提示说明

    使用 Markdown 链接引用其他工作区文件、提示文件或指令文件。使用相对路径引用这些文件,并确保路径根据提示文件的位置正确无误。

    在提示文件中,您可以使用 ${variableName} 语法引用变量。您可以引用以下变量

    • 工作区变量 - ${workspaceFolder}, ${workspaceFolderBasename}
    • 选择变量 - ${selection}, ${selectedText}
    • 文件上下文变量 - ${file}, ${fileBasename}, ${fileDirname}, ${fileBasenameNoExtension}
    • 输入变量 - ${input:variableName}, ${input:variableName:placeholder}(从聊天输入字段将值传递给提示)

工具列表优先级

您可以通过使用 tools 元数据字段为聊天模式和提示文件指定可用工具列表。提示文件还可以通过使用 mode 元数据字段引用聊天模式。

聊天中可用工具列表由以下优先级顺序决定

  1. 提示文件中指定的工具(如果有)
  2. 提示文件中引用的聊天模式中的工具(如果有)
  3. 所选聊天模式的默认工具

创建提示文件

创建提示文件时,选择是将其存储在工作区还是用户配置文件中。工作区提示文件仅适用于该工作区,而用户提示文件可在多个工作区中可用。

要创建提示文件

  1. 启用 chat.promptFiles 设置。

  2. 在聊天视图中,选择 Configure Chat > Prompt Files,然后选择 New prompt file

    Screenshot showing the Chat view, and Configure Chat menu, highlighting the Configure Chat button.

    或者,从命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P)使用 Chat: New Prompt File 命令。

  3. 选择应创建提示文件的位置。

    • 工作区:默认情况下,工作区提示文件存储在工作区的 .github/prompts 文件夹中。使用 chat.promptFilesLocations 设置为工作区添加更多提示文件夹。

    • 用户配置文件:用户提示文件存储在 当前配置文件文件夹中。您可以使用 设置同步 在多个设备之间同步您的用户提示文件。

  4. 输入提示文件的名称。

  5. 使用 Markdown 格式编写聊天提示。

    在提示文件中,将其他工作区文件作为 Markdown 链接([index](../index.ts))引用。

    您还可以引用其他 .prompt.md 文件以创建提示的层次结构。您还可以以相同的方式引用 指令文件

要修改现有提示文件,请在聊天视图中,选择 Configure Chat > Prompt Files,然后从列表中选择一个提示文件。或者,从命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P)使用 Chat: Configure Prompt Files 命令,并从快速选择中选择提示文件。

在聊天中使用提示文件

您有多种选项可以运行提示文件

  • 在聊天视图中,在聊天输入字段中键入 /,然后是提示文件名。

    此选项使您可以在聊天输入字段中传递附加信息。例如,/create-react-form/create-react-form: formName=MyForm

  • 从命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P)运行 Chat: Run Prompt 命令,并从快速选择中选择一个提示文件。

  • 在编辑器中打开提示文件,然后按编辑器标题区域中的播放按钮。您可以选择在当前聊天会话中运行提示或打开新的聊天会话。

    此选项对于快速测试和迭代提示文件非常有用。

在设备之间同步用户提示文件

VS Code 可以使用 设置同步 在多个设备之间同步您的用户提示文件。

要同步您的用户提示文件,请为提示和指令文件启用设置同步

  1. 确保已启用 设置同步

  2. 从命令面板(⇧⌘P(Windows、Linux Ctrl+Shift+P)运行 Settings Sync: Configure

  3. 从要同步的设置列表中选择 Prompts and Instructions

定义提示文件的技巧

  • 清楚地描述提示应该完成什么以及期望的输出格式。

  • 提供预期输入和输出的示例,以指导 AI 的响应。

  • 使用 Markdown 链接引用自定义指令,而不是在每个提示中重复指南。

  • 利用内置变量(如 ${selection})和输入变量,使提示更灵活。

  • 使用编辑器播放按钮测试您的提示并根据结果进行完善。

© . This site is unofficial and not affiliated with Microsoft.