第 03 模块 · 1 节

会话存储与续接

《Pi 基础入门》03 会话管理 · 本节时长 25 分钟

会话自动保存

Pi 把对话存成会话(session),让你能续接工作、从之前的回合分支、重访旧路径。

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

贯穿项目md-tools 时你会开很多次会话。会「续接旧会话」和「开新会话」这两招,你的项目才不会越做越乱。

启动时管理会话

几个命令行参数:

pi -c                # 续接最近的会话
pi -r                # 浏览并选择过去的会话
pi --no-session      # 临时模式,不保存
pi --name "my task"  # 启动时设置会话显示名
pi --session         # 用指定的会话文件或部分会话 ID
pi --fork            # 把某会话文件/部分ID fork 成新会话

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


交互式续接:/resume

/resume 打开一个交互式会话选择器(当前项目的)。pi -r 在启动时打开同样的选择器。

选择器里你可以:

  • 打字搜索
  • Ctrl+P 切换路径显示
  • Ctrl+S 切换排序
  • Ctrl+N 只看有名字的会话
  • Ctrl+R 重命名
  • Ctrl+D 删除(再确认)
注意可用时,Pi 会用系统「垃圾桶」命令删除会话,而不是彻底永久删除——给了你反悔的余地。

给会话起名字

/name 设置一个人类可读的名字:

/name Refactor auth module

启动时用 --name-n

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

有名字的会话在 /resumepi -r 里更好找。 强烈建议重要会话起名。


落地练习:会存、会续、会命名

  1. 启动 pi,做一点小任务
  2. /name md-tools 调研 给会话起名
  3. 退出,再用 pi -c 续接回来,确认对话还在
  4. 再用 pi -r 打开选择器,搜索到刚才那个有名字的会话

怎么判断做对了?——你能退出后用 -c 续接、用 -r 找到并选中那个命名会话,对话内容没丢。

卡住了怎么办? -c 续接的不是想要的那个 → 用 -r 手动选。找不到会话 → 确认是不是同一个工作目录(会话按目录组织)。忘了名字 → 用 -rCtrl+N 看命名会话。


常见坑:不开新会话,全挤在一起

新手常在同一个会话里干完全不相干的任务,结果上下文越来越乱、模型犯迷糊。

正确习惯:每个任务一个新会话(/new),任务间用 -c//resume 续接。给重要任务起名(/name),下次好找。会话管理得好,长线项目才不崩。


小结

  1. 会话自动存到 ~/.pi/agent/sessions/,按目录组织
  2. pi -c 续接、pi -r 浏览选择、--name 起名
  3. /session 看当前会话信息
  4. /resume 打开交互式选择器,可搜索/重命名/删除
  5. 重要会话起名,方便日后查找

下一节,我们学 Pi 最有特色的会话树 /tree