MODULE 02 · STEP 07 · 可练习
会话的保存与续写
做完第一个任务后,很多人会问:关闭终端以后,刚才的对话是不是没有了?
Pi 默认会自动保存会话,并按工作目录组织。你无需每说一句就手动保存,但需要学会给会话起名字,否则日后会很难找回来。
会话默认保存在 ~/.pi/agent/sessions/ 下,并按工作目录组织成 JSONL 文件。在 Pi 中输入 /session 可以看到当前会话文件、ID、消息数、token 与成本;这里可能包含私人提示、路径和工具结果,不要直接上传或公开。
一件事对应一个会话
一个实用的起点规则是:一个明确目标,使用一个会话。整理会议记录、修复网站导航和翻译一篇文章,最好不要全部塞进同一条对话。
任务开始后,在 Pi 输入区输入:
/name 会议记录整理练习名字应该描述任务,而不是写“测试 1”或“今天的对话”。一周后回来,你仍然能从名字判断内容。
输入完按 Return。/session 可以查看当前会话文件、ID、消息数、token 与成本信息;会话名最直接的复核入口是稍后的 /resume 选择器。先继续完成本节的退出与恢复练习。
关闭以后继续做
如果你刚退出 Pi,而且要继续当前目录最近的会话,先在普通终端回到练习目录:
cd ~/Downloads/pi-practice
pwd
pi -cpwd 必须显示正确的练习目录。pi -c 打开后,先检查历史消息确实属于刚才的会议记录任务;需要核对名称时打开 /resume,列表中应能找到“会议记录整理练习”,按 Esc 取消选择并回到当前会话。
如果这个项目有多个会话,使用:
cd ~/Downloads/pi-practice
pwd
pi -r这会打开历史会话选择器。用上下方向键找到对应名称,按 Return 打开,按 Esc 取消。也可以在已打开的 Pi 中输入 /resume。选择前先看会话名和工作目录,别把相似项目接错。
如果你使用的练习目录名不是 pi-practice,把两处 cd 命令里的目录名一起替换掉。
没有回到预期会话时
pi -c打开的历史不对:不要在这个会话继续写文件,输入/quit,确认pwd后改用pi -r。pi -r列表为空:先确认当前工作目录是否与创建会话时相同。Pi 的会话按工作目录组织,目录不一致时看不到同一组会话。- 误选了相似名称:用
/session核对后立即退出,再重新选择。 - 会话确实找不到:不要宣称对话已经恢复。新建会话,让 Pi 重新读取项目中的输入、输出和交接文件,从磁盘产物继续。
你现在只要记住两个入口
pi -c 续写最近会话,pi -r 从列表中选择。其他选项可以等真正遇到需求再学。
走错方向时认识 /tree
对话不是只能一路向下。Pi 的会话以树状结构保存。在交互界面输入 /tree,可以回到之前的某个节点,然后从那里继续。本课先把它作为进阶入口,不要在重要会话中随意跳转。
适合使用的场景包括:
- 你发现三轮之前就理解错了任务。
- 想保留当前方案,同时尝试另一条路。
- 对话已经被临时调试信息占满,想从比较干净的节点重新开始。
跳转不会把已经写入磁盘的文件恢复到早期状态。会话树管理对话历史,Git 或备份才管理文件版本。
/tree 只在同一个 JSONL 会话文件里移动当前节点;/fork 会从先前的用户消息创建新会话,/clone 会把当前活动分支复制成新会话。离开当前分支时,Pi 还可能询问是否为离开的路线生成 Branch Summary。摘要用于把有用信息带到新路线,不会回滚磁盘文件。
如果你有一份来自其他位置的会话文件,可以用 pi --session <路径或ID> 打开,或在交互界面使用 /import <文件> 导入。先确认文件来源,因为其中可能包含私人内容、项目路径和工具记录。
初学时不必在重要会话中强行练习分支。等你有一个可以丢弃的测试会话,再输入两条不同方案,用 /tree 回到分叉前的用户消息继续另一条路线。验收重点不是界面有树,而是你能明确说出:切换对话节点以后,刚才已经写入的磁盘文件仍然需要单独核对或恢复。
新任务就新建会话
当目标已经变了,在 Pi 中输入 /new。之前的会话仍然保留,新任务会获得一个干净起点。
本课验收
离开本章前,完成一次固定练习:
- 给当前会话命名,打开
/resume并在列表中看到名字,然后按Esc返回。 - 用
/quit退出,确认回到普通终端。 - 在正确目录运行
pi -c,核对历史消息,并在/resume列表中再次找到名称。 - 确认先前消息仍在,再打开上一课的输出文件,确认磁盘产物也在。
名称、历史消息和工作目录都一致,说明恢复了正确会话;输出文件仍在只能证明磁盘内容存在,两类证据不要混为一谈。