跳到正文
浏览文档

了解原理

核心概念

了解沙箱、工作区会话、命令会话、快照与层栈如何协同。

本页内容+

沙箱边界

一个沙箱由管理器持有的生命周期记录及其 Docker 容器、容器内守护进程、运行时状态、工作区根目录和端点共同构成。管理操作负责创建和销毁这条边界;运行时与可观测性请求使用沙箱 ID 指定目标。

网关接收来自 CLI、MCP 和控制台客户端的已认证 RPC。它处理系统范围的管理请求,并将沙箱范围的请求转发给对应的守护进程。

工作区会话

工作区会话是基于已固定层栈历史的可写隔离投影。它的私有 upper 目录记录更改,租约则保持 lower 层链稳定。传入 --workspace-session-id 后,命令和文件操作会定位到已有会话。

如果 exec_command 未提供该 ID,系统会创建一个采用 publish_then_destroy 收尾策略的自动会话。显式生命周期操作属于内部协调接口,因此不会列入公开 CLI 或 MCP 工具。

命令会话

命令会话的范围比工作区会话更窄。它标识一个仍在运行的进程及其稳定输出记录。如果任务在首次输出等待结束后仍未完成, exec_command 会返回 command_session_id;后续可将其用于 read_command_lineswrite_command_stdin

终态属于命令;文件系统发布属于包含该命令的工作区会话。因此,进程结束与更改发布彼此相关,但仍是两个不同事件。

快照与层

未提供工作区会话 ID 时,文件读取会投影最新的已发布快照;写入和编辑会发布一个归因于 operation:<request_id> 的层。通过会话捕获时,该层则归因于工作区会话。

层栈(LayerStack)以最新优先顺序保存不可变的基础层、发布层和压缩层。租约固定仍在使用的历史;压缩会把符合条件的区段替换成内容等价的扁平层,并把在线会话重新挂载到压缩后的层链。存储模型请参阅 层栈章节

发布与隔离

命令在命名空间和挂载边界内运行。写入在捕获前保持私有;发布要么添加一个已解决冲突的层,要么拒绝整组更改,从而避免并发工作采用“最后写入者胜出”的合并方式。

网络出口、保留路径、挂载遮蔽和 shell 执行属于运行时能力,而不是额外的公开操作。 命名空间运行时 工作区协调 章节会深入解释这些边界。

18 个结果