用 Effect Layer 抽象沙箱供应商,一行切换 e2b 与 Daytona 防锁定

samgoodwin89 · x · 2026-11-15

作者分享了一套对抗 agent 沙箱供应商锁定的工程模式:各沙箱服务(e2b、Daytona 等)用法趋同——都是建基础模板、打快照、运行时 fork,因此可以统一抽象到自己的 Context.Service 接口后面,每个供应商实现为一个 Layer。

配图给出完整 TypeScript 代码:定义 Runner 服务接口(只暴露 run(cmd)),再分别用 Layer.effect 实现 E2BRunner 和 DaytonaRunner(各自 CreateSandbox(Warm) 后执行命令);在 Cloudflare Worker 入口处只需把 Effect.provide(E2BRunner) 换成 Effect.provide(DaytonaRunner),即完成供应商切换,业务代码零改动。核心思路:沙箱供应商已高度同质化,值得在自己的接口层后封装以保持可替换性。

所属事件:Alchemy 作者演示沙箱接入模式:快照加 fork 趋同,可抽象防锁定(2 条相关)→

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →