公司动态

沙箱有哪些、谁开发的、如何让 Agent 在沙箱中运行,以及配置参数详解

📅 2026/8/13 9:37:55
沙箱有哪些、谁开发的、如何让 Agent 在沙箱中运行,以及配置参数详解
一、LangChain Deep Agents 支持的主要沙箱 开发者沙箱名称开发者 / 公司简介隔离技术主要特点LangSmith SandboxLangChain官方第一方托管沙箱无需第三方账号官方管理与 LangSmith 深度集成、支持快照、Auth Proxy、Service URLE2BE2B捷克创始人 Vasek Mlejnsky Tomas Valenta2023 年成立目前最流行的 AI Agent 沙箱之一Firecracker microVM启动极快~150ms、开源、高安全隔离、Fortune 100 广泛使用DaytonaDaytona克罗地亚Ivan Burazin 等2023 年成立后转向 Agent 基础设施可编程、可组合的计算环境容器 / Kata / gVisor 等冷启动极快~90ms、支持 GPU、持久化、开源友好ModalModal Labs无服务器 AI 计算平台沙箱是其能力之一gVisor原生 GPU 支持强、适合机器学习工作负载RunloopRunloop AI旧金山约 2024–2025 年专为 AI Coding Agent 设计的 DevboxmicroVM 容器企业级、快照/蓝图、高性能Vercel SandboxVercelVercel 平台原生沙箱Firecracker microVM与 Vercel 生态深度集成、按活跃 CPU 计费AgentCoreAWSBedrock AgentCore Code InterpreterAWS 官方代码解释器沙箱AWS 基础设施适合已在 AWS 生态的用户此外还可通过自定义方式接入其他提供商如 NVIDIA OpenShell 等。二、让 Agent 在沙箱中运行的具体方式两种模式LangChain 推荐的是Sandbox as Tool模式Agent 跑在你这边沙箱只负责执行1. Python 代码方式最常用以几个主流提供商为例LangSmith官方推荐入门fromdeepagentsimportcreate_deep_agentfromdeepagents.backendsimportLangSmithSandboxfromlangsmith.sandboximportSandboxClientfromlangchain_anthropicimportChatAnthropic clientSandboxClient()ls_sandboxclient.create_sandbox()# 可加 name、idle_ttl_seconds 等参数backendLangSmithSandbox(sandboxls_sandbox)agentcreate_deep_agent(modelChatAnthropic(modelclaude-sonnet-4-6),system_promptYou are a Python coding assistant with sandbox access.,backendbackend,# 关键把沙箱后端传进去)try:resultagent.invoke({messages:[{role:user,content:写一个小包并跑 pytest}]})finally:client.delete_sandbox(ls_sandbox.name)# 务必清理E2Bfrome2bimportSandboxfromlangchain_e2bimportE2BSandbox e2b_sandboxSandbox.create()backendE2BSandbox(sandboxe2b_sandbox)agentcreate_deep_agent(...,backendbackend)# 用完后e2b_sandbox.kill()DaytonafromdaytonaimportDaytonafromlangchain_daytonaimportDaytonaSandbox sandboxDaytona().create()backendDaytonaSandbox(sandboxsandbox)agentcreate_deep_agent(...,backendbackend)# 用完后sandbox.stop()Modal / Runloop / Vercel写法类似只是创建沙箱的 SDK 不同。2. Deep Agents Code CLI 方式命令行快速启动# 安装对应依赖后dcode--sandboxlangsmith dcode--sandboxe2b dcode--sandboxdaytona dcode--sandboxmodal dcode--sandboxrunloop dcode--sandboxvercel# 常用附加参数dcode--sandboxdaytona --sandbox-setup ./setup.sh# 创建后先跑初始化脚本dcode--sandboxrunloop --sandbox-id dbx_abc123# 复用已有沙箱dcode--sandboxlangsmith --sandbox-snapshot-name my-snap# 使用/创建快照三、配置参数有哪些、怎么配置、字段含义配置分两层A. 创建沙箱时的参数各提供商略有差异LangSmith 常见参数name沙箱名称方便后续查找/复用idle_ttl_seconds空闲多少秒后自动清理强烈建议设置ttl_seconds总生命周期template_name/snapshot_id从模板或快照启动vcpus/mem_bytes/fs_capacity_bytesCPU、内存、磁盘配额env_vars注入环境变量不建议放敏感密钥Daytona 常见参数languagepython/typescript/javascripttimeout命令默认超时秒target区域us/euimage自定义 Docker 镜像snapshot从快照创建resources{cpu, memory, disk}需配合 imageautoStopInterval空闲自动停止分钟数0 永不自动停envVars、initialFiles、labelsModal 常见参数app/appNameimage/imageNamecpu、memoryMiBgputimeout/idleTimeoutMsblockNetwork是否阻断网络安全相关env、secrets、volumesE2B主要通过Sandbox.create()的 template、timeout、metadata 等支持自定义环境变量、文件预置B. Deep Agents / CLI 层面的配置CLI Flags参数含义--sandbox TYPE指定提供商langsmith / e2b / daytona 等--sandbox-id ID复用已有沙箱跳过创建和清理--sandbox-setup PATH创建后执行的初始化脚本路径--sandbox-snapshot-name NAME使用或创建快照配置文件方式~/.deepagents/config.toml[sandboxes] default daytona [sandboxes.providers.myprovider] class_path mypackage.provider:MyProvider working_dir /workspace supports_sandbox_id true supports_snapshot_name false [sandboxes.providers.myprovider.params] region us-east-1 # 其他传给 get_or_create 的参数C. 作用域配置LifecycleThread-scoped默认每个对话线程独立沙箱Assistant-scoped同一 Assistant 的所有线程共享一个沙箱状态会累积需注意清理四、关键安全提醒配置时务必注意永远不要把真实 API Key、数据库密码等密钥直接注入沙箱环境变量、文件、secrets 都不安全。优先使用「宿主机侧工具 网络代理注入凭证」的方式。能关网络就关blockNetwork等参数。用完一定要delete/kill/stop/terminate并设置合理的 TTL。对 Agent 的工具调用开启 Human-in-the-loop 审批更安全。