管理人工智能的上下文
通过提供正确的上下文,您可以从 VS Code 中的 AI 获取更相关、更准确的响应。在本文中,您将了解如何管理聊天中的上下文,包括如何使用 #-mentions 来引用文件、文件夹和符号,如何引用网络内容,或者如何使用自定义说明来引导 AI 的响应。
有关什么是上下文以及 VS Code 如何构建它的背景信息,请参阅 上下文概念。
#-mentions
您可以通过键入 # 后跟要提及的上下文项目,显式地将上下文添加到您的提示中。VS Code 支持不同类型的上下文项目:文件、文件夹、代码符号、工具、终端输出、源代码控制变更等。
在聊天输入框中键入 # 符号以查看可用上下文项目的列表,或在聊天视图中选择 Add Context(添加上下文) 以打开上下文选择器。

查看支持的上下文项目的完整列表。
添加文件作为上下文
默认情况下,VS Code 使用工作区索引根据对话自动包含相关文件作为上下文。但是,您也可以使用 #-mentions 或上下文选择器显式地添加特定文件、文件夹或符号作为上下文。当问题模棱两可,可能被视为关于编码实践的一般性问题,且您希望确保 AI 在响应时考虑代码库的特定部分时,这非常有用。
要提供特定文件、文件夹或符号作为上下文,请使用以下方法将它们添加到聊天中
-
在聊天消息中 #-mention 文件、文件夹或符号,方法是键入
#后跟文件、文件夹或符号的名称。要引用符号,请确保先在编辑器中打开包含该符号的文件。 -
将文件或文件夹从资源管理器视图、搜索视图或编辑器选项卡拖放到聊天视图中,以将它们添加为上下文。
-
在聊天视图中选择 Add Context(添加上下文),然后从快速选择中选择 Files & Folders(文件和文件夹) 或 Symbols(符号)。
要显式告知 AI 您希望使用整个代码库作为上下文,可以在提示中添加 #codebase。
引用网络内容
您可以在聊天提示中引用网络内容,例如获取最新的 API 参考或代码示例。
您可以直接在提示中包含 URL 以获取该网页的信息,或者使用 #fetch 工具来指明您想要检索网络内容。例如:
“What are the highlights of the latest VS Code release #fetch”(最新 VS Code 版本的亮点是什么 #fetch)“Update the asp.net app to .net 9 #fetch https://learn.microsoft.com/en-us/aspnet/core/migration/80-90”(将 asp.net 应用程序更新到 .net 9 #fetch [URL])
VS Code 会在短时间内缓存网页内容以提高性能。如果页面内容发生变化,您可以通过重启 VS Code 强制刷新。如果无法访问该页面,缓存将在短时间(约五分钟)后过期。
VS Code 在访问外部 URL 前会要求确认,以保护您的隐私和安全。了解更多关于配置 URL 自动批准的信息。
了解更多关于在聊天中添加和使用工具的信息。
@-mentions
聊天参与者是专门的助手,使您能够在聊天中提出特定领域的问题。您可以将聊天参与者想象成一位领域专家,您可以将聊天请求移交给它,剩下的工作由它来处理。
聊天参与者与作为代理流程的一部分被调用以贡献和执行特定任务的工具不同。
您可以通过 @-mention 调用聊天参与者:键入 @ 后跟参与者名称。VS Code 内置了聊天参与者,如 @vscode 或 @terminal。它们经过优化,可以回答关于各自领域的问题。
以下示例展示了如何在聊天提示中使用 @-mentions
“@vscode how to enable word wrapping”(@vscode 如何启用自动换行)“@terminal what are the top 5 largest files in the current directory”(@terminal 当前目录中最大的 5 个文件是什么)
在聊天输入框中键入 @ 以查看可用聊天参与者的列表。
扩展程序也可以贡献它们自己的聊天参与者。
视觉(预览版)
聊天支持视觉功能,这意味着您可以将图像作为上下文附加到聊天提示中,并就其提出问题。例如,附加一段代码的屏幕截图并要求解释它,或者附加 UI 草图并要求代理实现它。
您可以将网页浏览器中的图像拖放到聊天视图中,以将其添加为上下文。
添加浏览器元素(实验性)
VS Code 内置了一个集成浏览器,您可以使用它在 VS Code 内部预览和交互网页,例如对 Web 应用程序进行快速测试和调试。
您可以将浏览器窗口中的元素作为上下文添加到聊天提示中。当您想在网页的特定部分(如 HTML 元素、CSS 样式或 JavaScript 代码)寻求帮助时,这非常有用。
要将集成浏览器中的元素添加到聊天提示中:
-
启动您的 Web 应用程序。
-
通过从命令面板运行 Browser: Open Integrated Browser(浏览器:打开集成浏览器) 命令来打开集成浏览器。
-
输入您要交互的网页的 URL。
-
选择 Add Element to Chat(添加元素到聊天) 按钮。现在,您可以将鼠标悬停在网页元素上并选择它们,将它们作为上下文添加到聊天提示中。
您可以配置哪些信息包含在上下文中
- 附加 CSS: chat.sendElementsToChat.attachCSS 设置
- 附加图像: chat.sendElementsToChat.attachImages 设置
与浏览器页面交互
用于代理的浏览器工具目前处于实验阶段。
代理可以通过使用内置浏览器工具直接读取和交互集成浏览器中的页面。这使代理能够导航到 URL、读取页面内容和控制台错误、截取屏幕、点击元素、输入文本等,而无需外部 MCP 服务器。
要启用浏览器工具,请将 workbench.browser.enableChatTools 设置设为 true。
您还可以与代理共享您已经打开的浏览器页面。在浏览器工具栏中选择 Share with Agent(与代理共享) 按钮,让代理访问您的页面,包括您现有的会话和登录状态。
例如,您可以要求代理打开您的 Web 应用程序,检查布局问题,或验证功能是否正常工作。代理会打开浏览器,与页面交互,并报告其发现。
了解更多关于用于代理的浏览器工具的信息。
监控上下文窗口使用情况
聊天输入框显示一个上下文窗口控件,显示模型上下文窗口的使用情况。此视觉指示器可帮助您了解何时可能发生聊天摘要,或者何时应开始新的会话。

上下文窗口控件提供以下信息:
- 视觉填充指示器:阴影栏显示当前正在使用的上下文窗口比例。
- 悬停时显示总使用量和明细:将鼠标悬停在控件上,可查看精确的 token 计数作为总可用上下文的一部分(例如,15K/128K),以及按类别划分的使用情况明细。
随着您在对话中发送更多请求,控件会更新以反映不断增加的上下文使用量。总可用上下文(分母)会根据您选择的 AI 模型而变化,因为不同模型具有不同的上下文窗口大小。
当上下文窗口填满时,VS Code 会自动压缩对话历史记录以释放空间。
上下文压缩
随着对话的增长,积累的消息和上下文可能会填满模型的上下文窗口。上下文压缩会汇总对话历史记录以释放空间,这样您就可以继续在同一会话中工作,而不会丢失重要细节。
自动压缩
当上下文窗口填满时,VS Code 会通过汇总较早的消息自动压缩对话。这在后台透明地发生,因此您可以继续聊天而不会中断。
手动压缩
您也可以随时手动触发压缩,例如为了重新聚焦对话或减少早期交流中的噪音。手动压缩适用于本地、后台和 Claude 代理会话。
要手动压缩对话,请使用以下方法之一:
-
在聊天输入框中键入
/compact。可选地,在命令后添加自定义说明以引导摘要的生成方式,例如/compact focus on the database schema decisions(/compact 关注数据库架构决策)。 -
选择聊天输入框中的上下文窗口控件,然后选择 Compact Conversation(压缩对话)。
如果您想完全重置上下文,请开始一个新的聊天会话。