Skip to content

会话 ​

Pi 将对话保存为会话,以便你可以继续工作、从较早的轮次分支,并回顾之前的路径。

会话存储 ​

会话自动保存到 ~/.pi/agent/sessions/,按工作目录组织。每个会话都是一个带有树结构的 JSONL 文件。

bash
pi -c                  # 继续最近的会话
pi -r                  # 浏览并从过去的会话中选择
pi --no-session        # 临时模式;不保存
pi --session <path|id> # 使用特定会话文件或部分会话 ID
pi --fork <path|id>    # 将会话文件或部分会话 ID fork 到新会话

在交互式模式下使用 /session 查看当前会话文件、会话 ID、消息数量、token 和成本。

有关 JSONL 文件格式和 SessionManager API,请参见 会话格式。

会话命令 ​

命令说明
/resume浏览并选择以前的会话
/new开始新会话
/name <name>设置当前会话显示名称
/session显示会话信息
/tree导航当前会话树
/fork从以前的用户消息创建新会话
/clone将当前活动分支复制到新会话
/compact [prompt]汇总旧上下文;参见 压缩
/export [file]导出会话到 HTML
/share上传为私有 GitHub gist,带可分享的 HTML 链接

恢复和删除会话 ​

/resume 为当前项目打开交互式会话选择器。pi -r 在启动时打开相同的选择器。

在选择器中你可以:

  • 通过键入搜索
  • 用 Ctrl+P 切换路径显示
  • 用 Ctrl+S 切换排序模式
  • 用 Ctrl+N 过滤到命名会话
  • 用 Ctrl+R 重命名
  • 用 Ctrl+D 删除,然后确认

当可用时,pi 使用 trash CLI 进行删除,而不是永久删除文件。

命名会话 ​

使用 /name <name> 设置人类可读的会话名称:

text
/name Refactor auth module

命名会话在 /resume 和 pi -r 中更容易找到。

使用 /tree 分支 ​

会话以树形式存储。每个条目都有 id 和 parentId,当前位置是活动叶子。/tree 让你跳到任何之前的点并从此继续,而无需创建新文件。

Tree View

Example shape:

text
├─ user: "Hello, can you help..."
│  └─ assistant: "Of course! I can..."
│     ├─ user: "Let's try approach A..."
│     │  └─ assistant: "For approach A..."
│     │     └─ user: "That worked..."  ← active
│     └─ user: "Actually, approach B..."
│        └─ assistant: "For approach B..."

树控件 ​

键操作
↑/↓导航可见条目
←/→页面上/下
Ctrl+←/Ctrl+→ 或 Alt+←/Alt+→折叠/展开或在分支段之间跳转
Shift+L为选中的条目设置或清除标签
Shift+T切换标签时间戳
Enter选择条目
Escape/Ctrl+C取消
Ctrl+O循环过滤器模式

过滤器模式有:default、no-tools、user-only、labeled-only 和 all。在 设置 中使用 treeFilterMode 配置默认值。

选择行为 ​

选择用户或自定义消息:

  1. 将叶子移到所选消息的父节点。
  2. 将所选消息文本放入编辑器。
  3. 让你编辑并重新提交,创建新分支。

选择助手、工具、压缩或其他非用户条目:

  1. 将叶子移到该条目。
  2. 留下编辑器为空。
  3. 让你从此点继续。

选择根用户消息会将叶子重置为空对话,并将原始提示放入编辑器。

/tree、/fork 和 /clone ​

功能/tree/fork/clone
输出同一会话文件新会话文件新会话文件
视图完整树用户消息选择器当前活动分支
典型用途就地探索替代方案从较早提示开始新会话继续之前复制当前工作
摘要可选分支摘要无无

当你想将替代方案放在一起时使用 /tree。当你想要单独的会话文件时使用 /fork 或 /clone。

分支摘要 ​

当 /tree 从一个分支切换到另一个分支时,pi 可以汇总被放弃的分支并将该摘要附加到新位置。这保留了从你离开的路径中的重要上下文,而无需重放整个分支。

当被提示时,选择其中之一:

  1. 无摘要
  2. 用默认提示汇总
  3. 用自定义焦点指令汇总

有关分支汇总内部和扩展挂钩,请参见 压缩。

会话格式 ​

会话文件是 JSONL,包含消息条目、模型更改、思考级别更改、标签、压缩、分支摘要和扩展条目。

有关解析器、扩展、SDK 用法和完整的 SessionManager API,请参见 会话格式。

Pi 编码助手中文文档