tensorlake

🛡️ AI Agent 的安全沙箱与持久化编排基础设施

Tensorlake SDK 提供安全沙箱与持久化编排能力,专为 AI Agent 执行不可信代码、跨会话状态管理及并行计算设计,支持 Python/TypeScript/CLI。

收藏
3.7k
安装
1k
版本
2.6.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

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)]

tensorlake 内容

references文件夹
scripts文件夹
手动下载zip · 67.7 kB
applications_sdk.mdtext/markdown
请选择文件