第 27 章 会话与状态管理¶
Agent 一旦离开单轮问答,就离不开状态。会话与状态管理的难点不在于“保存点历史”,而在于系统到底如何知道当前任务做到哪里、有哪些中间产物、哪些动作已经执行、哪些失败仍待恢复。本章讨论的是运行时状态,而不是长期知识。
27.1 Session 与 Task¶
一个常见错误是把会话和任务混为一谈。会话描述的是交互容器,任务描述的是目标推进对象。一个会话中可以有多个任务,一个任务也可能跨越多个会话或多个交互回合。
27.2 状态对象¶
至少要显式管理:
- 当前阶段。
- 已执行动作。
- 中间结果。
- 待确认条件。
- 失败记录。
没有结构化状态,系统就只能依赖长历史回放。
27.3 中间状态持久化¶
只要任务可能被中断,中间状态就必须落盘或入库。否则进程重启、超时或人工切换之后,系统几乎只能整段重来。
flowchart LR
A["Session"] --> B["Task"]
B --> C["当前阶段状态"]
C --> D["动作结果 / 中间产物"]
D --> E["持久化状态存储"]
E --> F["恢复执行"]
27.4 本章小结¶
状态管理让 Agent 从一次性响应系统变成持续任务系统。后面的可靠性、Workflow 和恢复策略,几乎都建立在状态对象是否清楚之上。