会话与历史
每一次交互式对话都是一个会话,每一轮结束后都会以 JSON 形式持久化到 ~/.octo/sessions/ 下面。
octo sessions # 列出已保存的会话octo -c # 从最近的列表里选一个恢复octo -c <session-id> # 恢复指定的一个崩溃时的可靠性
Section titled “崩溃时的可靠性”历史按“轮”为粒度持久化,所以中途崩溃最多丢掉正在进行的这一轮,而不是整个会话。一个回放缓冲区 覆盖了“最后一次持久化的轮次”和“进程死掉那一刻正在流式输出的内容”之间的空隙,所以恢复时能干净地 接上,而不是重放一段陈旧的状态。
在内部,一条消息的内容是文本、tool-use、tool-result 这几种 block 的联合体,而不是单一字符串—— 这正是恢复会话时能忠实还原工具调用的原因。这个机制出现之前保存的老会话依然能正常加载: block 列表为空时会自动回退成纯字符串形式。
下一步:Web UI 和 IM 渠道上的会话共用同一套存储——见接入聊天应用。