---
type: study
status: verified
created: 2026-08-11
updated: 2026-08-11
sensitivity: standard
tags:
  - study
  - langchain
  - python
  - integrations
  - sandbox
  - deep-agents
topic: LangChain Python 沙箱隔离执行与生命周期
sources:
  - https://docs.langchain.com/oss/python/integrations/sandboxes
  - https://docs.langchain.com/oss/python/integrations/sandboxes/aws
  - https://docs.langchain.com/oss/python/integrations/sandboxes/daytona
  - https://docs.langchain.com/oss/python/integrations/sandboxes/index
  - https://docs.langchain.com/oss/python/integrations/sandboxes/langsmith
  - https://docs.langchain.com/oss/python/integrations/sandboxes/modal
last_verified: 2026-08-11
---
# Sandboxes：隔离执行与生命周期

## 能力地图

`/sandboxes` 与 `/sandboxes/index` 当前同正文，定义“让 agent-generated code 在隔离环境执行”的 provider 抽象。索引还列 Daytona、Modal、AgentCore、Runloop、Vercel、E2B、Baponi、OpenShell、Islo、UpstashBox、Leap0、Superserve 与 LangSmith；本站只有四个 provider 深链页。

| 路由 | 安装/创建 | 生命周期责任 |
|---|---|---|
| `aws` | `langchain-agentcore-codeinterpreter`；`CodeInterpreter.start()` 后包装为 `AgentCoreSandbox` | 必须 `interpreter.stop()`，示例用 `try/finally`。隔离单元是 AgentCore MicroVM。 |
| `daytona` | `langchain-daytona`；Daytona SDK 创建后包装 | 调用方通过 Daytona SDK stop/destroy。 |
| `langsmith` | `langsmith[sandbox]` + `deepagents`；`SandboxClient.create_sandbox()` | sandbox 持续占资源，必须 `delete_sandbox()`；示例明确用 `try/finally`，也可在 UI 管理。 |
| `modal` | `langchain-modal`；`modal.Sandbox.create(app=...)` 后包装 | 调用方负责 terminate。 |

四个 backend 都可交给 `create_deep_agent(backend=...)`，示例也可直接 `backend.execute()`。这些页面主要是同步调用示例，没有宣称所有 provider 的创建、执行、文件和销毁具有同一 async/streaming 语义。

## 隔离不等于安全完成

沙箱仍需显式控制：

- 基础镜像/依赖 allowlist、CPU/GPU/内存/磁盘/PID、wall-clock 和空闲超时；
- 默认拒绝网络，只放行任务所需域名；防止 metadata endpoint、内网、控制面和任意代理访问；
- 不把宿主/生产 secret 注入执行环境；需要的临时凭证应短期、最小 scope、可撤销；
- 输入文件扫描、路径规范化、大小/数量限制；输出 artifact 做 MIME/大小/恶意内容检查；
- 每用户/租户独立 sandbox，禁止复用未清理的 cookie、文件、进程或 package state；
- 创建、命令、网络、artifact、销毁和费用可审计，但 stdout/stderr 先脱敏。

## 可靠生命周期

建议状态机为 `requested → created → ready → running → terminating → terminated`，另有 `failed/expired/orphaned`。创建和销毁使用 provider resource ID 做幂等；请求结束的 `finally` 之外还要有定时 reaper，对进程崩溃遗留资源补偿删除。监控 active sandbox、age、orphan、create latency、termination failure、资源/费用和拒绝事件。

持久 snapshot、service URL、auth proxy 或浏览器 profile 会改变威胁模型；启用前单独审计数据保留、共享范围和回收策略。不要把“provider managed”理解为无需做租户隔离或删除验证。

## 验证边界

已精读 6 个官方 Markdown 路由并核对安装、创建和 cleanup 责任。没有实际启动沙箱，也未验证网络隔离、镜像供应链、配额、销毁时延和数据擦除保证。

