Docker Cloud Sandboxes为在Docker管理的基础设施上运行AI编码智能体(AI coding agents)提供了安全的托管执行环境"。该平台基于硬件强制隔离的microVM构建,提供了一致的执行环境和统一的CLI工作流,使工作负载能够在本地机器与云端之间无缝迁移。

Docker Cloud Sandboxes是Docker Sandboxes"的演进版本。Docker于今年早些时候推出了Docker Sandboxes,旨在提供本地的microVM环境,让编码智能体能够自主且安全地运行。然而,Docker指出,开发者现在越来越多地并行运行多个长周期任务,这产生了对超越本地机器限制的持久化、可扩展执行环境的需求。

当智能体仅进行短时突发工作时,人们关注的是模型能否将任务连贯地执行下去。如今,当它们的工作时长达到数小时,问题就变成了这些工作究竟在哪里发生。笔记本电脑是围绕人设计的:合上盖子它就会休眠,使用电池时它会降速,当你移动时它会断开网络连接。

借助Cloud Sandboxes,开发者只需一条命令即可在本地和云端执行环境之间迁移沙箱,从而实现“同时运行十几个智能体,每个运行5小时、10小时甚至21小时,而无需人工监视”。Cloud Sandboxes采用与本地Docker Sandboxes相同的隔离模型,并通过相同的CLI进行管理。这使得开发者可以在本地启动任务,在需要更多资源时将其迁移到云端,或者在下班前将任务移交给云端。另一个关键使用场景是将数十个任务并行化,每个任务都在其独立的云端沙箱中运行。

要将沙箱从本地机器迁移到Docker基础设施(或反向迁移),只需运行以下命令:

$ sbx move my-project --to cloud

该命令“会捕获沙箱的文件系统并在另一端重新创建,因此你的工作成果会随之迁移”。

除了Cloud Sandboxes,Docker还发布了多个套件(Kits),这些是根据DDocker Sandbox Kit Specification"规范定义的预配置、预构建的沙箱。在最新的Kits v3规范中,Kits不再被视为单独的构件,而是打包为标准OCI镜像。这使得它们可以像其他Docker镜像一样使用(包括使用build和pull命令),并可作为构建更复杂Kits的基础。

在评论这一发布时,德意志银行首席DevOps工程师Florin Lungu表示,他认为“这项创新允许在microVM中进行安全、自主的编码",从而增强了我们工作流的灵活性,这非常有趣”。

然而,Reddit用户CircumspectCapybara指出,沙箱化仅解决了部分问题":“任何有实际用处的智能体工作负载都需要将其沙箱化的智能体连接到有限的外部服务”,以便访问“它在现实生活中实际会调用的工具、真实的库或工件,以及它可能尝试从PyPI、Docker Hub或Hugging Face拉取的内容”。这即使在智能体被限制在沙箱内部时也会带来潜在的攻击面:“它们可以只与被授予访问权限的有限服务通信,并在留在沙箱内的同时,通过这种通信破坏这些服务。”

最后,Hacker News读者ongedierte也表达了同样的担忧",认为“传统沙箱不会是正确的抽象层”,并且“基于对象能力(object capabilities)构建约束机制,并能够精确限制智能体以何种方式访问哪些资源,才是未来的发展方向”。

查看英文原文:Docker Cloud Sandboxes Provide a Consistent Sandbox Abstraction Across Laptop and Cloud"