在 Docker 沙箱上自托管
node-docker 驱动把每个 Session 运行在与 Node 服务器同一台主机的 Docker 容器里,通过 Docker CLI 适配器驱动——不需要外部沙箱账号。工作区位于宿主机文件系统,在文件系统层面做持久的工作区检查点/恢复——没有进程内存检查点,也没有提供商侧挂起/恢复。
- Docker 已安装且对 worker 进程可达(
DockerCommandPort适配器;非标准环境可注入自定义docker命令端口)。 - 镜像引用,如
node:22-slim。 - Node 自托管自身的要求(
BETTER_AUTH_SECRET、PLATFORM_ROOT_SECRET、一个 SQL 后端)。见 Node + Docker(不用 Cloudflare)。
Docker 作为预装的 Node 运行时组合,而不是通过 SANDBOX_PROVIDER。工厂是
@open-managed-agents/managed-runtime-node 的
createNodeManagedRuntime / createNodeManagedRuntimeDriver /
createNodeManagedEnvironmentWorker:
const runtime = await createNodeManagedRuntime({ rootDir: "/var/lib/openma", sql, // SqlClient——SQLite/Postgres/MySQL initializeFenceSchema: true, ownerId: processId, leaseTtlMs: 90_000, heartbeatIntervalMs: 30_000, image: "node:22-slim",});完整选项集:rootDir、sql、initializeFenceSchema、ownerId、
leaseTtlMs、heartbeatIntervalMs、checkpointIntervalMs、image、
network、docker、additionalMounts(source/destination/readOnly)、
extraHosts、scheduler、fence、runtimeCheckpoint、
credentialEgress、sessionInputs。
| Harness 通道 | ama_worker、openma_supervised |
| suspendResume | 不支持 |
| 工作区 | checkpoint_restore,持久(宿主机文件系统) |
| 输出 | final_collect,持久(宿主机文件系统) |
| 进程检查点 | 无 |
| 凭证出口 | 默认 unsupported/snapshot |