JINLOOPEST. 2026
浏览文档
PI DOCUMENTATION更新于

会话

Pi 将对话保存为会话,以便您可以继续工作、从较早的轮次分支,并重新访问之前的路径。

会话存储

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

pi -c                  # Continue most recent session
pi -r                  # Browse and select from past sessions
pi --no-session        # Ephemeral mode; do not save
pi --name "my task"    # Set session display name at startup
pi --session <path|id> # Use a specific session file or partial session ID
pi --fork <path|id>    # Fork a session file or partial session ID into a new session

在交互模式下使用 /session 可查看当前会话文件、会话 ID、消息数、令牌和费用。

有关 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> 设置一个人类可读的会话名称:

/name Refactor auth module

在启动时使用 --name-n:

pi --name "Refactor auth module"
pi --name "CI audit" -p "Review this build failure"

已命名的会话更容易在 /resumepi -r.

使用 /tree

会话以树的形式存储。每个条目都有一个 idparentId,当前位置是活动叶子节点。 /tree 允许您跳转到任何先前的点并从那里继续,而无需创建新文件。

树形视图

示例形状:

├─ 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切换标签时间戳
进入选择条目
退出/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 官方 GitHub 仓库。

查看源文件