Session OS
Session OS 是 Jarvis 的会话协调层。它让主聊天可以稳定地启动、发现、检查、回放和接续 Claude Code、Codex、OpenCode 会话。
Session OS 把单个编码运行时进程转成持久会话记录。记录包含状态、历史、可见性和控制入口。
它覆盖两类会话:
- 托管会话:由 Jarvis 启动。Jarvis 知道启动者、运行时、任务意图和后续控制方式。
- 本地运行时会话:在 Jarvis 外部启动,通常来自终端。Jarvis 可以发现并展示状态,但控制能力取决于运行时和安全性。
为什么需要它
标题为“为什么需要它”的章节编码 Agent 很有用,但多个裸终端会话很难监督。Session OS 让你可以:
- 在一个聊天工作台看到活跃工作;
- 同时比较托管会话和外部启动的会话;
- 不用把完整终端日志粘回聊天就能恢复上下文;
- 让工作会话在阻塞或需要决策时主动求助;
- 在页面刷新、重连或短暂运行时失败后恢复监督。
工作方式
标题为“工作方式”的章节Session OS 组合了这些行为:
- 启动或发现:Jarvis 自己启动托管会话,或发现本机已有的兼容运行时会话。
- 归一化:把运行时特有细节映射成统一会话模型。
- 状态跟踪:持续展示运行、等待、阻塞、空闲等用户可理解状态。
- 低噪声可见性:主聊天接收摘要胶囊和 MCP 汇报,而不是完整终端流。
- 人工交接:工作会话需要决策时,请求会回到主聊天,用户一次回复即可继续。
- 回放与接续:你可以重新打开会话、检查历史,并继续派发后续任务。
常见会话状态
标题为“常见会话状态”的章节- 运行中
- Agent 正在输出、执行命令或推进任务。
- 等待中
- Agent 正在等待工具、模型或外部进程返回。
- 已阻塞
- Agent 需要人工输入,或无法安全继续。
- 空闲
- 会话仍可用,但当前没有推进。
- 待人工
- 需要用户决策、授权或远程回复。
- Agent 汇报
- worker 或主脑会话通过 MCP 上报了状态。
托管会话与本地会话
标题为“托管会话与本地会话”的章节| 会话类型 | 如何出现 | Jarvis 通常知道什么 | 典型用途 |
|---|---|---|---|
| 托管会话 | 从 Jarvis UI 启动 | 运行时、启动意图、会话元数据、后续控制入口 | 希望 Jarvis 全程监督的新任务 |
| 本地运行时会话 | 已在终端中存在后被发现 | 运行时身份和可观察状态,控制能力取决于运行时 | 已经手动开始、现在希望纳入观察的工作 |
失败模式
标题为“失败模式”的章节- 运行时不可用:CLI 理论上存在,但当前机器状态无法启动或接管。
- 可发现但不可控:Jarvis 能看到会话,但无法安全发送后续控制。
- 状态漂移:运行时停止响应后,UI 可能短暂显示旧状态,直到发现或清理逻辑修正。
- 缺少进展汇报:工作会话可能继续运行,但一段时间没有 MCP 汇报,此时摘要胶囊是主要信号。
- 人工决策瓶颈:工作会话会一直阻塞,直到有人回答问题或派发下一步。
关键点是:单个信号通道丢失不会抹掉会话记录。Jarvis 会尽量保持会话可见。