跳转至

第 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 和恢复策略,几乎都建立在状态对象是否清楚之上。