Storage
SDK Session 布局
本地 SDK Agent 的 Session 文件布局与数据边界
SDK Session 布局
本地 SDK Agent 的 Session 默认集中落盘到 ~/.downcity;测试或多实例宿主可以通过 DC_PLATFORM_ROOT 覆盖内部根目录:
~/.downcity/agents/<agent_id>/workspaces/<workspace_id>/sessions/<session_id>/
├── meta.json
└── messages/
├── active.jsonl
├── assistant_message.json
└── segments/
└── <start_sequence>-<end_sequence>.jsonlworkspace_id 定位 Workspace 数据根,session_id 在 Workspace 内唯一。meta.json 记录 Session 所属的 agent_id 和 workspace_id;Agent 的 Session 列表只返回 metadata 与自己匹配的记录。项目目录不会创建 .downcity。
active.jsonl:上次 Compact 后保留的完整SessionMessage快照。assistant_message.json:唯一的运行中 Assistant 完整草稿。segments/*.jsonl:不可变历史段;真实 Message 在前,累计 Summary footer 在最后。meta.json:Agent 与 Workspace 归属、标题、模型标签、时间戳、消息数和存储字节数等轻量索引,不保存运行时模型实例。
Segment 文件名使用 12 位补零 sequence,例如 000000000001-000000000900.jsonl。目录不使用 manifest,扫描文件名即可确定历史顺序。Summary 不属于 Message,也不占 sequence。
应用应调用 session.messages() 读取 Active,通过 before_sequence 逐段读取旧历史。不要直接写入这些文件。
完整推进、Compact 和恢复逻辑见 Session 元数据与落盘。