JSONL 会话树
先盯住一个动作
Pi 会话文件是 JSONL 事件树:每个条目用 id 和 parentId 指向父节点,当前 leaf 决定有效路径,因此同一文件可以保留多条分支而不覆盖旧历史。
沿执行轨迹走
树形持久化
会话首行保存版本、会话 ID、时间和工作目录;后续消息、模型切换、思考级别、压缩、分支摘要和 Extension 条目逐行追加,并通过父指针组成树。
[repo] [docs]
三种分支操作
/tree在同一会话树里移动 leaf;/fork从较早用户消息创建新会话文件;/clone把当前活动分支复制为新文件。[repo] [docs]
每一步改变了什么
恢复上下文时应沿活动 leaf 回溯有效路径,而不是把 JSONL 每一行顺序塞给模型。
需要保留实验路径时用 tree;需要独立归档或后续分享时再 fork/clone。
这条轨迹没有说明什么
JSONL 保存的是 Pi 的会话语义,不等同于某个 Provider 的原始请求日志;重放仍会经过消息转换和当前运行时资源。
来源与核验
- [repo] Pi 官方源码(固定 revision)
- [docs] Pi 官方文档
Revision:853a80d26c90a14c1886f0ebb8ffaae133ca2185 · 核验日期:2026-08-31