管理聊天会话
在 Visual Studio Code 中使用聊天功能进行基于对话的 AI 交互。聊天会话包含您与 AI 之间的一系列提示词和回复,以及来自您的代码或文件的任何相关上下文。本文介绍了如何创建和管理聊天会话、使用会话列表以及组织您的会话。
什么是聊天会话?
聊天会话是与 AI 的单次对话,包括所有提示词、回复和上下文。每个会话都是独立的,因此一个会话中的上下文不会延续到另一个会话中。
关于聊天会话的关键知识点
- 上下文窗口:聊天时,会话会积累上下文。创建新会话会清除历史记录并启动一个新的上下文窗口。您可以在聊天输入框中监控上下文窗口的使用情况。
- 检查点:您可以随时回滚到以前的状态或编辑之前的提示词以改变方向。了解有关检查点的更多信息。
- 代理类型:会话可以在本地、后台或云端运行。了解有关代理类型的更多信息。
- 多个会话:您可以并行运行多个会话,每个会话专注于不同的任务。使用会话列表来监控正在进行的会话并在它们之间切换。
- 会话洞察:查询您的会话历史记录以生成站会报告、获取建议并搜索过去的工作。了解有关会话洞察的更多信息。
当您想要更改主题以帮助 AI 提供更相关的回复时,请开启新的聊天会话。
开始新的聊天会话
当您开始新的聊天会话时,您将与 AI 开始一次新的对话。每个会话都有自己的上下文窗口,并且可以使用不同的代理类型和权限级别运行。您可以并行运行多个会话,每个会话专注于不同的任务或主题。使用会话列表来监控和切换您的活动会话。
要开始新的聊天会话
-
使用“聊天”视图中的新建聊天 (+) 按钮,或使用快捷键 ⌘N (Windows, Linux Ctrl+N)。

-
使用代理目标 (Agent Target) 下拉菜单选择你希望代理运行的位置。例如,选择本地 (Local) 以在编辑器中交互式运行代理,并完全访问你的工作区、工具和模型。
-
从代理下拉菜单中选择一个代理,为会话选择角色或人设。例如,选择计划 (Plan),让代理在编写任何代码之前创建一个结构化的实现计划。您可以在会话期间随时切换代理。
-
(可选)从权限下拉菜单中选择一个权限级别,以控制代理对工具批准的自主程度。
-
在聊天输入框中输入您的提示词,然后按 Enter 提交。
在代理概述中了解有关代理目标、代理和权限级别的更多信息。
在何处打开聊天会话
根据您的工作习惯,您可以在不同的视图中打开聊天会话。
-
侧边栏(默认):选择新建聊天 (+) > 新建聊天,或运行聊天: 新建聊天命令。最适合在编写代码时保持聊天窗口可见。

-
编辑器标签页:选择新建聊天 (+) > 新建聊天编辑器,或运行聊天: 新建聊天编辑器命令。最适合为聊天提供更多空间或并排比较会话。

-
独立窗口:选择新建聊天 (+) > 新建聊天窗口,或运行聊天: 新建聊天窗口命令。最适合多显示器设置。

-
最大化:在“聊天”视图标题栏中选择最大化按钮,或运行视图: 切换最大化面板命令。聊天窗口将占据整个编辑器区域,从而获得最大空间。再次选择该按钮可恢复之前的布局。
-
代理窗口:一个专门的窗口,其中代理是主要体验。最适合以代理为中心的工作流,您可以在其中专注于描述任务并跨多个项目编排代理。选择标题栏中的在代理中打开按钮,运行聊天: 打开代理窗口命令,或从命令行使用
code --agents。了解有关代理窗口的更多信息。
您可以随时在视图之间移动聊天会话。在“聊天”视图、编辑器标签页或聊天窗口中选择 ... 菜单,然后选择移动聊天到...选项之一。或者,从命令面板中使用相应的聊天: 移动聊天命令。
会话列表
“聊天”视图为您提供了一个统一的界面来管理所有会话,无论它们在哪里运行。它显示您的会话及其状态、类型和文件更改信息。
使用查找和筛选选项来查找特定会话。您还可以固定重要的会话,使其保持在列表顶部以便快速访问。将鼠标悬停在会话上并选择固定图标以固定或取消固定它。
会话列表的作用域仅限于您的工作区。如果您没有打开工作区,列表将显示跨工作区的所有会话。会话按时间段分组,例如今天或上周。

右键单击列表中的会话以查看其他操作,例如打开会话详情的不同选项、存档会话,或针对特定代理类型的操作(例如签出拉取请求,适用于云代理会话)。
要从“聊天”视图中隐藏会话列表,请在空白聊天区域右键单击并取消选择显示会话 ( chat.viewSessions.enabled )。
“聊天”视图有两种操作模式:紧凑模式和并排模式。您可以使用“聊天”视图右上角的切换控件在紧凑模式和并排模式之间手动切换。
-
紧凑模式:
在紧凑视图中,会话列表嵌入在“聊天”视图内。当您从列表中选择一个会话时,“聊天”视图将切换到该会话。使用返回按钮返回会话列表。

-
并排模式
在并排视图中,会话列表与“聊天”视图并排显示。从列表中选择一个会话,即可在“聊天”视图中查看其详细信息。

当您加宽“聊天”视图时,它会自动切换到并排模式。右键单击会话列表并选择会话方向以更改此行为 ( chat.viewSessions.orientation )。您也可以使用切换按钮。
扩展开发人员可以通过使用建议的 API chatSessionsProvider 了解如何与会话视图集成,详见 GitHub。该 API 目前处于建议状态,可能会有变动。
会话状态指示器(实验性功能)
会话状态指示器提供了直接从标题栏命令中心快速访问会话的方法。指示器显示未读消息和正在进行中会话的视觉徽章,因此您无需切换视图即可及时了解 AI 的活动。

指示器显示
- 未读会话徽章:显示有新消息的聊天会话数量。选择徽章可筛选会话列表,仅显示未读会话。
- 进行中会话徽章:显示有正在运行的代理的会话数量。选择徽章可筛选会话列表,仅显示进行中的会话。
- 闪烁图标:提供对聊天和会话管理选项的快速访问。
您可以使用 chat.agentsControl.enabled 设置来配置状态指示器的可见性。
在欢迎页面上查看会话
VS Code 欢迎页面可以作为您处理聊天会话的启动体验。它提供了对您近期聊天会话的快速访问、用于启动新任务的嵌入式聊天小部件,以及针对常用任务的快速操作。
要将 VS Code 欢迎页面配置为您的启动体验,请将 workbench.startupEditor 设置为 agentSessionsWelcomePage。
存档会话
为了保持会话列表井然有序,请存档已完成或非活动的会话。存档会话不会将其删除,但会将其从活动会话列表中移除。您可以随时取消存档会话,将其恢复到活动会话列表中。
要存档会话,请将鼠标悬停在会话列表中的会话上并选择存档。存档会话后,它会从列表中消失。反之,您也可以用同样的方式取消存档。

要查看已存档的会话,请使用会话列表中的筛选选项并选择已存档筛选器。
删除会话
要永久删除会话,请右键单击会话列表中的会话并选择删除。删除会话是永久性的,且无法撤销。对于 Copilot CLI 会话,删除会话还会删除为该会话创建的任何相关工作树 (worktrees)。
如果多个 Copilot CLI 会话共享同一个工作树(例如在您复刻会话之后),删除其中一个会话不会在其他会话仍在使用该工作树时将其移除。只有在最后一个关联会话被删除或存档后,工作树才会被移除。
删除会话是不可逆的。如果您只是想隐藏会话,请考虑改为存档它。
在请求运行时发送消息
您不必等待回复完成即可发送下一条消息。当请求正在进行时,发送按钮会变为一个下拉菜单,为您提供三种处理新消息的选项。

- 添加到队列:您的消息将等待,并在当前回复完成后自动发送。当前的回复会不受干扰地完成。
- 通过消息引导:向当前请求发出信号,在完成当前工具执行后让步。当前回复将停止,您的新消息将立即处理。当代理方向错误时,使用此功能重定向它。
- 停止并发送:完全取消当前请求并立即发送您的新消息。
发送按钮的默认操作是可配置的。使用 chat.requestQueuing.defaultAction 将其设置为 steer(默认)或 queue。
重新排序待处理消息
当您有多条待处理消息(已入队或引导中)时,您可以拖放它们来更改处理顺序。当有多条相同类型的消息处于待处理状态时,悬停时会出现拖动手柄。

派生聊天会话
复刻 (Fork) 聊天会话会创建一个新的、独立的会话,它继承自原始会话的对话历史。复刻后的会话与原始会话完全分离,因此一个会话中的更改不会影响另一个。新会话标题的前缀为“Forked:”,以便您识别。
对于使用工作树隔离的 Copilot CLI 会话,复刻后的会话将继续使用与原始会话相同的工作树。
当您想探索替代方案、提出侧面问题或在不丢失原始上下文的情况下将冗长的对话引向不同方向时,复刻非常有用。
复刻聊天会话有两种方式
-
复刻整个会话:在聊天输入框中输入
/fork并按 Enter。一个新的会话将打开,并复制当前会话的完整对话历史记录。 -
从检查点复刻:将鼠标悬停在对话中的聊天请求上,然后选择复刻对话按钮。一个新的会话将打开,其中仅包含直到该检查点(含)为止的请求。

接收聊天回复通知
当您在其他窗口或应用程序中工作时,VS Code 可以向您发送操作系统通知,告知您重要的聊天事件,因此您无需一直查看。
使用 chat.notifyWindowOnResponseReceived 配置在收到聊天回复时何时接收操作系统通知。通知包含回复预览,选择它可以使焦点切换到聊天会话。
使用 chat.notifyWindowOnConfirmation 配置在代理需要您的输入或确认才能继续时,何时接收操作系统通知。
这两个设置都有三个可选值
off:从不显示通知windowNotFocused(默认):仅当 VS Code 窗口未获得焦点时显示通知always:即使 VS Code 窗口获得焦点,也显示通知
如果您想在处理 VS Code 的其他部分(例如在后台运行长时间的代理任务)时随时了解聊天活动,请将值设置为 always。
在聊天会话的提示词之间导航
使用以下键盘快捷键在聊天会话中的提示词之间导航
- ⌥⌘↑ (Windows, Linux Ctrl+Alt+Up):转到聊天会话中的上一个提示词。
- ⌥⌘↓ (Windows, Linux Ctrl+Alt+Down):转到聊天会话中的下一个提示词。
- ⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp):转到聊天会话中的上一个代码块。
- ⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown):转到聊天会话中的下一个代码块。
保存和导出聊天会话
您可以保存聊天会话,以保留重要的对话或在以后用于类似任务时重复使用。
将聊天会话导出为 JSON 文件
您可以导出聊天会话以供日后参考或与他人共享。导出聊天会话会创建一个包含会话中所有提示词和回复的 JSON 文件。
要导出聊天会话
-
在“聊天”视图中打开您要导出的聊天会话。
-
从命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 运行聊天: 导出聊天...命令。
-
选择保存 JSON 文件的位置。
将聊天会话保存为可重用的提示词
您可以将会话保存为可重用的提示词,以便在类似任务中重复使用。
要将聊天会话保存为可重用的提示词
-
在“聊天”视图中打开您要保存的聊天会话。
-
在聊天输入框中输入
/savePrompt并按Enter。该命令将创建一个
.prompt.md文件,这是一个可重用的提示词文件,它将您当前的聊天对话概括为一个带有占位符的模板。您可以使用提示词文件跨不同的项目或代码库执行相同类型的任务。 -
根据需要查看和编辑生成的提示词文件,然后将其保存到您的工作区。
以 Markdown 格式复制聊天消息
“聊天”视图支持以 Markdown 格式将聊天消息复制到剪贴板,可通过右键单击消息或聊天背景时的上下文菜单进行操作。
-
复制:复制单个提示词或回复到剪贴板 - Markdown 包含回复文本、思考步骤和工具调用。
-
全部复制:以 Markdown 格式复制整个聊天会话,包括所有提示词、回复、思考步骤和工具调用。
-
复制最终回复:仅复制代理回复的 Markdown 部分(最后一次工具调用之后的内容)。这对于在不包含中间步骤的情况下共享或重用最终输出非常有用。