Pi coding agent入门:第 3 课:斜杠命令与会话

第 3 课:斜杠命令与会话

现在开始学习让 pi 更像是工作流工具而非聊天工具的部分:斜杠命令和会话管理。

斜杠命令

在编辑器中输入 / 触发命令补全。最常用的:

命令 用途
/model 切换模型
/settings 思考等级、主题、消息投递、传输方式
/resume 从之前的会话中选择
/new 开启新会话
/name <name> 给会话起个可读的名字
/session 显示会话文件、ID、消息数、token、费用
/tree 浏览会话树(见下文)
/fork 从之前的某条用户消息创建新会话
/clone 把当前活动分支复制成新会话
/compact [prompt] 总结较旧的上下文以释放空间
/reload 重新加载快捷键、扩展、技能、提示词、主题
/export / /share 导出会话为 HTML / 分享为私有 gist
/hotkeys 显示所有快捷键
/quit 退出 pi

会话:核心概念

每一次对话都是一个会话(session)——一个带树形结构的 JSONL 文件,自动保存到 ~/.pi/agent/sessions/,按工作目录组织。每个条目都有 idparentId,这就是原地分支(in-place branching)成为可能的原因。

通过 CLI:

pi -c                  # 继续最近的会话
pi -r                  # 浏览并选择过去的会话
pi --name "my task"    # 启动时命名
pi --session <path|id> # 打开指定会话
pi --fork <path|id>    # 把会话分叉到新文件
pi --no-session        # 临时模式——不保存

在 pi 内:/resume 打开一个交互式选择器,可以搜索、重命名(Ctrl+R)或删除(Ctrl+D)会话。有名字的会话更容易找到——养成使用 /name Refactor auth module 的习惯。

/tree 分支

这是 pi 的招牌功能。因为会话是树形结构,你可以跳转到任意更早的时间点并从这里继续——旧路径仍然留在同一个文件中:

├─ user: "Let's try approach A..."
│  └─ assistant: "For approach A..."
│     └─ user: "That worked..."  ← 当前活动位置
└─ user: "Actually, approach B..."   (另一条分支)

树的控制:↑/↓ 导航,Ctrl+←/→ 在分支之间跳转,Shift+L 给条目加书签标签,Ctrl+O 循环过滤模式(默认 / 无工具 / 仅用户 / 仅标签 / 全部)。选择一条用户消息会把叶子移回该位置并把消息放进编辑器——修改后重新提交即可创建新分支。选择一条助手消息则可以从该点继续(编辑器为空)。

切换分支时,pi 可能会提议总结被放弃的分支,以免丢失其上下文。

什么时候用哪个

功能 /tree /fork /clone
输出 同一文件 新文件 新文件
视图 完整树 用户消息选择器 当前分支
用途 原地探索备选方案 从更早的提示重新开始 冒险操作前复制

压缩(Compaction)

长会话会耗尽上下文。压缩会总结较旧的消息,同时保留较新的——手动/compact [自定义指令]自动(默认开启)在接近或达到上下文上限时触发。压缩是有损的:完整历史仍在 JSONL 文件中,所以 /tree 随时可以带你回去。


作业: 给当前会话运行 /name 命名,然后运行 /session 查看它的 ID、消息数和费用。然后在另一个终端试试 pi -r 看看会话选择器。

类似文章

发表回复