【免费下载链接】SPACESandboxed Platform for Agentic Code Execution: pluggable-runtime sandboxes for running agent and user code in isolation.项目地址https://gitcode.com/gh_mirrors/space34/SPACE点击查看免费下载SPACE 是一款面向 AI Agent 的沙箱代码执行平台Sandboxed Platform for Agentic Code Execution用 Firecracker 微虚机把 agent 与用户代码隔离运行。理解 SPACE 沙箱生命周期核心就是搞清running运行、paused暂停、suspended休眠三种状态的区别以及pause、suspend、wake三个操作分别适用什么场景。本文结合官方文档与协议定义带你快速做出正确选择。 三种状态一句话讲清在 SPACE 的 API 层面沙箱对外呈现三种主要状态状态VM 是否驻留节点内存/文件系统恢复速度资源成本Running✅ 驻留实时无需恢复持续占用Paused✅ 驻留冻结但保留⚡ 极快解冻 vCPU仍占内存Suspended❌ 已释放持久化到磁盘/对象存储中等从快照恢复≈ 0 简单记法paused 是屏保suspended 是关机前存档。图SPACE 参考部署架构 —— 沙箱由 sandbox-manager 编排、node-manager 在节点上真正拉起 Firecracker 微虚机 状态背后内部状态机你在 API 里看到的running/paused/suspended背后对应一套更细的内部状态机。沙箱管理服务用一组SandboxState表示完整生命周期包括Starting、Started、Pausing、Paused、Resuming、Suspending、Suspended、Restoring等定义见 state.rs。对外协议里三个关键 RPC 的语义写得很直白见 manager.protoRPC官方注释语义Pause冻结 vCPU进程保持存活Pause a running sandbox, freeze vCPUs, process stays aliveSuspendFC vmstate 完整内存快照 停止释放资源Wake从任意休眠状态唤醒恢复面向 guest 的访问也就是说暂停只是按了暂停键休眠才是存档并关闭虚拟机。⚡ Running随时可跑的状态沙箱创建成功后进入running。此时你可以随时创建命令会话并执行代码命令输出通过事件流实时返回。官方 Python 示例 first_sandbox.py 演示了完整的创建 → 等待 running → 执行命令 → 查看进程 → 删除流程见 docs/first-sandbox.md。⚠️ 注意running 不等于你的应用已就绪。命令执行要求进程端点就绪wake之后同样需要重新检查 running 状态与进程就绪后再发命令。 Paused驻留内存的屏保调用pause后vCPU 被冻结guest 内所有进程暂停在现场VM 仍然驻留在原节点内存内容原封不动恢复resume/wake只是解冻 vCPU几乎无感。适用场景用户暂时离开但马上回来几十秒到几分钟、需要保持网络连接或会话上下文的短中断。 Suspended完整存档 释放资源调用suspend后保存 VM 状态vmstate、完整内存快照和文件系统变更停止并释放该沙箱的活跃 VM 资源节点内存、CPU 立即归还恢复时从持久化快照重建沙箱甚至可以跨节点恢复快照存于对象存储因此不受单机容量限制。适用场景长时间空闲小时到天级、多租户集群需要回收高密度资源。这也是成本敏感场景的首选。⚖️ 如何选择决策速查你的场景推荐操作用户切到别的标签页几秒后回来保持Running或依赖自动空闲策略中断几分钟需秒级恢复、保持会话pause→wake闲置数小时以上、想释放节点资源suspend→wake沙箱不再需要直接删除DELETE勿用休眠养着两个补充事实ECWE2B 兼容接口只映射 suspend 路径pause对应 SPACE 的suspendresume对应restore它不暴露驻留内存的 pause/resume见 docs/ecw.md。自动生命周期策略支持按空闲自动执行暂停或休眠协议中AUTO_LIFECYCLE_IDLE_ACTION_PAUSE/_SUSPEND可以让平台替你选择。️ pause / suspend / wake 实战Native API三个生命周期接口如下摘自 docs/first-sandbox.md生命周期请求效果POST /v1/sandboxes/{id}:pause保持 VM 驻留、暂停执行POST /v1/sandboxes/{id}:suspend保存 VM 状态与文件系统释放活跃 VM 资源POST /v1/sandboxes/{id}:wake恢复或还原沙箱实战要点每个变更请求都带Idempotency-Key头避免超时重试造成重复操作请求成功后返回一个operation轮询它直到成功不要只凭 HTTP 200 下结论wake完成后重复执行 running 状态与进程就绪检查再执行下一条命令对 suspended 的沙箱直接发命令是不行的——先wake再操作。图沙箱 Pod 视图缓存机制 —— 各组件通过 watcher 与缓存读取沙箱身份、就绪与槽位状态理解 wake 后何时算真正可用的关键✅ 避坑清单❌ 把状态已变更当成立即可用wake 后必须再查 ready❌ 忘记Idempotency-Key超时后无法安全重试❌ 用 ECW 的pause期待驻留内存暂停它实际执行的是suspend❌ 用 suspended 沙箱长期替代删除快照同样占存储无用沙箱请删除。 延伸阅读第一个沙箱完整流程docs/first-sandbox.md暖池让创建更快docs/warm-pools.mdECW 兼容层行为docs/ecw.md生命周期协议定义proto/sandbox/manager/v1/manager.proto内部状态机源码crates/libs/sbx/mgr/server/src/state.rs赞分享【免费下载链接】SPACESandboxed Platform for Agentic Code Execution: pluggable-runtime sandboxes for running agent and user code in isolation.项目地址https://gitcode.com/gh_mirrors/space34/SPACE点击查看免费下载相关推荐OmO DAG TUI 暂停状态诚实化paused run 头部三态渲染契约resuming / suspended · N active / paused与 lease 机制源码级解析OmO DAG TUI 暂停状态诚实化paused run 头部三态渲染契约resuming / suspended · N active / paused人工智能AI Agent代码智能体多智能体MCP ClientsAgent 编排CubeSandbox Node.js/TypeScript SDK 完全指南从沙箱创建到生命周期管理的实战手册CubeSandbox Node.js/TypeScript SDK 完全指南从沙箱创建到生命周期管理的实战手册 cubesandbox/sdk 是 Cub人工智能AI AgentAgent 沙箱虚拟化云原生后端trueforge-core 演进全解析沙箱环境、出站 HTTP 安全与 Turn 生命周期状态机trueforge core 演进全解析沙箱环境、出站 HTTP 安全与 Turn 生命周期状态机 导读 truefoundry/trueforge c创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考