Skip to content

5.1 会话列表与历史 ​

本节目标

学会用侧边栏管理会话一次独立的对话记录,有自己的上下文,互不干扰。Session/ˈseʃn/:新建、切换、搜索、恢复历史,以及重命名、分叉从会话的某个节点复制出一条新会话,原会话保持不变,适合试不同方案。Fork/fɔːrk/和归档。

侧边栏就是会话的总控台 ​

dsh 的左侧边栏不只是导航,它是会话的总控台。所有会话一次独立的对话记录,有自己的上下文,互不干扰。Session/ˈseʃn/都在这里,按工作区agent 干活的项目目录,包含路径、显示名和归属的会话。Workspace/ˈwɜːrkspeɪs/分组排列,一眼看清每个项目下有哪些对话。

主界面与侧边栏

侧边栏从上到下包含:新建会话按钮、工作区分区(工作区agent 干活的项目目录,包含路径、显示名和归属的会话。Workspace/ˈwɜːrkspeɪs/ + 它下面的会话列表)、会话搜索框、视图选项和设置入口。

新建会话 ​

两种方式:

  1. 点侧边栏顶部的新建会话按钮,新建一个独立会话
  2. 在工作区行的菜单里选在此工作区中新建会话,新会话直接归属到该项目

打开历史会话 ​

想回到之前的对话继续干?直接点侧边栏里对应的会话行,对话区就会加载那个会话的完整历史,从头到尾都能翻看和续聊。

会话行上的状态指示会告诉你这个会话现在什么情况:

状态长什么样含义
运行中蓝色指示点agent 正在这个会话里干活
等待审批琥珀色警告点这个会话正卡在一个审批agent 执行超权限操作前询问用户的机制,允许只放行这一次。Approval/əˈpruːvl/请求上,等你决定
计划待审阅琥珀色警告点计划模式里出了计划,等你审阅(4.6 节)
等待回答琥珀色警告点会话在等你回答一个普通问题
有未读完成绿色提醒后台跑完有结果你还没看

等待你处理的会话一眼就能认出来,这就是"总控台"的意义:先处理琥珀色的,再管蓝色的。

搜索会话 ​

会话多了以后靠翻很累,用搜索:

  1. 点侧边栏的搜索图标,展开搜索框
  2. 输入关键词,比如"README"
  3. 结果立即列出,点一下直达

搜索有两个层次:

  • 标题和工作区名:边打字边出结果,忽略大小写的子串匹配,秒出
  • 会话内容:输入停顿时(约 0.25 秒)自动去后台检索正文,命中会带上片段

结果最多列 20 条,超出会提示你把关键词收窄。点开结果后搜索框保持不动,方便你连续翻几个命中项。

会话的自动标题 ​

每个会话都会根据第一轮对话自动生成标题,显示在侧边栏上,省得你手动起名。

自动标题不够贴切时再手动重命名,重命名会把标题固定下来,之后不再被自动生成覆盖。分叉从会话的某个节点复制出一条新会话,原会话保持不变,适合试不同方案。Fork/fɔːrk/出来的新会话会继承原标题并自动加序号(比如原标题加 (1)),方便你区分几版方案。标题太长被省略号截断时,0.1.6-alpha.2 起把鼠标悬停在会话行上,标题会自动滚动到末尾把被藏住的部分露出来,移开就回到开头,不用再纠结分叉序号看不见的问题。

会话行的操作 ​

鼠标悬停在某个会话行上,会出现操作按钮,点开有这些常用操作:

操作干什么什么时候用
置顶把会话钉在列表最上面常驻项目、正在推进的主线对话
重命名给会话改个更好认的名字自动标题不满意时
分叉会话从该会话最后一个已完成轮次复制出一条新线想基于旧对话换个方向试
归档会话把会话收进归档,从列表隐藏暂时不用的会话(视图选项里可筛选恢复)

几个细节:

  • 置顶:0.1.7-alpha.1 起支持把重要会话钉在侧边栏最上方,最近置顶的排最前;置顶和归档互斥,归档会话时它的置顶自动取消
  • 重命名:弹出对话框,默认填着当前标题,改完确认即可
  • 分叉:不会动原会话,新会话和原会话并排出现在同一个工作区里,最后一轮已完成的内容作为起点
  • 归档:一键完成、没有确认弹窗(它不删数据,只是从所有列表里隐藏),归档后马上出现一条可撤销的提示,点一下就反悔;想找回更多历史归档,去侧边栏视图选项的归档筛选(见下文)
  • 归档运行中的会话:0.1.7-alpha.1 起,归档一个还在跑任务的会话,dsh 会先停掉它正在运行的工作再归档,不会留一个看不见的会话在后台偷偷跑
  • 刚新建、还没发过第一条消息的会话行是空的占位,重命名、分叉、归档要等第一条消息之后才可用

归档的会话去哪了、怎么找回来 ​

归档不是删除:会话的日志和所在位置都原样保留,只是从所有列表里隐藏。

0.1.7-alpha.1 起,找回归档会话的入口搬到了侧边栏:点视图选项,把归档筛选切到仅归档,列表里就只显示已归档的会话(和置顶一样,这个筛选就在会话列表旁边,不用再跳去设置页翻)。找到那一行点取消归档,会话立即回到它原来所在的工作区分组里。原来设置面板里的已归档会话页在 0.1.7 中已移除,由这个侧栏筛选取代。

恢复的边界

筛选只列出它能恢复的条目:如果某条归档记录对应的会话日志已经不存在(比如手动删过文件),它不会显示出来,免得给你一个永远点不动的按钮。写入被拒绝时该行会保留,可以再试一次。

工作区行的操作 ​

工作区行同样有操作菜单:重命名(改显示名)、删除(移除记录,不删文件不删会话,会话归入未分组)。这块在 2.2 节讲过,这里不重复。

视图选项 ​

侧边栏的视图选项按钮可以调整会话的展示方式,两套维度自由组合:

按分组展示:按工作区agent 干活的项目目录,包含路径、显示名和归属的会话。Workspace/ˈwɜːrkspeɪs/分组(默认)还是平铺成一张跨工作区的大列表。每个工作区默认展开显示最近 5 个会话,会话多时有个显示更多按钮,展开一次就记住状态。

按顺序排列:

  • 手动排序:顺序完全由你控制,拖拽会话行调整位置,dsh 不会自动改动。0.1.6-alpha.1 起手动顺序只在当前浏览器里生效(记录在本机),换台设备或换个浏览器是各排各的;切到手动后,最近更新带来的自动上浮会暂停,列表安静下来
  • 按最近更新:自动按最后活动时间排序,之后每次有新的对话,那个会话会自动提到最前面

手动和最近更新可以在分组或平铺下自由切换。想完全自己说了算就选手动,想省事就让 dsh 按最近更新自动排。

视图选项里还有一个归档筛选,0.1.7-rc.2 起是明确的三选一菜单:隐藏(默认,列表干净)、全部(归档的会话和正常会话排在一起显示)、仅归档(只看归档的会话,找回历史就靠它,上文讲过)。想恢复时切到仅归档,处理完记得切回隐藏。

常见问题 ​

问:会话太多,侧边栏密密麻麻?

用搜索,或者归档不用的会话。工作区平铺和分组之间也可以来回切,重要的会话可以置顶。

问:归档的会话还能找回吗?

能。0.1.7-alpha.1 起打开侧边栏的视图选项,把归档筛选切到仅归档,找到那一行点取消归档,会话就回到原来的位置;刚归档时弹出的提示也能直接撤销。此前归档的旧会话同样会列在这个筛选里。

问:删了工作区,会话会丢吗?

不会。删除工作区只是移除分组,会话保留在未分组里(2.2 节说过)。

问:侧边栏里找不到某个会话了?

先想想是不是归档了(归档会从所有列表消失)。另外子代理产生的会话不会出现在侧边栏,要从它父会话头部的子代理列表进(4.7 节)。

小结 ​

  • 侧边栏按工作区分组管理所有会话,点击会话行即恢复历史
  • 状态指示一眼识别:蓝色在跑、琥珀色等你处理、绿色有结果
  • 搜索分两层:标题即时匹配 + 内容后台检索
  • 会话可置顶(0.1.7 起,与归档互斥)、重命名(固定标题)、分叉(继承标题加序号)、归档(隐藏但可恢复,归档运行中的会话会先停掉其工作)
  • 归档的会话通过侧边栏视图选项里的归档筛选找回(0.1.7 起,原设置页已移除;0.1.7-rc.2 起筛选为隐藏 / 全部 / 仅归档三选一)
  • 视图选项:分组/平铺 × 手动/最近更新,拖拽自由排序(手动顺序跟随当前浏览器),另有归档三态筛选

会话管理熟了,下一章把 dsh 调成你的形状:设置与个性化。

发现错误?提交反馈 · 欢迎 提 PR 改进本书