Pi 官方文档

会话

会话

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 可以查看当前会话文件、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> 设置一个便于阅读的会话名称:

/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 允许你跳到任意之前的点,并从那里继续,而不会创建新文件。

<p align="center"><img src="images/tree-view.png" alt="Tree View" width="600"></p>

示例结构:

├─ 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循环切换过滤模式

过滤模式包括:默认、无工具、仅用户、仅带标签和全部。可在 设置 中使用 treeFilterMode 配置默认模式。

选择行为

选择用户消息或自定义消息时:

  1. 会将叶子节点移动到所选消息的父节点。
  2. 会把所选消息文本放入编辑器。
  3. 允许你编辑并重新提交,从而创建一个新的分支。

选择助手、tool call、上下文压缩或其他非用户条目时:

  1. 会将叶子节点移动到该条目。
  2. 编辑器保持为空。
  3. 你可以从那个点继续。

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

/tree/fork/clone

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

当你想把不同方案放在一起时,使用 /tree。当你想要独立的会话文件时,使用 /fork/clone

分支摘要

/tree 从一个分支切换到另一个分支时,pi 可以对被放弃的分支做摘要,并把这段摘要附加到新位置。这样就能保留你离开那条路径时的重要上下文,而不用把整个分支重新跑一遍。

出现提示时,可以选择以下之一:

  1. 不要摘要
  2. 使用默认提示词进行摘要
  3. 按自定义重点指令进行摘要

有关分支摘要的内部机制和扩展钩子,请参见 上下文压缩

会话格式

会话文件采用 JSONL 格式,包含消息条目、模型变更、思考级别变更、标签、上下文压缩、分支摘要和扩展条目。

关于解析器、扩展、SDK 用法以及完整的 SessionManager API,请参见 会话格式

Pi 官方文档中文整理 · 机器初译,待人工校对

本文基于官方 MIT 文档翻译整理,不代表 pi.dev 官方中文站。同步 commit:8b97e75c,同步时间:2026/6/20

查看官方原文