Skip to main content

会话管理

会话(session)是你与 goose 之间一次连续的交互,用来提问、下达指令并推进任务。本指南会说明整个会话生命周期该如何管理。

启动会话

首次设置

在你的第一个会话中,goose 会提示你先配置 LLM(Large Language Model)provider

打开 goose 后,你会直接看到可用的会话界面。只要把问题、请求或指令直接输入到输入框里,或者通过语音输入,goose 就会立刻开始处理。

要开始一个新的聊天会话:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击侧边栏中的 HomeChat
  3. 在聊天框中发送你的第一条 prompt

goose Desktop 支持在同一个窗口里同时保留多个活跃会话。新会话会出现在侧边栏 Chat 区域中,你可以快速切换最近的 10 个会话。只要点击某个会话,就能在该会话里继续工作

如果要切换工作目录,点击应用底部的 目录切换器即可。

在新窗口中启动会话

如果想在新窗口中开始会话,点击左上角的 按钮。发送第一条 prompt 后,新会话就会出现在侧边栏的 Chat 区域里。

在 macOS 上,你也可以通过 Dock 图标快速开启会话:

  • 拖拽目录 到 goose 图标上,在该目录中打开一个新会话
  • 右键 点击 goose 图标,选择 New Window,在你最近使用的目录中打开新会话

键盘快捷键

你也可以使用快捷键来新建会话或管理 goose 窗口。

操作macOSWindows/Linux
使用 Quick Launcher 新建会话Cmd+Option+Shift+GCtrl+Alt+Shift+G
在当前目录中新建会话Cmd+NCtrl+N
在当前目录中新建会话(同一窗口)Cmd+TCtrl+T
在其他目录中新建会话Cmd+OCtrl+O
切换侧边栏显示Cmd+BCtrl+B
打开设置Cmd+,Ctrl+,
聚焦 goose 窗口Cmd+Option+GCtrl+Alt+G
让 goose 窗口始终置顶Cmd+Shift+TCtrl+Shift+T

自定义快捷键

你可以在 Settings 菜单中自定义这些快捷键:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Settings
  3. 点击 Keyboard 标签

对全局快捷键(例如 Focus Window、Quick Launcher)的修改会立即生效。对应用内快捷键(如 New Chat、Settings)的修改,则需要重启 goose 才会生效。

Quick Launcher

你可以在弹窗中直接输入 prompt 来开始一个新会话:

  1. 按下 Cmd+Option+Shift+G(macOS)或 Ctrl+Alt+Shift+G(Windows/Linux)打开弹窗
  2. 输入你的 prompt,然后按 Enter

这个会话会在一个新的 goose 窗口中打开,并使用你最近一次打开的目录。

命名会话

会话的显示名称会根据你的第一条 prompt 上下文自动生成。合理的会话名可以帮助你在多个活跃会话之间切换,或者后续恢复会话

会话创建之后,你仍然可以修改名称:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Chat 区域底部的 View All
  3. 将鼠标悬停到你想重命名的会话上
  4. 点击会话卡片上出现的 按钮
  5. 在弹出的 “Edit Session Description” 窗口中:
    • 输入新的会话描述(最多 200 个字符)
    • Enter 保存,或按 Escape 取消
    • 也可以点击 SaveCancel
  6. 成功后会看到对应的 toast 提示

会话名称会显示在侧边栏的 Chat 区域、Window 菜单,以及 macOS 的 Dock 菜单或 Windows 的任务栏菜单中。

关闭 AI 自动命名

如果你想保留默认名称,而不是调用模型生成会话名,可以使用 GOOSE_DISABLE_SESSION_NAMING。在 goose Desktop 中默认名称是 “New Chat”,在 goose CLI 中默认名称是 “CLI Session”。

退出会话

退出时会话会自动保存。

要退出会话,直接关闭应用即可。

搜索会话

搜索可以帮助你查找会话中的具体内容,也可以帮助你定位某个会话。

你可以通过快捷键和搜索栏按钮,在 goose Desktop 中搜索会话。

操作macOSWindows/Linux
打开搜索Cmd+FCtrl+F
下一个匹配项Cmd+GCtrl+G
上一个匹配项Shift+Cmd+GShift+Ctrl+G
用当前选中内容搜索Cmd+En/a
切换大小写敏感AaAa
关闭搜索EscXEscX
自定义搜索快捷键

你可以在 SettingsKeyboard 中自定义 Find、Find Next 和 Find Previous 的快捷键。

不支持正则或搜索操作符

搜索框不支持正则表达式或高级搜索操作符。

支持以下两种场景:

在当前会话中搜索

如果你想在当前会话里查找某段内容:

  1. 使用 Cmd+F 打开搜索栏
  2. 输入搜索关键词
  3. 使用快捷键或搜索栏按钮浏览匹配结果

跨会话搜索

如果你想在所有会话历史中搜索消息内容:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Chat 区域底部的 View All
  3. 使用 Cmd+F(或 Ctrl+F)打开搜索栏
  4. 输入搜索关键词
  5. 使用快捷键和搜索栏按钮浏览结果(此处不支持 Cmd+E

这里搜索的是对话中的消息内容。搜索结果最多只会返回最近的 10 条匹配消息。如果某个关键词命中很多消息,最终返回的会话只会是其中一部分。

直接问 goose

你也可以使用内置的 Chat Recall 扩展,直接让 goose 搜索你的对话历史:

  • “Find my earlier conversation about React hooks from last week”
  • “Show me sessions where I worked on database migrations”

恢复会话

你既可以在侧边栏切换活跃会话,也可以从历史记录中恢复任意会话。

切换活跃会话

goose Desktop 支持在同一窗口中来回切换多个聊天会话。你可以在一个会话中启动任务,切到另一个会话做别的事情,再回到原会话继续推进。

最近的会话(最多 10 个)会显示在侧边栏中,方便快速切换:

  1. 点击左上角的 按钮打开侧边栏
  2. Chat 区域点击任意会话即可切换

你可以通过以下视觉标记判断会话状态:

  • 蓝色旋转图标:会话正在处理请求
  • 绿色圆点:你切到别的会话时,该会话完成了任务
  • 红色圆点:该会话发生错误

此外,如果某个会话是从 recipe 启动的,会显示 图标。

tip

你可以先重命名会话,这样更容易识别。

从历史记录恢复会话

如果目标会话不在最近的 10 个之内:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Chat 区域底部的 View All
  3. 找到你要恢复的会话。你可以使用上面的搜索能力更快定位它。
  4. 选择恢复方式:
    • 点击 Resume 在当前窗口继续
    • 点击 New Window 在新窗口中打开

Desktop 中创建的会话也可以在 CLI 中恢复,反之亦然。所有会话都保存在同一个数据库里。

新任务建议开新会话

虽然你可以恢复旧会话,但对于新任务,更建议直接新建会话,以减少进入 doom spiraling 的概率。

恢复项目型会话

项目型会话目前只支持通过 CLI 使用。

复制会话

如果你想复用配置、尝试不同方案或保留某次工作结果,可以创建某个会话的完整副本。

在会话列表中复制一个会话:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Chat 区域底部的 View All
  3. 找到你想复制的会话
  4. 将鼠标悬停到会话卡片上,显示操作按钮
  5. 点击右上角出现的 按钮

复制出的会话会包含:

  • 完整对话历史
  • 所有会话元数据和设置
  • Provider 和模型配置
  • 扩展数据与配置
  • Recipe 信息(如果有)

新会话会继承原会话名称,并显示在你的会话列表顶部。

Duplicate 与 Fork Session 的区别
  • Duplicate(会话列表中的 Copy 按钮):复制整个会话,适合保留某个工作版本或复用配置。
  • Fork Session(消息上的 Edit 按钮):从某条被编辑的消息位置切出一个新会话,适合在某个历史节点尝试不同方向。

删除会话

你可以直接在 Desktop 应用中删除会话:

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Chat 区域底部的 View All
  3. 找到你想删除的会话
  4. 将鼠标悬停到会话卡片上,显示操作按钮
  5. 点击出现的 按钮
  6. 在弹窗中确认删除
永久删除

在 goose Desktop 中删除会话,也会同步从 CLI 中删除。这个操作不可撤销。

会话会立刻从历史记录中消失,底层的本地会话记录也会被一并删除。

导入会话

你可以从 JSON 文件导入完整会话,用于恢复、分享或在不同 goose 实例之间迁移。导入时会创建一个新的会话 ID,而不是覆盖现有会话。

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Chat 区域底部的 View All
  3. 点击右上角的 Import Session 按钮
  4. 选择一个之前从 goose 导出的 .json 会话文件
  5. 该会话会以新的 session ID 导入
  6. 成功后会收到通知

导出会话

你可以把完整会话导出成 JSON 文件,用于备份、分享、迁移或归档。导出文件会保留完整对话、元数据和设置。

  1. 点击左上角的 按钮打开侧边栏
  2. 点击 Chat 区域底部的 View All
  3. 找到你想导出的会话
  4. 将鼠标悬停到会话卡片上,显示操作按钮
  5. 点击出现的 按钮
  6. 会话会被下载成一个 .json 文件,文件名使用该会话的描述