Claude Code、Codex 和 oh my pi 都把会话当成一份只追加的 JSONL 日志来写。不同的是,Claude Code 和 oh my pi 沿用 [种草R]Pi 的 parentId 链或树,分支和回退靠移动指针,[种草R]oh my pi 还在上面补了文件租约、大文件外置和可换的存储后端这些工程能力。[种草R]Codex 的 rollout 更接近一条线性流水,压缩时直接用 replacement_history 整段替换,fork 则另开一个新文件。[种草R]DeepSeek Harness 走得最远,它把会话做成事件溯源:日志里同时记着模型看得见和看不见的所有事件,模型实际看到的上下文是从日志里算出来的,所以压缩只是替换掉一段区间,原始事件一条都不丢。[种草R]opencode 则完全不用日志,而是把会话存成 SQLite 里的 Session → Message → Part 三层数据,工具调用和结果是同一条记录、状态原地更新,回退靠 Git 快照,回退点之后的消息会被真正删掉。
总结一下,Pi 系是"会话即树",Codex 是"会话即流水",DeepSeek 是"会话即事件源",opencode 是"会话即数据库对象"。
#howto入门codex #harness #pi #claudecode #codex #opencode #ohmypi #dsh





