AI新基建当属沙盒,但怎么用是个问题!
越来越多的智能体需要执行代码、安装软件包、访问文件。这些操作需要工作空间,但必须与主机系统隔离,防止智能体访问凭证、文件或网络资源。沙盒提供了这种隔离。
LangChain创始人Harrison Chase最近分析了AI智能体与沙盒集成的架构问题,指出目前有两种架构模式:智能体在沙盒内运行,或者智能体在外部运行、将沙盒作为工具调用。

智能体完全运行在沙盒环境中,外部通过网络与之通信。
实现方式:构建预装智能体框架的Docker或VM镜像,在沙盒内运行,从外部连接发送消息。智能体暴露API端点(通常是HTTP或WebSocket),应用程序跨沙盒边界通信。
优势:
挑战:
Witan Labs的Nuno Campos指出另一个安全问题:"智能体的任何部分都不能拥有比bash工具更多的权限。例如,如果你想要一个既有bash工具又有网络搜索工具的智能体,那么所有LLM生成的代码都可以进行无限制的网络访问,这是很大的安全风险。如果是模式二,你可以让工具拥有比LLM生成代码更多的权限,因为安全边界围绕bash工具,而不是整个智能体。"

智能体运行在本地或服务器上,需要执行代码时通过API调用远程沙盒。
实现方式:智能体在本地(或服务器上)运行,当生成需要执行的代码时,调用沙盒提供商的API(如E2B、Modal、Daytona或Runloop)。提供商的SDK处理所有通信细节,从智能体角度看,沙盒就是另一个工具。
优势:
E2B的Tomas Beran指出的其他优势:
Zo Computer的Ben Guo补充:"我们选择模式二还考虑到未来可能需要在GPU机器上运行智能体工具——通常持久沙盒和推理工具的环境需求会发生分化。"
挑战:
选择模式一的情况:
选择模式二的情况:
使用deepagents框架的具体示例:
模式一:智能体在沙盒内首先构建一个预安装智能体的镜像:
FROM python:3.11
RUN pip install deepagents-cli然后在沙盒内运行。完整的实现需要额外的基础设施来处理应用程序和沙盒内智能体之间的通信(WebSocket或HTTP服务器、会话管理、错误处理)。
模式二:沙盒作为工具
from daytona import Daytona
from langchain_anthropic import ChatAnthropic
from deepagents import create_deep_agent
from langchain_daytona import DaytonaSandbox
# 也可以使用E2B、Runloop、Modal
sandbox = Daytona().create()
backend = DaytonaSandbox(sandbox=sandbox)
agent = create_deep_agent(
model=ChatAnthropic(model="claude-sonnet-4-20250514"),
system_prompt="You are a Python coding assistant with sandbox access.",
backend=backend,
)
result = agent.invoke({
"messages": [{
"role": "user",
"content": "Run a small python script",
}]
})
sandbox.stop()这段代码运行时的流程:
这个话题在社区引发了讨论。
有开发者质疑模式一在生产环境中的可行性,认为存在"巨大的安全漏洞和各种极具挑战性的基础设施约束(沙盒可观察性、正常运行时间、扩展等)"。
Nico Ritschel对一些缺点提出不同观点,认为有简单实用的解决方案:
Harrison Chase回应说密钥代理还不是标准做法,虽然一些提供商正在添加这些功能。
InvariumAI的Adish Jain指出,无论采用哪种模式,真正的问题是如何验证智能体在沙盒内实际执行的操作,强调了智能体行为测试的重要性。
开发者Ale Alonso表示沙盒化是使用deepagents时遇到的最大困难之一。
Nathan Flurry介绍了他们开发的Sandbox Agent SDK,这是一个专门解决"智能体在沙盒内"模式复杂性的工具。该SDK支持Claude Code、Codex、OpenCode、Cursor、Amp和Pi等多种智能体,提供统一的HTTP API来远程控制沙盒内的智能体。
小结
智能体需要在隔离环境中执行代码以确保安全。两种架构模式各有优势:在沙盒内运行智能体(镜像本地开发,紧密耦合)或在外部运行并将沙盒作为工具(易于更新,API密钥保持安全)。每种模式根据你的需求都有不同的好处和权衡。
相关链接:
https://x.com/hwchase17/status/2021261552222158955?s=46
http://github.com/rivet-dev/sandbox-agent