Sessions
Session 元数据与落盘
SDK Session 的元数据、消息文件和目录布局
Session 元数据与落盘
SDK session 默认落盘到:
<projectRoot>/.downcity/agents/<agentId>/sessions/<sessionId>/messages/messages.jsonl同一目录下还会有:
<projectRoot>/.downcity/agents/<agentId>/sessions/<sessionId>/messages/meta.json以及运行中的 assistant 快照:
<projectRoot>/.downcity/agents/<agentId>/sessions/<sessionId>/messages/inflight.json为什么要按 agentId 分区
因为同一个项目目录下,可能有多个 SDK agent 共存。
agentId 可以把它们隔离开。
这也是为什么 id 不能随便乱填的原因之一。
你通常能在这里得到什么
- 消息历史
- 运行中的 assistant 快照
- session metadata
- 归档目录
messages.jsonl 保存稳定历史。
inflight.json 保存当前尚未完成的 assistant UIMessage。多 step tool 调用过程中,SDK 会持续重写这份快照;如果执行顺利结束,最终 assistant 会写回 messages.jsonl,并删除 inflight.json。如果中途崩溃,仍然可以从 inflight.json 恢复已经生成的过程内容。
如果你在排障、做历史回放或多 agent 实验,这些落盘信息都很有价值。
meta.json
meta.json 保存 session 列表和详情所需的轻量字段:
sessionIdagentIdtitlemodelLabelcreatedAtupdatedAttimezone
title 是持久化字段。首条用户消息出现后,SDK 会优先用模型生成标题;如果生成失败,就用首条用户消息截断后写入 title。