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

当您从列表中选择一个会话以打开之前的聊天会话时,该会话中的所有提示、响应和上下文都会在聊天视图中恢复。
详细了解代理和查看和管理代理会话。
保存和导出聊天会话
您可以保存聊天会话以保留重要的对话,或稍后重复使用它们来完成相似的任务。
将聊天会话导出为 JSON 文件
您可以导出聊天会话以供以后参考或与他人共享。导出聊天会话会创建一个包含会话中所有提示和响应的 JSON 文件。
导出聊天会话
-
在聊天视图中打开您想导出的聊天会话。
-
从命令面板(⇧⌘P (Windows、Linux Ctrl+Shift+P))运行 Chat: Export Chat... 命令。
-
选择一个位置保存 JSON 文件。
或者,您可以通过右键单击消息并选择 复制 来将单个提示或响应复制到剪贴板。要以 Markdown 格式复制整个聊天会话,请右键单击聊天视图并选择 全部复制。
将聊天会话保存为可重用提示
您可以将聊天会话保存为可重用提示,以供相似的任务重复使用。
将聊天会话保存为可重用提示
-
在聊天视图中打开您想保存的聊天会话。
-
在聊天输入框中键入
/savePrompt并按Enter。该命令会创建一个
.prompt.md文件,将您当前的聊天对话概括为可重用提示。提示文件会在适当的地方包含占位符。 -
根据需要审阅和编辑生成的提示文件,然后将其保存到您的工作区。
上下文隔离的子代理
子代理使您能够在聊天会话中将任务委派给一个隔离的、自主的代理。子代理独立于主聊天会话运行,并拥有自己的上下文窗口。这对于优化复杂的多步任务(如研究或分析)的上下文管理非常有用。
子代理不会异步或在后台运行,但是,它们会自主运行,无需用户反馈。当子代理完成其任务时,它只会将最终结果返回给主聊天会话,从而使主上下文窗口专注于主要对话。
子代理使用相同的代理,并可以访问主聊天会话可用的相同工具,但不能创建其他子代理。它们还使用与主聊天会话相同的 AI 模型。
调用子代理
在提示中调用子代理
-
在工具选择器中启用
runSubagent工具如果您使用自定义提示文件或自定义代理,请确保在
toolsfrontmatter 属性中指定runSubagent。 -
在聊天提示中,要求使用子代理执行任务。
以下示例说明了如何调用子代理
使用子代理研究 Web 应用程序的最佳身份验证方法。总结发现。运行 #runSubagent 使用只读工具全面研究用户的任务。当您有 80% 的信心获得足够的上下文来起草计划时,停止研究。返回此上下文。
使用自定义代理和子代理(实验性)
默认情况下,子代理继承主聊天会话的代理。您可以将子代理配置为使用不同的内置或自定义代理。例如,如果您想作为开发任务的一部分运行研究任务,您可以在使用研究代理的子代理中启动该研究任务。
使用特定代理运行子代理
-
通过 chat.customAgentInSubagent.enabled 设置启用对子代理中自定义代理的支持
-
确保自定义代理的
infer属性未设置为false,因为这会阻止代理在子代理中使用。 -
提示 AI 有哪些可作为子代理使用的代理。您的自定义代理应列出。
Which subagents can you use? -
提示 AI 使用自定义或内置代理作为子代理。例如
使用研究代理作为子代理,研究此项目的最佳身份验证方法。在子代理中使用计划代理为我的功能创建一个实现计划。然后将计划保存在 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 中继续工作。
-
交互式代理会话:使用本地代理会话执行需要实时输入和反馈的交互式任务。