管理人工智能的上下文
通过提供正确的上下文,您可以在 VS Code 中从 AI 获得更相关和准确的响应。在本文中,您将学习如何在聊天中管理上下文,包括如何使用 #-mentions 来引用文件、文件夹和符号,如何引用网页内容,或者如何使用自定义指令来引导 AI 的响应。
工作区索引
VS Code 使用索引快速准确地搜索代码库中的相关代码片段。这个索引可以由 GitHub 维护,或者存储在您机器的本地。
以下工作区索引选项可用:
- 远程索引:如果你的代码托管在 GitHub 仓库中,你可以构建远程索引以快速搜索代码库,即使对于大型代码库也是如此。
- 本地索引:使用存储在您本地机器上的高级语义索引,为您的代码库提供快速和准确的搜索结果。
- 基本索引:如果无法进行本地索引,您可以使用针对大型代码库优化的更简单的算法进行本地工作。
了解更多关于工作区索引的信息。
隐含上下文
VS Code根据您当前的活动自动为聊天提示提供上下文。以下信息隐式包含在聊天上下文中:
- 当前在活动编辑器中选择的文本。
- 当前编辑器的文件名或笔记本名称。
- 如果你使用的是Ask代理,活动文件将自动包含在上下文中。
- 当使用Agent时,它会根据你的提示自主决定是否将活动文件添加到聊天上下文中。

#-提及
您可以通过输入 来明确地为您的提示添加上下文。#接着是您想提到的上下文项。VS Code 支持不同类型的上下文项:文件、文件夹、代码符号、工具、终端输出、源代码控制更改等。
输入:# 在聊天输入框中输入符号以查看可用上下文项目列表,或在聊天视图中选择添加上下文以打开上下文选择器。

查看完整的支持上下文项目列表。
添加文件作为上下文
要提供特定的文件、文件夹或符号作为上下文,请使用以下方法将它们添加到聊天中:
-
- 在聊天消息中通过输入 @ 来提及文件、文件夹或符号
#跟随文件、文件夹或符号的名称。 要引用一个符号,请确保首先在编辑器中打开包含该符号的文件。 -
将文件或文件夹从资源管理器视图、搜索视图或编辑器标签拖放到聊天视图中以将其添加为上下文。
-
选择添加上下文在聊天视图中,并从快速选择中选择文件和文件夹或符号。
如果可能的话,当您附加文件时,文件的全部内容将被包含。如果文件太大无法放入上下文Windows中,将包含文件的大纲,该大纲包括函数及其描述(没有实现)。如果大纲也太大,则文件将不会成为提示的一部分。
进行代码库搜索
与其手动添加单个文件,不如让 VS Code 自动从你的代码库中找到正确的文件。这在你不知道哪些文件与你的问题相关时非常有用。
添加#代码库 在你的提示中或选择 添加上下文 > 工具 > 代码库 以启用你的工作区的代码搜索。
以下提示示例展示了如何使用代码库搜索:
解释#codebase中认证是如何工作的数据库连接字符串在哪里配置? #codebase添加一个用于更新地址的新API路由 #codebase
如果你使用智能体,当智能体认为需要更多上下文来回答你的问题时,它会自动使用代码库搜索。你仍然可以添加#代码库如果你的问题可能有多种解释,并且你想确保代理使用代码库搜索。
参考来自网络的内容
您可以在聊天提示中引用网页内容,例如获取最新的API参考或代码示例。
-
#获取使用
获取从特定网页获取内容的工具。要使用此工具,请输入#获取接着是您要引用的页面的网址。该
获取工具将网页内容缓存一段时间以提高性能。如果页面内容更改,可以重新启动 VS Code 强制刷新。如果无法访问页面,缓存将在较短时间(大约五分钟后)过期。VS Code 在访问外部 URL 之前会提示确认,以保护您的隐私和安全。了解更多关于配置自动批准 URL的信息。
示例提示使用
获取工具:VS Code 1.100 的亮点是什么 #fetch https://code.visualstudio.com/updates/v1_100更新asp.net应用程序到.net 9 #fetch https://learn.microsoft.com/en-us/aspnet/core/migration/80-90
-
#githubRepo <仓库名称>使用
github 仓库在 GitHub 仓库中执行代码搜索的工具。输入#github库跟随仓库名称。示例提示使用
github 仓库工具:如何在 next.js 中进行路由工作 #githubRepo vercel/next.js执行代码审查,以验证其与 #githubRepo microsoft/typescript 一致。
参考工具
在使用智能体时,智能体自主决定使用工具来执行特定任务。如果你希望在聊天提示中明确引用一个工具,可以使用 #-mentions。输入#接着是工具名称和可选参数:
总结 #fetch https://code.visualstudio.com/updates“路由是如何工作的?#githubRepo vercel/next.js”“我的未解决问题 #github-mcp”(使用来自 GitHub MCP 服务器的工具)
如果您通过名称引用工具集或MCP服务器,那么该集合或服务器中的所有工具将对当前提示的代理可用。
了解更多关于在聊天中添加和使用工具的信息。
@-提及
聊天参与者是专门的助手,使您能够在聊天中提出特定领域的提问。想象一下,聊天参与者就像一个领域的专家,您将聊天请求交给他们,他们会处理其余的事情。
聊天参与者与工具不同,这些工具作为代理流程的一部分被调用以贡献和执行特定任务。
你可以通过 @-提及来召唤聊天参与者:输入@跟随参与者名称。VS Code 有多个内置聊天参与者,例如@vscode,@终端,或@工作区它们被优化为回答各自领域的问题。
以下示例展示了如何在聊天提示中使用@-提及:
"@vscode 如何启用自动换行""@terminal 当前目录下最大的前5个文件是什么"
类型@在聊天输入字段中查看可用的聊天参与者列表。
扩展程序还可以贡献自己的聊天参与者。
视觉(预览)
Chat 支持视觉功能,这意味着您可以将图像作为上下文附加到聊天提示中,并对其提问。例如,附加一段代码的截图并询问其含义,或者附加一个用户界面的草图并要求代理实现它。
您可以将网页浏览器中的图像拖放到聊天视图中以添加上下文。
添加浏览器元素(实验性)
VS Code 内置了一个集成浏览器,您可以在 VS Code 内预览和与网页互动,例如快速测试和调试您的网页应用程序。
您可以将浏览器Windows中的元素添加到聊天提示的上下文中。这在您需要获取网页特定部分的帮助时非常有用,例如 HTML 元素、CSS 样式或 JavaScript 代码。
要将集成浏览器中的元素添加到聊天提示中:
-
启动你的网络应用程序。
-
通过运行浏览器:打开集成浏览器命令从命令面板中打开集成浏览器。
-
输入您想要互动的网页的URL。
-
选择将元素添加到聊天按钮。现在,您可以悬停在网页元素上并选择它们,将它们作为上下文添加到您的聊天提示中。
您可以配置上下文中包含哪些信息:
- 附加CSS:chat.sendElementsToChat.attachCSS设置
- 附加图片:chat.sendElementsToChat.attachImages设置
监控上下文Windows的使用情况
聊天输入框显示了一个上下文Windows控制,显示了模型上下文Windows的使用情况。这个视觉指示器帮助您了解聊天摘要可能会发生的时间,或者您应该开始新会话的时间。

上下文Windows控制提供以下信息:
- 视觉填充指示器:一个阴影条显示当前上下文Windows的使用比例
- 总使用量和详细信息:将鼠标悬停在控件上,以查看可用上下文的精确代币数量(例如,15K/128K)以及按类别划分的使用情况
随着对话中发送的请求越来越多,控制会更新以反映上下文使用的增加。可用上下文的总量(分母)会根据您选择的AI模型而变化,因为不同的模型具有不同的上下文Windows大小。
当上下文Windows填满时,VS Code 会自动总结对话历史以释放空间。如果你想完全重置上下文,请开始一个新的聊天会话。