在 VS Code 中使用提示词文件

提示词文件(也称为斜杠命令)允许您将常见任务编码为独立的 Markdown 文件,从而简化提示流程,并可以直接在聊天中调用。每个提示词文件都包含特定于任务的上下文以及关于如何执行该任务的指南。

与自动应用的自定义指令不同,您需要在聊天中手动调用提示词文件。

使用提示词文件的场景

  • 简化常见任务的提示词,例如构建新组件、运行和修复测试或准备拉取请求
  • 覆盖自定义代理的默认行为,例如创建最小化实施计划或为 API 调用生成模型(mockup)
提示

提示词文件、代理还是技能?对于轻量级的单任务提示词,请使用提示词文件。当您需要具有自己的工具限制和交接功能的持久角色时,请使用自定义代理。当您需要具备脚本和资源的可移植的多文件功能时,请使用代理技能

提示

使用 聊天自定义编辑器(预览版)在一个地方发现、创建和管理所有聊天自定义项。从命令面板运行 Chat: Open Chat Customizations(聊天:打开聊天自定义项)。

提示词文件位置

您可以为特定工作区定义提示词文件,也可以在用户级别定义,使其在所有工作区中可用。下表列出了根据其作用域划分的提示词文件的默认文件位置。您可以通过 chat.promptFilesLocations 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来配置更多文件位置。

范围 默认文件位置
工作区 .github/prompts 文件夹
用户配置文件 您的用户数据(特定于您的 VS Code 配置文件)

要在用户数据中创建提示词文件,请使用“聊天自定义”编辑器或使用 Chat: New Prompt File(聊天:新建提示词文件) 命令。

提示

在 monorepo(单体仓库)中,启用 chat.useCustomizationsInParentRepositories 在 VS Code 中打开 在 VS Code Insiders 中打开 以从父仓库根目录发现提示词文件。了解更多关于父仓库发现的信息。

提示词文件格式

提示词文件是扩展名为 .prompt.md 的 Markdown 文件。可选的 YAML 元数据头(frontmatter)用于配置提示词的行为。

字段 必需 描述
描述 提示词的简短描述。
name 提示词的名称,在聊天中输入 / 后使用。如果未指定,则使用文件名。
argument-hint 在聊天输入框中显示的提示文字,用于引导用户如何与该提示词交互。
agent(代理) 用于运行提示词的代理:askagentplan,或某个自定义代理的名称。默认使用当前代理。如果指定了工具,则默认代理为 agent
model(模型) 运行提示词时使用的语言模型。如果未指定,则使用模型选择器中当前选定的模型。
tools 可用于此提示词的工具或工具集名称列表。可以包括内置工具、工具集、MCP 工具或由扩展提供的工具。要包含 MCP 服务器的所有工具,请使用 <server name>/* 格式。
了解更多关于聊天中的工具的信息。
注意

如果某个给定工具在运行提示词时不可用,它将被忽略。

正文包含 Markdown 格式的提示词文本。提供具体的指令、指南或您希望 AI 遵循的任何其他相关信息。

您可以使用 Markdown 链接引用其他工作区文件。使用相对路径引用这些文件,并确保路径基于提示词文件的位置是正确的。

要在正文中引用代理工具,请使用 #tool:<tool-name> 语法。例如,要引用 browser 工具,请使用 #tool:browser

提示

如果您希望用户提供额外信息,可以使用 vscode/askQuestion 工具。您还可以使用类似 ${input:variableName}${input:variableName:placeholder} 的语法。大多数语言模型都能理解这种语法并会提示用户进行输入。

以下示例演示了如何使用提示词文件。有关社区贡献的更多示例,请查看 Awesome Copilot 仓库

示例:生成 React 表单组件
---
agent: 'agent'
model: GPT-4o
tools: ['search/codebase', 'vscode/askQuestions']
description: 'Generate a new React form component'
---
Your goal is to generate a new React form component based on the templates in the Github repo contoso/react-templates.

Use the #tool:vscode/askQuestions to 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 的安全审查
---
agent: '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.

创建提示词文件

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

创建提示词文件的步骤

提示

在聊天输入框中输入 /prompts,快速打开 Configure Prompt Files(配置提示词文件) 菜单。

  1. 在聊天视图中,选择 Configure Chat(配置聊天)(齿轮图标)以打开“聊天自定义”编辑器,然后选择 Prompts(提示词) 选项卡。

  2. 从下拉菜单中选择 New Prompt (Workspace)(新建提示词 - 工作区)New Prompt (User)(新建提示词 - 用户),具体取决于您希望存储提示词文件的位置。

    Screenshot of the Chat Customizations editor, showing the Prompts tab and the dropdown to create a new prompt file.

    或者,使用命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的 Chat: New Prompt File(聊天:新建提示词文件)Chat: New Untitled Prompt File(聊天:新建无标题提示词文件) 命令。

  3. 选择位置并输入文件名。这就是您在聊天中输入 / 时显示的默认名称。

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

    • 填写文件顶部的 YAML 元数据头,以配置提示词的描述、代理、工具和其他设置。
    • 在文件正文中添加提示词指令。

您可以通过在“聊天自定义”编辑器中打开现有提示词文件来对其进行修改。

使用 AI 生成提示词文件

您可以使用 AI 根据任务描述生成提示词文件。在聊天中输入 /create-prompt 并描述您想要自动化的任务(例如,“用于生成单元测试的提示词”)。代理会提出澄清问题,生成带有适当元数据头和指令的 .prompt.md 文件,并让您选择工作区存储还是用户存储。

您还可以从正在进行的对话中提取可重用的提示词。例如,在多轮聊天会话后,询问“turn this into a reusable prompt(将此转化为可重用的提示词)”或“save this workflow as a prompt(将此工作流保存为提示词)”,代理会创建一个捕获该工作流的提示词文件。

您还可以通过在“聊天自定义”编辑器中从下拉菜单中选择 Generate Prompt(生成提示词) 来生成提示词文件。

在聊天中使用提示词文件

运行提示词文件有多种选择

  • 在聊天视图中,在聊天输入框内输入 / 后跟提示词名称。代理技能也会作为斜杠命令与提示词文件一起显示。

    您可以在聊天输入框中添加额外信息。例如,/create-react-form formName=MyForm/create-api for listing customers

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

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

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

提示

使用 chat.promptFilesRecommendations 在 VS Code 中打开 在 VS Code Insiders 中打开 设置,在开始新聊天会话时将提示词显示为推荐操作。

Screenshot showing a "explain" prompt file recommendation in the Chat view.

工具列表优先级

您可以使用 tools 元数据字段为自定义代理和提示词文件指定可用工具列表。提示词文件还可以通过使用 agent 元数据字段引用自定义代理。

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

  1. 提示词文件中指定的工具(如果有)
  2. 提示词文件中所引用自定义代理的工具(如果有)
  3. 所选代理的默认工具(如果有)

跨设备同步用户提示词文件

VS Code 可以通过使用设置同步功能在多个设备间同步您的用户提示词文件。

要同步您的用户提示词文件,请启用设置同步,并从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))运行 Settings Sync: Configure(设置同步:配置)。从要同步的设置列表中选择 Prompts and Instructions(提示词和指令)

编写有效提示词的技巧

  • 清晰描述提示词应完成的任务以及预期的输出格式。

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

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

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

  • 使用编辑器的播放按钮来测试您的提示词,并根据结果进行优化。

常见问题

如何知道提示词文件来自哪里?

提示词文件可以来自不同的来源:内置的、用户在配置文件中定义的、当前工作区中定义的工作区提示词,或扩展贡献的提示词。

识别提示词文件来源的步骤

  1. 从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中选择 Chat: Configure Prompt Files(聊天:配置提示词文件)
  2. 将鼠标悬停在列表中的提示词文件上。源位置将显示在工具提示中。
提示

使用聊天自定义诊断视图查看所有已加载的提示词文件及任何错误。在聊天视图中右键点击并选择 Diagnostics(诊断)。了解更多关于在 VS Code 中排查 AI 问题的信息。

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