Storage
SDK Session 布局
本地 SDK Agent 的 Session 文件布局与数据边界
SDK Session 布局
本地 SDK Agent 的 Session 默认落盘到:
<projectRoot>/.downcity/agents/<agentId>/sessions/<sessionId>/
└── messages/
├── active.jsonl
├── assistant_message.json
├── meta.json
└── segments/
└── <start_sequence>-<end_sequence>.jsonlagentId 隔离同一项目中的多个 Agent,sessionId 隔离每条连续对话。
active.jsonl:上次 Compact 后保留的完整SessionMessage快照。assistant_message.json:唯一的运行中 Assistant 完整草稿。segments/*.jsonl:不可变历史段;真实 Message 在前,累计 Summary footer 在最后。meta.json:标题、模型、时间戳、消息数和存储字节数等轻量索引。
Segment 文件名使用 12 位补零 sequence,例如 000000000001-000000000900.jsonl。目录不使用 manifest,扫描文件名即可确定历史顺序。Summary 不属于 Message,也不占 sequence。
应用应调用 session.messages() 读取 Active,通过 before_sequence 逐段读取旧历史。不要直接写入这些文件。
完整推进、Compact 和恢复逻辑见 Session 元数据与落盘。