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/,按工作目录组织。每个条目都有 id 和 parentId,这就是原地分支(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 看看会话选择器。