核心用法
Tensorlake SDK 是面向 AI Agent 和应用的基础设施层,提供两大核心能力:Sandbox(沙箱)与Orchestration(编排)。
Sandbox 是 Stateful 的执行环境,支持:
- 代码隔离执行:安全运行 LLM 生成或不可信代码,支持 Python/Shell 等任意命令
- 持久化与恢复:命名沙箱支持 suspend/resume,跨会话保持状态
- 快照与分叉:从快照 fork 出多个并行沙箱,适用于批处理/Map-Reduce 场景
- 网络细控: egress 白名单/黑名单,完全隔离或受限外网访问
- 交互式 PTY:流式终端会话,支持 AI Coding Agent 的连续 shell 交互
- 桌面自动化:内置 XFCE+Firefox,支持截图、键鼠控制、noVNC 实时浏览
- 端口暴露:将沙箱内服务以认证 URL 暴露,无需配置网络
- 自定义镜像:预构建依赖镜像,避免重复安装成本
Orchestration 是沙箱原生的 durable workflow 引擎:
@function()装饰器定义任务,Image指定依赖环境.future()、.map()、.reduce()构建 DAG 并行流水线- 与任意 LLM Provider(OpenAI、Anthropic)、Agent 框架(LangChain)无缝集成
显著优点
1. Agent 原生设计:针对 AI Agent 的 code execution、tool calling、持久化需求深度优化
2. 安全性:细粒度网络控制、隔离执行环境、API Key 不进入对话或代码
3. 弹性资源:快照支持 CPU/内存/Disk 动态覆盖(filesystem 快照),无需重建镜像
4. 多语言支持:Python、TypeScript、CLI 三端 SDK 统一体验
5. 生态兼容:不绑定特定 LLM 或框架,作为基础设施层与现有工具链共存
潜在缺点与局限性
- 资源锁限制:Full 快照锁定资源配置,无法动态调整;需区分 snapshot_type
- 学习曲线:同时理解 Sandbox 与 Orchestration 两种抽象,对简单场景可能过度设计
- 网络依赖:云端沙箱,离线开发受限;EU data residency 需额外配置
- 成本模型:持久化沙箱、快照存储、并行 fork 均产生持续费用,需精细管理生命周期
适合人群
- 构建 Coding Agent、AI Software Engineer 类产品的开发者
- 需要 安全执行 LLM 生成代码 的企业(如自动 PR review、代码修复)
- 设计 多步骤、有状态、可恢复 Agent 工作流的团队
- 需要 桌面自动化、浏览器操作 能力的 RPA/自动化场景
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| API Key 泄露 | 用户可能误将 `TENSORLAKE_API_KEY` 粘贴到对话或代码中 | 技能明确禁止此行为,引导使用 `tl login` 或环境变量注入 |
| 资源泄露 | 命名沙箱未正确 suspend 或删除,产生持续计费 | 提供 `auto-suspend` 配置,建议代码中显式生命周期管理 |
| 网络配置误用 | 完全开放 egress 可能使不可信代码访问恶意站点 | 默认推荐白名单模式,提供 `allowlist` 配置示例 |
| 快照类型混淆 | 误将 Full 快照当作 Filesystem 使用,导致资源无法调整 | 强制验证 `snapshot_type` 后再给出资源变更建议 |
典型应用场景
from tensorlake.sandbox import Sandbox
# 命名沙箱:跨工具调用保持状态
sandbox = Sandbox.create(name="agent-session-001")
sandbox.run("pip", ["install", "pandas"])
# ... 多次工具调用 ...
sandbox.suspend() # 暂停计费,状态保留
# 从快照并行分叉
snapshot = sandbox.checkpoint()
workers = [Sandbox.create(snapshot_id=snapshot.id) for _ in range(4)]