会话生命周期
会话生命周期描述一个编码会话在 Jarvis 中随时间变化的过程:启动、活跃工作、等待、阻塞、人工介入、后续派发和收束。
会话生命周期是 Jarvis 启动或发现一个编码会话后,该会话经历的状态与控制转换序列。
为什么需要它
标题为“为什么需要它”的章节没有清晰生命周期,会话管理会变成猜测。操作者需要知道:
- 会话是新建、活跃、等待、阻塞,还是可以复用;
- 工作会话什么时候需要人工帮助;
- 什么时候应该继续派发,什么时候应该开新会话;
- 页面刷新或短暂断线后如何恢复监督。
工作方式
标题为“工作方式”的章节大多数会话会经历这个循环:
- 已创建:托管会话从 Jarvis 启动,或本地运行时会话被发现。
- 活跃:工作会话正在输出、编辑代码、运行命令或推进任务。
- 等待:运行时等待工具、模型或外部进程。
- 阻塞或需要决策:工作会话提出问题、声明阻塞或请求更多上下文。
- 后续处理:用户回答、派发更多工作,或打开完整会话检查。
- 收束:任务完成、暂停,或该会话不再适合继续。
运行时机制各不相同,但监督模型一致:观察信号,只在必要时人工介入,并在上下文仍有价值时从同一会话继续。
用户可见状态
标题为“用户可见状态”的章节- 运行中
- Agent 正在输出、执行命令或推进任务。
- 等待中
- Agent 正在等待工具、模型或外部进程返回。
- 已阻塞
- Agent 需要人工输入,或无法安全继续。
- 空闲
- 会话仍可用,但当前没有推进。
- 待人工
- 需要用户决策、授权或远程回复。
- Agent 汇报
- worker 或主脑会话通过 MCP 上报了状态。
入口类型
标题为“入口类型”的章节- 托管会话 从启动进入生命周期。
- 本地运行时会话 从发现进入生命周期。
之后两者都可以出现在同一会话列表中,并通过同一套 UI 检查;差异主要体现在可控制能力上。
失败模式
标题为“失败模式”的章节- 孤儿状态:运行时中仍有会话,但 Jarvis 监督信息暂时过期。
- 复用判断错误:旧会话上下文漂移太远时,继续派发可能不如新开会话。
- 人工队列堆积:多个工作会话同时进入待决策状态。
- 误判完成:工作会话停止汇报不等于任务分支已经干净完成。
生命周期视图的价值是把介入点显式化,减少这些误判。