你实际上是如何使用像E2B或Daytona这样的代理沙箱的?试图弄清楚我是否需要它
摘要
一位开发者讨论了使用像E2B和Daytona这样的代理沙箱来运行代码执行时的权衡取舍,向社区询问关于生命周期、状态持久化、网络隔离以及托管式与自托管式解决方案的问题。
我一直在反复思考沙箱这个问题,不确定自己是不是想太多了。理论上看,这种设置是合理的。如果代理要编写并运行代码,你显然不希望它在宿主机上做这些事情。E2B、Daytona 以及自建的 Firecracker/gVisor 路线基本都解决同样的问题:给代理一个可丢弃的盒子,让它随便折腾。让我纠结的是实际的使用模式。有几点我一直拿不定主意:
- 生命周期。你是为每个任务创建一个全新的沙箱然后销毁,还是维持一个预热池?冷启动延迟和运行间状态泄漏之间的取舍才是真正的纠结点。
- 状态。你持久化了多少内容?有些工作流需要代理一次性安装依赖并重复使用,另一些则每次都要完全干净。
- 文件系统+网络。你实际上把限制做到多严格?完全网络隔离听起来不错,直到代理需要 `pip install` 某个东西时才发现问题。
- 托管式 vs. 自托管式。E2B 和 Daytona 上手很愉快,但我对于把代码执行交给别人的基础设施还是会有点紧张。
那么,对于那些实际运行代理并使其真正执行代码的人:你们在用啥?是有意选择还是偶然碰到的?相比自己直接跑在容器里,什么因素让这些方案真正值得一试?我真的很想知道大家是觉得这些工具不可或缺,还是说对于大多数情况用普通的 Docker 就能解决问题了。
相似文章
大家是如何处理长时间运行的代理的状态的?无状态沙盒正在吞噬我的夜晚
一位开发者讨论了在使用沙盒环境下的长时间运行编码代理中状态持久化的挑战,详细说明了高昂的恢复开销,并寻求社区解决方案来实现无需自定义检查点层的持久状态处理。
@latentspacepod: Daytona 的 Agent-Native 计算:60毫秒沙箱,75秒内启动5万个沙箱,每日85万次运行,RL/评估,CLI优于MCP,以及终结…
Daytona 首席执行官 Ivan Burazin 讨论了他们的 Agent-Native 计算平台,该平台提供60毫秒沙箱、有状态快照,并支持 RL/评估,标志着从本地开发到基于云的代理基础设施的转变。
我们如何构建安全、可扩展的代理沙箱基础设施(8分钟阅读)
Browser Use 描述了隔离执行代码的 AI 代理的两种模式:隔离工具与隔离代理。他们使用 AWS 上的 Unikraft 微虚拟机实现了代理隔离模式,获得了安全、可扩展且一次性的沙箱。
@sidpalas: https://x.com/sidpalas/status/2066521471430574162
这篇文章评估了用于后台代理的沙箱平台,重点关注运行实际工作负载、入口流量和成本等要求。它概述了Deputies沙箱提供者接口和关键考量。
在沙盒中部署智能体 vs 解耦
本文比较了在云环境中部署 AI 智能体的两种模式:直接在沙盒中部署与解耦组件。文章解释了沙盒方法因云故障而存在的局限性,并重点介绍了 Anthropic 的 Claude Managed Agent 作为解决方案,该方案将会话存储、智能体运行时和沙盒解耦,以提高弹性。