AI 简明手册
Pi 源码解读 · 会话与上下文JSONL 会话树

JSONL 会话树

先盯住一个动作

Pi 会话文件是 JSONL 事件树:每个条目用 id 和 parentId 指向父节点,当前 leaf 决定有效路径,因此同一文件可以保留多条分支而不覆盖旧历史。

沿执行轨迹走

  1. 树形持久化

    会话首行保存版本、会话 ID、时间和工作目录;后续消息、模型切换、思考级别、压缩、分支摘要和 Extension 条目逐行追加,并通过父指针组成树。

    [repo] [docs]

  2. 三种分支操作

    /tree 在同一会话树里移动 leaf;/fork 从较早用户消息创建新会话文件;/clone 把当前活动分支复制为新文件。

    [repo] [docs]

每一步改变了什么

  • 恢复上下文时应沿活动 leaf 回溯有效路径,而不是把 JSONL 每一行顺序塞给模型。

  • 需要保留实验路径时用 tree;需要独立归档或后续分享时再 fork/clone。

这条轨迹没有说明什么

  • JSONL 保存的是 Pi 的会话语义,不等同于某个 Provider 的原始请求日志;重放仍会经过消息转换和当前运行时资源。

来源与核验

  1. [repo] Pi 官方源码(固定 revision)
  2. [docs] Pi 官方文档

Revision:853a80d26c90a14c1886f0ebb8ffaae133ca2185 · 核验日期:2026-08-31