管理聊天会话
Visual Studio Code 中的聊天功能提供了与 AI 进行基于聊天的交互。当您探索不同的主题或任务时,创建多个聊天会话,并将每个会话限定在特定的上下文中。VS Code 提供了多种方式来创建和管理聊天会话:在聊天视图中、作为编辑器选项卡或在单独的窗口中。
本文介绍了如何创建和管理聊天会话,以及如何使用聊天会话历史记录来继续以前的对话。
创建新的聊天会话
聊天会话是您与 AI 在单个对话中的交互历史记录,包括该对话中使用的所有提示、响应和上下文。此历史记录为您的后续提示提供了上下文,允许您提出后续问题或完善请求。
根据您的工作流程,选择在聊天视图中、编辑器选项卡中或单独的窗口中创建新的聊天会话。
当您创建新的聊天会话时,对话历史记录和上下文将被清除。当您想要更改主题或避免延续先前请求的上下文时,请开始新的聊天会话。例如,当从调试特定问题切换到询问有关技术概念的一般性问题时,请开始新的会话。
您可以通过使用聊天会话历史记录随时返回到以前的聊天会话。
在聊天视图中打开聊天会话
默认情况下,聊天视图位于 VS Code 的辅助侧边栏中。当您希望将聊天体验打开在侧边,同时主侧边栏仍可用于其他视图(例如资源管理器或源代码管理)时,这很有用。
要开始新的聊天会话并清除对话历史记录
-
打开聊天视图并选择新建聊天(
+)或按⌘N(Windows、Linux Ctrl+N) -
使用命令面板中的聊天:新建聊天命令
在编辑器选项卡中打开聊天
您可以将聊天会话作为编辑器选项卡打开,以便在代码文件旁边拥有聊天体验。当您想要同时打开多个聊天会话,或者当您想要将聊天会话与代码文件并排排列时,这很有用。
要直接在编辑器选项卡中打开新的聊天会话
-
打开聊天视图并选择新建聊天(
+)> 新建聊天编辑器 -
使用命令面板中的聊天:新建聊天编辑器命令
要在编辑器选项卡中打开现有的聊天会话
-
选择聊天视图右上角的
...图标,然后选择在编辑器中打开聊天 -
使用命令面板中的聊天:在编辑器中打开聊天命令
在单独的窗口中打开聊天
您可以将聊天会话打开在单独的浮动窗口中。这对于多显示器设置很有用,或者当您想要在主窗口中处理代码时保持聊天会话可见时很有用。要将聊天视图保持在其他窗口的顶部,请启用“始终置顶”模式。
您可以从聊天视图中将现有的聊天会话打开在单独的窗口中,也可以直接在新的窗口中创建新的聊天会话。
要直接在新的窗口中打开新的聊天会话
-
打开聊天视图并选择新建聊天(
+)> 新建聊天窗口 -
使用命令面板中的聊天:新建聊天窗口命令
要在单独的窗口中打开现有的聊天会话
-
选择聊天视图右上角的
...图标,然后选择在新窗口中打开聊天 -
使用命令面板中的聊天:在新窗口中打开聊天命令
聊天会话历史记录
当您创建新的聊天会话时,以前的对话历史记录将被清除。但是,您的所有聊天会话都保存在会话历史记录中,允许您返回到以前的对话并从上次离开的地方继续。当您想要查看过去的交互、引用以前的响应或从较早的会话恢复对话时,这很有用。
默认情况下,当您开始新的聊天会话时,聊天视图会显示您最近的会话,无论它们是在本地运行、在后台运行还是在云中运行。选择显示所有会话以查看完整的会话历史记录,允许您搜索和筛选列表。该列表限定于您当前的工作区。如果您没有打开工作区,则列表会显示您所有工作区中的所有会话。
加宽聊天视图以自动切换到并排模式,或使用聊天视图右上角的切换按钮。

当您从列表中选择一个会话以打开以前的聊天会话时,该会话中的所有提示、响应和上下文都会在聊天视图中恢复。
了解有关代理以及查看和管理代理会话的更多信息。
保存和导出聊天会话
您可以保存聊天会话以保留重要的对话,或稍后将其重用于类似的任务。
将聊天会话导出为 JSON 文件
您可以导出聊天会话以供日后参考或与他人共享。导出聊天会话会创建一个 JSON 文件,其中包含会话中的所有提示和响应。
要导出聊天会话
-
在聊天视图中打开您想要导出的聊天会话。
-
从命令面板运行聊天:导出聊天...命令(⇧⌘P(Windows、Linux Ctrl+Shift+P))。
-
选择保存 JSON 文件的位置。
或者,您可以右键单击消息并选择复制,将单个提示或响应复制到剪贴板。要以 Markdown 格式复制整个聊天会话,请右键单击聊天视图并选择全部复制。
将聊天会话保存为可重用提示
您可以将聊天会话保存为可重用提示,以便重用于类似的任务。
要将聊天会话保存为可重用提示
-
在聊天视图中打开您想要保存的聊天会话。
-
在聊天输入框中键入
/savePrompt并按Enter。该命令会创建一个
.prompt.md文件,将您当前的聊天对话概括为可重用提示。提示文件在适当的地方包含占位符。 -
根据需要查看和编辑生成的提示文件,然后将其保存到您的工作区。
上下文隔离的子代理
子代理使您能够将任务委派给聊天会话中隔离的、自主的代理。子代理独立于主聊天会话运行,并拥有自己的上下文窗口。这对于优化复杂多步骤任务(例如研究或分析)的上下文管理非常有用。
子代理不会异步或在后台运行,但是,它们自主运行而无需暂停等待用户反馈。当子代理完成其任务时,它只会将最终结果返回给主聊天会话,从而使主上下文窗口专注于主要对话。
子代理使用与主聊天会话相同的代理,并可以访问相同的工具,除了创建其他子代理。它们还使用与主聊天会话相同的 AI 模型。
调用子代理
要在提示中调用子代理
-
在工具选择器中启用
runSubagent工具 -
在聊天提示中,请求使用子代理来执行任务。
以下示例说明了如何调用子代理
使用子代理研究 Web 应用程序的最佳身份验证方法。总结研究结果。运行 #runSubagent 使用只读工具全面研究用户的任务。当您有足够的上下文来起草计划的信心达到 80% 时,停止研究。返回此上下文。
将自定义代理与子代理一起使用(实验性)
默认情况下,子代理继承主聊天会话中的代理。您可以配置子代理以使用不同的内置或自定义代理。例如,如果您想将研究任务作为开发任务的一部分运行,您可以在使用研究代理的子代理中启动研究任务。
要使用特定代理运行子代理
-
使用chat.customAgentInSubagent.enabled设置启用对子代理中自定义代理的支持
-
确保自定义代理的
infer属性未设置为false,因为这会阻止代理在子代理中使用。 -
向 AI 提示哪些代理可用于作为子代理。您的自定义代理应该被列出。
Which subagents can you use? -
提示 AI 为子代理使用自定义或内置代理。例如
运行研究代理作为子代理来研究此项目的最佳身份验证方法。在子代理中使用计划代理为 myfeature 创建实施计划。然后将计划保存在 plans/myfeature.plan.md 中
要防止自定义代理用作子代理,请在*.agent.md文件中将元数据属性infer设置为false。
代理会话
代理会话视图目前处于预览阶段。
代理使您能够以异步方式在后台执行 AI 编码任务。这使您可以在代理处理您的请求时继续在 VS Code 中工作。这些代理与 VS Code 中的聊天会话不同,因为代理在后台工作,而聊天会话是交互式的,需要您的实时输入。代理还可以在不同的环境中运行,例如在您的机器上本地运行或在云中远程运行。
OpenAI Codex 代理使您能够使用您的 Copilot Pro+ 订阅进行身份验证和访问 Codex,而无需额外的设置。在 GitHub 文档中获取有关 GitHub Copilot 计费和高级请求的更多信息。
代理会话视图
代理会话视图提供了一个集中位置来管理您的活动聊天会话,包括 VS Code 中的本地会话和由其他环境中的后台代理创建的会话,例如 Copilot 编码代理、GitHub Copilot CLI 或 OpenAI Codex。使用chat.agentSessionsViewLocation设置启用代理会话视图。
代理会话视图目前支持以下编码代理集成:GitHub Copilot 编码代理、GitHub Copilot CLI 和 OpenAI Codex。我们正在努力在未来进一步扩展对更多编码代理的支持。
代理会话视图列出了按来源组织的所有活动聊天会话。该视图分为 VS Code 中的本地聊天会话和编码代理会话。

您可以直接从代理会话视图中通过选择相应部分中的+控件来启动特定代理的新聊天会话。
选择一个聊天会话将其作为聊天编辑器选项卡打开并监控其进度。右键单击会话以获取在新窗口中或在聊天视图中打开它的选项。
代理可能会提供超出标准聊天会话的额外功能,例如取消正在进行的任务、签出或关闭相关的拉取请求,或将其文件更改直接应用于您的工作区。右键单击代理会话视图中的代理会话以查看可用选项。
扩展开发人员可以通过拟议的 API chatSessionsProvider 了解如何与代理会话视图集成。该 API 目前处于拟议状态,可能会发生变化。
将任务委派给代理
要将任务委派给代理,您可以直接从代理会话视图启动会话。如果您已经启动了本地聊天会话,您也可以从该会话将任务委派给 Copilot 编码代理。委派给代理使您可以将复杂或耗时的任务卸载给代理,同时继续工作。
要将任务从本地聊天会话委派给 Copilot 编码代理
-
打开聊天视图或聊天编辑器选项卡。
-
在聊天输入框中键入提示或打开现有的聊天会话。
-
选择委派给代理以将提示发送给编码代理。如果启用了多个代理,请从列表中选择代理。

编码代理会话已创建,并提供了来自本地聊天会话的上下文。
-
在代理会话视图中监控编码代理会话的进度。
在编辑器中,您还可以通过选择 TODO 注释上方的相关代码镜头来委派任务。然后,您可以在代理会话视图中跟踪委派任务的进度。

管理聊天会话的技巧
考虑以下技巧,帮助您有效地使用聊天会话
-
为不同主题开始新会话:开始新的聊天会话以避免延续不相关对话的上下文。这有助于您获得更相关的响应。
-
使用编辑器选项卡进行并排比较:将多个聊天会话作为编辑器选项卡打开,以并排比较不同的方法或解决方案。
-
为多显示器设置使用单独的窗口:在辅助显示器上的单独窗口中打开聊天,以便在主窗口中处理代码时保持可见。
-
使用远程代理进行后台任务:使用远程编码代理在后台执行 AI 任务,同时您继续在 VS Code 中工作。
-
交互式代理会话:使用本地代理会话进行需要实时输入和反馈的交互式任务。