现已发布!阅读关于 11 月新增功能和修复的内容。

管理人机智能上下文

通过提供正确的上下文,您可以从 VS Code 中的 AI 获得更相关和准确的响应。在本文中,您将了解如何管理聊天中的上下文,包括如何使用 #-提及来引用文件、文件夹和符号,如何引用网页内容,或者如何使用自定义指令来指导 AI 的响应。

工作区索引

VS Code 使用索引来快速准确地搜索您的代码库中相关的代码片段。此索引可以由 GitHub 维护,也可以本地存储在您的计算机上。

可用的工作区索引选项如下

  • 远程索引:如果您的代码托管在 GitHub 存储库中,您可以构建远程索引来快速搜索您的代码库,即使对于大型代码库也是如此。
  • 本地索引:使用存储在本地计算机上的高级语义索引,为您的代码库提供快速准确的搜索结果。
  • 基本索引:如果本地索引不可用,您可以使用经过优化以在本地适用于大型代码库的简单算法。

了解有关工作区索引的更多信息。

隐式上下文

VS Code 会根据您当前的活动自动为聊天提示提供上下文。以下信息隐式包含在聊天上下文中

  • 活动编辑器中当前选定的文本。
  • 活动编辑器的文件名或笔记本名称。
  • 如果您使用“询问”或“编辑”,则活动文件会自动包含为上下文。
  • 使用代理时,代理会根据您的提示自主决定是否需要将活动文件添加到聊天上下文中。

Screenshot of the Chat view, showing the active file as a suggested context item in the chat input box.

#-提及

您可以通过键入 # 后跟要提及的上下文项来显式地向提示添加上下文。VS Code 支持不同类型的上下文项:文件、文件夹、代码符号、工具、终端输出、源代码控制更改等等。

在聊天输入字段中键入 # 符号以查看可用上下文项的列表,或者在聊天视图中选择添加上下文以打开上下文选择器。

Screenshot of VS Code Chat view, showing the chat variable picker.

查看支持的上下文项的完整列表。

添加文件作为上下文

要提供特定的文件、文件夹或符号作为上下文,请使用以下方法将它们添加到聊天中

  • 在聊天消息中通过键入 # 后跟文件、文件夹或符号的名称来 #-提及文件、文件夹或符号。要引用符号,请确保首先在编辑器中打开包含该符号的文件。

  • 将文件或文件夹从资源管理器视图、搜索视图或编辑器选项卡拖放到聊天视图中以将其添加为上下文。

  • 在聊天视图中选择添加上下文,然后从快速选择中选择文件和文件夹符号

注意

如果可能,当您附加文件时,将包含文件的全部内容。如果内容太大而无法放入上下文窗口,则将包含文件的大纲,其中包含函数及其描述,但不包含实现。如果大纲也太大,则该文件将不作为提示的一部分。

您可以让 VS Code 自动从您的代码库中找到正确的文件,而不是手动添加单个文件。当您不知道哪些文件与您的问题相关时,这会很有用。

在提示中添加 #codebase 或选择添加上下文 > 工具 > codebase以启用工作区的代码搜索。

以下提示示例展示了如何使用代码库搜索

  • "解释 #codebase 中的身份验证是如何工作的"
  • "数据库连接字符串在哪里配置? #codebase"
  • "添加一个新的 API 路由以更新地址 #codebase"

如果您使用代理,当代理确定需要额外的上下文来回答您的问题时,它会自动使用代码库搜索。如果您的问题可能以不同的方式解释,并且您想确保代理使用代码库搜索,您仍然可以添加 #codebase

引用网页内容

您可以在聊天提示中引用网页内容,例如获取最新的 API 参考或代码示例。

  • #fetch <URL>

    使用 fetch 工具从特定网页检索内容。要使用此工具,请键入 #fetch,后跟您要引用的页面的 URL。

    fetch 工具会缓存网页内容有限的时间以提高性能。如果页面内容发生更改,您可以通过重新启动 VS Code 来强制刷新。如果无法访问该页面,缓存将在短时间内(大约五分钟)过期。

    VS Code 会提示您确认后才能访问外部 URL,以保护您的隐私和安全。了解有关配置 URL 自动批准的更多信息。

    使用 fetch 工具的提示示例

    • "VS Code 1.100 的亮点是什么 #fetch https://vscode.js.cn/updates/v1_100"
    • "将 asp.net 应用程序更新到 .net 9 #fetch https://learn.microsoft.com/en-us/aspnet/core/migration/80-90"
  • #githubRepo <repo name>

    使用 githubRepo 工具在 GitHub 存储库中执行代码搜索。键入 #githubRepo,后跟存储库名称。

    使用 githubRepo 工具的提示示例

    • "next.js 中的路由是如何工作的 #githubRepo vercel/next.js"
    • "执行代码审查以验证它与 #githubRepo microsoft/typescript 一致"

引用工具

使用代理时,代理会自主决定使用工具来执行特定任务。如果您想在聊天提示中显式引用工具,可以使用 #-提及。键入 #,后跟工具名称和可选参数

  • "总结 #fetch https://vscode.js.cn/updates"
  • "路由是如何工作的? #githubRepo vercel/next.js"
  • "我的未解决问题是什么 #github-mcp"(使用 GitHub MCP 服务器中的工具)

如果您按名称引用工具集或 MCP 服务器,则该集或服务器中的所有工具都可用于当前提示的代理。

了解有关在聊天中添加和使用工具的更多信息。

@-提及

聊天参与者是专门的助手,使您能够在聊天中提出特定领域的问题。想象一下聊天参与者是一位领域专家,您将聊天请求交给它,它会处理其余的事情。

聊天参与者不同于作为代理流程的一部分调用的工具,用于贡献和执行特定任务。

您可以通过 @-提及聊天参与者来调用它:键入 @,后跟参与者名称。VS Code 有几个内置的聊天参与者,如 @vscode@terminal@workspace。它们经过优化,可以回答有关各自领域的问题。

以下示例展示了如何在聊天提示中使用 @-提及

  • "@vscode 如何启用自动换行"
  • "@terminal 当前目录中最大的 5 个文件是什么"

在聊天输入字段中键入 @ 以查看可用聊天参与者的列表。

扩展还可以贡献自己的聊天参与者

视觉

聊天支持视觉功能,这意味着您可以将图像作为上下文附加到聊天提示中,并询问有关它的问题。例如,附加一段代码的屏幕截图并要求解释它,或者附加 UI 的草图并要求代理实现它。

提示

您可以将图像从网页浏览器拖放到聊天视图中以将其添加为上下文。

添加浏览器元素(实验性)

VS Code 有一个内置浏览器,您可以使用它来预览和与 VS Code 内的网页交互,例如对 Web 应用程序进行快速测试和调试。

您可以将简单浏览器窗口中的元素作为上下文添加到聊天提示中。当您想获得网页特定部分(例如 HTML 元素、CSS 样式或 JavaScript 代码)的帮助时,这非常有用。

要将简单浏览器中的元素添加到聊天提示中

  1. 使用 chat.sendElementsToChat.enabled 设置启用简单浏览器中的选择。

  2. 启动您的 Web 应用程序。

  3. 通过从命令面板运行简单浏览器:显示命令打开简单浏览器视图。

  4. 选择开始按钮以开始从当前页面选择元素。

  5. 将鼠标悬停在网页元素上并单击以将其添加到聊天提示中。

    请注意,选定的元素将作为上下文添加到当前聊天提示中。

您可以配置上下文中包含哪些信息

提示

此功能也可在 Live Preview 扩展程序(预发布)中使用。

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