会话状态
会话不只是“有聊天记录”这么简单。 在 OpenClaw 里,一条会话还会处在不同状态里,比如:
- 正在运行
- 空闲可继续
- 中断后待处理
- 需要人工确认
理解会话状态,能帮你判断很多表面上看着像 bug、其实是状态流转的问题。
为什么要关心它
因为很多现象都和状态有关:
- 为什么这条会话还能继续,而那条不行
- 为什么 UI 看着像卡住,其实是还在跑
- 为什么某个任务重启后没有自动续上
- 为什么一条旧会话还能被重新打开
如果只看“有没有聊天记录”,这些问题很难解释清楚。
最好先这样理解
可以把会话想成一个房间。
这个房间除了存历史消息,还带有运行中的一些元信息,比如:
- 当前有没有活动中的回合
- 是否允许继续追加消息
- 有没有挂起的人工操作
- 这个房间跟哪个 agent、哪个路由或哪个通道关联
所以“看见历史还在”不等于“当前状态一定健康”。
常见误判
误判 1:UI 没更新就是死了
有时候只是会话仍处于运行中,或某个步骤在等工具、等审批、等通道返回。
误判 2:重启后还能看到会话,就说明一定能无缝继续
会话能被看到,只说明状态被持久化了。 要不要继续、能不能继续、继续后会不会重复执行,是另一层问题。
误判 3:所有旧会话都应该自动恢复成“可继续”
不一定。 有些会话可能只是被保存下来了,但并不代表当前处于合适的继续状态。
排查思路
如果你怀疑会话状态不对,优先按这个顺序看:
- 当前 Gateway 是否健康
- 会话对应的 Agent / 路由是否还有效
- 有没有等待审批、等待工具、等待通道回执
- 重启或恢复后是否留下半完成状态
必要时再结合:
