G40:跨 Session Agent 的检索、恢复与审计
跨 session Agent 的可靠性来自可重建的显式状态、带来源的检索和受控恢复,而不是模型声称自己“记得上次发生了什么”。
内容类型:预习教材(不代表已完成)
日期:2027-04-02
阶段:P3 · AGI Foundations 90
总路线:Day 220 / 360
周次:W6 · Memory、Planning 与 Tool Use
节奏:周五知识图谱更新
状态:教材已备;学习未完成
标签:cross-session、audit、retrieval、recovery、agent-runtime
一句话定义
跨 session Agent 的可靠性来自可重建的显式状态、带来源的检索和受控恢复,而不是模型声称自己“记得上次发生了什么”。
学习目标
- 定义跨 session task success、retrieval quality、recovery quality 与 evidence completeness。
- 推导 event log、snapshot、derived summary 和 current state 的关系。
- 区分可重放事实与不可重现的模型生成过程。
- 形成 W6 组件图,说明记忆、planner、tool runtime 与权限边界。
核心知识
- 一个 session 结束时,应提交的是结构化 checkpoint:目标状态、未解决项、已确认事件、工具结果引用、权限与版本;不是整段聊天的模糊摘要。
- Event log 是按时间追加的事实流,snapshot 是某版本 reducer 的加速视图,semantic summary 是便于检索的派生材料。三者损坏后的恢复能力不同。
- Auditability 不要求公开隐藏思维链。保存 action proposal、validation decision、tool input hash、typed result、state transition 和人工决定,通常比自然语言推理更可验证。
- Recovery quality 包含故障检测、定位、恢复动作、重复副作用避免和剩余不确定性。恢复到“能继续”不等于恢复到正确状态。
- 跨 session 的任务完成率要与 memory coverage 一起看。系统可以通过拒绝处理困难 case 获得高准确率,必须报告 defer/abstain。
机制与推导
令事件日志 (E_{1:n}),reducer 版本为 (v),则状态为:
[ x_n=F_v(E_{1:n}) ]
snapshot (S_k) 是 (x_k) 的缓存,恢复时计算 (F_v(S_k,E_{k+1:n}))。若 reducer 升级为 (v'),旧 snapshot 未必兼容,因此必须保存 schema 与 migration 信息。Semantic summary (u_n=G(E_{1:n})) 不应成为唯一状态,因为 (G) 通常有损且不可逆。
定义一个轻量 evidence completeness:对计划中的关键动作集合 (A_c),检查是否同时有 proposal、decision、result、commit 四类证据:
[ EC=\frac{\sum_{a\in A_c}\mathbb 1[P_a\land D_a\land R_a\land C_a]}{|A_c|} ]
它只衡量记录齐全,不衡量动作语义正确。恢复质量可分解为:
[ RQ=(state_agreement, duplicate_effects, unresolved_unknowns, recovery_steps) ]
不要把向量压成单分数;四个维度共同保留失败形态。
最小练习或观察步骤
- 构造 session A:读取三条事件、生成未完成草稿并 checkpoint;session B:注入一条新事件后继续。
- 保存 event log、snapshot 和 summary 三层,故意删除 summary,再用 event replay 恢复;随后反过来只保留 summary,观察哪些字段不可恢复。
- 在 session 边界更换一个 tool schema version,检查 checkpoint 是否明确指出迁移或拒绝继续。
- 注入一次
UNKNOWN写结果,要求新 session 先查询状态而非重做动作。 - 记录 task terminal state、defer、retrieval 来源、结构化 drift、重复副作用与 evidence completeness。
- 画出 W6 最终图:memory write/read、planner proposal、policy validation、executor、event commit、human handoff;箭头标数据类型。
常见误区与边界
- 只保存自然语言摘要,跨 session 时无法恢复精确未完成动作与权限状态。
- 保存所有日志就宣称可审计;没有版本、关联 ID 和结果类型,日志只是文本堆积。
- replay 得到相同 state 就认为 Agent 行为可完全复现;模型候选生成仍可能非确定,只能复现已提交事件。
- schema 升级时静默解释旧字段,造成状态漂移。
- 高成功率来自大量 defer,却不报告 coverage。
- toy audit 不能证明生产合规,只训练证据边界与故障归因。
研究/系统场景连接
跨日客户案件需要知道“上次读取了什么、人工确认了什么、哪些建议尚未执行”,而不是让模型从聊天记录猜测。案件状态修改仍由授权系统拥有,Agent checkpoint 只保存引用和草稿。研究工作中,跨 session 记录应将论文外部证据、本人实际运行与未测试假设分开;恢复时能够从原始实验配置和输出重建结论范围,而非相信一段自动总结。
自检问题
- event、snapshot 与 summary 的可恢复性有何不同?
- 为什么 evidence completeness 不等于 semantic correctness?
- reducer 或 tool schema 升级时需保存哪些信息?
- replay 能复现什么,不能复现什么?
- task success 必须与 defer/coverage 怎样联合报告?
专业课程对齐
- 阅读 Generative Agents 原始论文,观察长期事件、reflection 与计划如何互动,并将其仿真目标与业务审计目标分开。
- 阅读 MemGPT 原始论文,对照 memory tier 与 checkpoint,思考 context swap 之外还需要哪些版本和来源证据。
- 阅读 ReAct 原始论文,把 action/observation 轨迹与可保存的结构化 evidence 对齐,不要求保存私有思维链。
深入学习提示
可以进一步了解 event sourcing、snapshot migration、trace context 与 tamper-evident log。保持目标轻量:先确保一个 toy session 能从事件恢复,再讨论规模。研究上最值得追问的是“哪些状态属于环境事实,哪些只是 Agent belief”,两者混同会让跨 session 错误看起来很自洽。
学后填写区
- 实际保存的三层状态:
- 恢复或无法恢复的字段:
- schema/version 观察:
- evidence completeness 的限制:
- defer 与 coverage:
- 尚未理解的问题: