首页/AI/提示词工程速查/会话恢复与持久化

会话恢复与持久化

会话状态持久化后支持重连与换设备恢复:存结构化状态(摘要、实体表、未决事项)而非整段原始消息;恢复时校验版本与时效。

提示词工程速查AI更新于 2026-10-13

会话恢复与持久化

会话状态持久化后支持重连与换设备恢复。要存的是结构化状态——摘要、实体表、未决事项、最后一条消息标识——而不是整段原始消息,既省存储也省恢复时间。恢复时先校验状态版本与时效,版本不兼容或超期就降级为新会话或只读回放。

基本信息

存什么摘要、实体表、未决事项、最后处理的消息标识
不存什么整段原始消息、敏感字段原文
恢复流程读状态 → 校验版本 → 缺失则重建摘要 → 注入上下文
时效超期会话降级为新会话或只读回放
版本迁移状态结构升级需带迁移逻辑,旧数据不可直接反序列化

典型使用场景

  • 换设备继续:手机上开始的会话在电脑上接着聊,摘要与实体表保证一致性
  • 服务重启恢复:进程重启后从存储读回状态,用户不必重述背景
  • 超时重回:用户几小时后再回来,按时效规则决定是续用还是新建
  • 客服转接:把结构化状态交给下一环节,而不是转一大段原始记录
  • 审计与复盘:状态快照可用于还原当时的上下文构成

持久化结构示例(JSON)

持久化结构示例(JSON)
{
  "session_id": "s-8871",
  "state_version": 4,
  "summary": "目标 / 已达成的结论 / 关键约束 / 未决事项",
  "entities": {"timezone": "Asia/Shanghai", "lang": "zh"},
  "last_turn_id": 118,
  "updated_at": "2026-10-12T10:30:00+08:00",
  "expires_at": "2026-11-11T10:30:00+08:00"
}
# 恢复时: 校验 state_version 与 expires_at,超期或版本不符则重建

字段与用途

字段用途注意
state_version判断能否直接反序列化结构升级必须配套迁移
summary恢复对话状态本身也要受版本影响
entities恢复用户偏好与业务标识冲突值以较晚确认的为准
last_turn_id避免重复处理与消息存储对账
expires_at判断时效过期走降级路径
持久化状态里不要放敏感原文:会话存储往往保留时间更长、访问面更广,一旦带上原始内容,泄露窗口比在线会话大得多。
恢复动作要幂等:同一次恢复可能被重复触发(重连、刷新、多设备同时进入),状态写入前先确认当前版本,避免两次恢复互相覆盖。

易错点

  • 整段消息原样存取,恢复慢且存储成本高
  • 状态版本升级后旧数据未迁移,恢复时反序列化直接报错
  • 不设时效,几个月前的会话被当作有效上下文继续使用
  • 恢复时不校验最后处理位置,重连后重复执行已经做过的动作

数据来源与参考

  • 12-Factor App 无状态进程与状态外部化原则;会话存储通用实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌