– 代理会话日,2月19日

管理聊天会话

使用 Visual Studio Code 中的聊天功能进行基于对话的 AI 交互。聊天会话包括你和 AI 之间的提示和响应序列,以及来自你的代码或文件的任何相关上下文。本文档介绍了如何创建和管理聊天会话、导出聊天会话以及如何查看聊天会话历史记录。

什么是聊天会话?

聊天会话是你与 AI 的单次对话,包括所有提示、响应和上下文。每个会话都是独立的,因此一个会话中的上下文不会传递到另一个会话中。

关于聊天会话的关键事项

  • 上下文窗口:在聊天过程中,会话会累积上下文。创建新会话会清除历史记录并启动新的上下文窗口。你可以在聊天输入框中 监控上下文窗口的使用情况
  • 检查点:随时可以回滚到先前的状态或编辑先前的提示以改变方向。了解更多关于 检查点的信息。
  • 会话类型:会话可以在本地、后台或云端运行。了解更多关于 代理的信息。
  • 多个会话:无论会话类型如何,你都可以并行运行多个会话,每个会话专注于不同的任务。使用代理会话视图,你可以监控和切换会话。了解更多关于 管理代理会话的信息。
提示

当你想要更改主题以帮助 AI 提供更相关的响应时,请开始新的聊天会话。

开始新的聊天会话

你可以根据自己的工作偏好,在不同的视图中打开聊天会话。随时可以并行运行多个会话,每个会话专注于不同的任务。

要开始新的聊天会话,请在“聊天”视图中使用 新建聊天 (+) 按钮,或使用键盘快捷键 ⌘N (Windows, Linux Ctrl+N)

Screenshot of the New Chat button in the Chat view.

选择在哪里打开会话

  • 侧边栏(默认):选择 新建聊天 (+) > 新建聊天,或运行 聊天:新建聊天 命令。最适合在编写代码的同时使聊天保持可见。

    Screenshot of opening a new chat session in the Chat view in VS Code.

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

    Screenshot of opening a new chat session in an editor tab in VS Code.

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

    Screenshot of opening a new chat session in a separate window in VS Code.

VS Code 还支持不同的会话类型(本地、后台、云端和第三方),这些类型决定了 AI 在哪里运行。了解更多关于 代理类型和会话管理的信息。

将聊天会话移动到不同的视图

你可以随时在视图之间移动现有的聊天会话。完整的对话历史记录和上下文将被保留。

选择“聊天”视图、编辑器选项卡或聊天窗口中的 ... 菜单,然后选择 移动聊天到... 选项之一。

或者,你可以从命令面板中选择以下任何命令

  • 聊天:移动聊天到编辑器区域
  • 聊天:移动聊天到新窗口
  • 聊天:移动聊天到侧边栏

派生聊天会话

派生聊天会话会创建一个新的独立会话,该会话继承原始会话的对话历史记录。派生的会话与原始会话完全分离,因此一个会话中的更改不会影响另一个会话。新的会话标题将以“派生:”为前缀,以帮助你识别它。

派生会话在你想探索替代方法、提出一个相关问题或将长时间对话分叉到不同的方向而不丢失原始上下文时很有用。

有两种方法可以派生聊天会话

  • 派生整个会话:在聊天输入框中键入 /fork 并按 Enter。将打开一个新会话,其中复制了当前会话的完整对话历史记录。

  • 从检查点派生:将鼠标悬停在对话中的聊天请求上,然后选择 派生对话 按钮。将打开一个新会话,其中仅包含直到并包括该检查点的请求。

    Screenshot of the Fork Conversation button in the checkpoint toolbar in the Chat view.

会话历史记录

“聊天”视图显示你最近的和活动的聊天会话,无论它们在哪里运行。当你从列表中选择一个会话时,你可以看到该会话的完整对话历史记录和上下文。在该会话中发送新的提示以继续对话。

你可以同时拥有多个活动会话,并在它们之间切换以比较不同的对话或并行处理多个任务。

Screenshot of an agent session in VS Code showing code changes and chat interaction.

会话列表限定于你当前的工作区。如果你没有打开工作区,则列表将显示你所有工作区中的所有会话。

了解更多关于 查看和管理会话的信息。

VS Code 欢迎页面

VS Code 欢迎页面可以用作你使用聊天会话的启动体验。它提供对你最近的聊天会话的快速访问、用于启动新任务的嵌入式聊天小部件以及用于常见任务的快速操作。

Screenshot of the VS Code welcome page showing recent chat sessions and embedded chat.

要将 VS Code 欢迎页面配置为你的启动体验,请设置

workbench.startupEditor
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
agentSessionsWelcomePage

在请求运行时发送消息

你无需等待响应完成即可发送下一条消息。当请求正在进行时,“发送”按钮会更改为下拉菜单,该菜单为你提供三种处理新消息的选项。

Screenshot of the Send button dropdown menu showing options to queue, steer, or stop and send a new message.

  • 添加到队列:你的消息将等待并在当前响应完成后自动发送。当前响应将不被打断地完成。
  • 使用消息引导:发出信号给当前请求,在完成当前工具执行后放弃。当前响应停止,你的新消息将立即处理。当代理朝着错误的方向前进时,使用此选项进行重定向。
  • 停止并发送:完全取消当前请求并立即发送你的新消息。

“发送”按钮的默认操作是可配置的。使用

chat.requestQueuing.defaultAction
  • 在 VS Code 中打开
  • 在 VS Code Insiders 中打开
将其设置为 steer(默认)或 queue

重新排序待处理的消息

当你拥有多个待处理的消息(排队或引导)时,你可以拖放它们以更改处理顺序。当存在多个相同类型的待处理消息时,悬停时会出现拖动句柄。

Screenshot of pending messages in the chat input box with drag handles to reorder them.

在聊天会话中导航提示

使用以下键盘快捷键在聊天会话中导航提示

  • ⌥⌘↑ (Windows, Linux Ctrl+Alt+Up):转到聊天会话中的上一个提示。
  • ⌥⌘↓ (Windows, Linux Ctrl+Alt+Down):转到聊天会话中的下一个提示。
  • ⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp):转到聊天会话中的上一个代码块。
  • ⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown):转到聊天会话中的下一个代码块。

保存和导出聊天会话

你可以保存聊天会话以保留重要的对话或稍后为类似任务重用它们。

将聊天会话导出为 JSON 文件

你可以导出聊天会话以保存它以供以后参考或与他人共享。导出聊天会话会创建一个包含会话中所有提示和响应的 JSON 文件。

要导出聊天会话

  1. 在“聊天”视图中打开你想要导出的聊天会话。

  2. 从命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 运行 聊天:导出聊天... 命令。

  3. 选择保存 JSON 文件的位置。

或者,你可以通过右键单击消息并选择 复制 来将单个提示或响应复制到剪贴板。要以 Markdown 格式复制整个聊天会话,请右键单击“聊天”视图并选择 全部复制

将聊天会话保存为可重用的提示

你可以将聊天会话保存为 可重用的提示,以便为类似任务重用。

要将聊天会话保存为可重用的提示

  1. 在“聊天”视图中打开你想要保存的聊天会话。

  2. 在聊天输入框中键入 /savePrompt 并按 Enter

    该命令会创建一个 .prompt.md 文件,这是一个可重用的 提示文件,它将你当前的聊天对话概括为一个带有占位符的模板。你可以使用提示文件在不同的项目或代码库中运行相同类型的任务。

  3. 根据需要查看和编辑生成的提示文件,然后将其保存到你的工作区。

管理聊天会话技巧

请考虑以下技巧,以帮助你有效地使用聊天会话

  • 为不同的主题开始新的会话:开始新的聊天会话以避免携带无关对话的上下文。这有助于你获得更相关的响应。

  • 使用编辑器选项卡进行并排比较:将多个聊天会话打开为编辑器选项卡,以便并排比较不同的方法或解决方案。

  • 在多显示器设置中使用单独窗口:在辅助显示器上以单独窗口打开聊天,以便在主窗口中编写代码时使其可见。

  • 使用远程代理进行后台任务:使用远程编码代理在后台执行 AI 任务,同时你继续在 VS Code 中工作。

  • 交互式代理会话:使用本地代理会话进行需要实时输入和反馈的交互式任务。

© . This site is unofficial and not affiliated with Microsoft.