session.snapshot()
显式固化本地 Session 首次生成后固定的完整 system
session.snapshot()
本地 Session 第一次生成 system 后会在内存中固定这份结果。Agent instruction 或 plugin registry 后续发生变化时,已有 Session 的 system 不会改变;新 Session 才会使用最新配置生成自己的 system。
调用 snapshot() 可以显式把当前 Session 的完整 system 固化到 instruction.md:
await session.snapshot();文件位置:
<project_root>/.downcity/agents/<agent_id>/sessions/<session_id>/instruction.md恢复 Session 时,SDK 优先读取这个文件;文件不存在时使用 Agent 当前 instruction 和 plugin 重新生成。删除 instruction.md 即可取消持久化,后续恢复会重新生成。
snapshot() 保存完整 system,包括自定义 instruction、SDK core、plugin system 和 Session context,但不包含消息历史、模型或环境变量。多个 system block 会按原顺序合并为一个 Markdown 文档;再次调用会原子覆盖现有文件。
需要先从 Agent 当前配置重新生成再持久化时,依次调用 await session.syncshot() 和 await session.snapshot()。如果 instruction.md 已经存在,syncshot() 自身也会同步覆盖该文件。
该方法只属于本地 AgentSession。远程 Session 的 instruction 持久化策略由服务端宿主管理。