今天我们宣布弃用 Sandbox SDK 的若干功能。自首次发布以来,SDK 已大幅成长和成熟。随着 Agent 工作流的发展,我们已发布了许多新功能和实验性内容,让开发者能够轻松地将安全的隔离代码执行集成到其工作流中。
我们希望 SDK 在快速迭代代码库的同时,继续为 Agent 工作流提供稳定的基础。这些已弃用的功能要么已被更新的功能所取代,要么采用率较低。它们将保留在代码库中直至 2026 年 7 月 9 日,之后将不再出现在未来的 Sandbox SDK 版本中。
2026 年 4 月,我们发布了新的 RPC 传输并弃用了 WebSocket 传输。此设置控制沙箱容器与 Workers 生态系统的通信方式。RPC 传输消除了 HTTP 和 WebSocket 传输的两种限制。自 2026 年 6 月 9 日起,它是推荐的默认选项。HTTP 和 WebSocket 传输将不再出现在 2026 年 7 月 9 日后发布的 Sandbox SDK 版本中。
如需在 2026 年 7 月 9 日之前迁移,请将 SANDBOX_TRANSPORT 变量更新为 rpc,或在调用 getSandbox() 时设置 transport 选项。更多信息,请参阅传输配置文档。
Desktop 功能作为 Sandbox SDK 功能演示而推出——可在沙箱中控制完整的浏览器环境。随着 Cloudflare Browser Run 的推出,该功能使用率极低。我们已在 0.10.2 中将其移除。
我们最近在 Sandbox SDK 中发布了对 Cloudflare Tunnel 的支持。它为将沙箱中运行的服务公开到公共互联网提供了强大的 API,解决了许多人在本地开发和部署到 workers.dev 域名时遇到的问题。如需从 exposePort() 迁移到隧道,请参阅隧道 API 文档和公开服务指南。
默认情况下,Sandbox SDK 中的 exec() 方法在所有调用之间维护一个默认会话,因此某次调用中的 cd 会在下一次调用中生效。这种便利性对手动编写 exec 语句的开发者有帮助,但会让 Agent 感到困惑,并导致难以追踪的 Bug。自 0.10.3 起,我们在 getSandbox() 接口上引入了 enableDefaultSession 标志来关闭此功能。默认会话这一概念——以及该标志——将在后续版本中移除。
我们建议今天就将 enableDefaultSession: false 设置为当前值,并在需要之前行为时使用 sandbox.createSession() API。
我们还在整合所有缓冲数据的 API,以默认支持流式传输。这包括 readFile、writeFile 和 exec。流式等效方法将被移除。
我们正在探索将非核心功能(如代码解释器、终端和 git API)移入辅助工具。这些功能将保留现有 API,因此迁移应该很简单。
如果您使用了上述任何功能,请参阅 2026 年弃用迁移指南。我们还提供了一个 Agent skill 来协助迁移。
如有任何问题,请在 Cloudflare 开发者 Discord ↗ 中提问。