OpenSandbox

1周前发布 44 00

OpenSandbox 是一个面向 AI 应用场景设计的「通用沙箱平台」,为大模型相关的能力(命令执行、文件操作、代码执行、浏览器操作、Agent 运行等)提供 多语言 SDK、沙箱接口协议和沙箱运行时。

所在地:
中国
收录时间:
2026-01-20
OpenSandboxOpenSandbox

OpenSandbox 是一个专为 AI 应用场景设计的通用沙盒平台,旨在安全地执行大模型(LLM)可能触发的高风险操作,例如:

  • 执行任意命令
  • 读写文件系统
  • 运行用户提交的代码(Python/Java/Go/TS 等)
  • 控制浏览器(如 Chrome、Playwright)
  • 启动桌面环境(VNC、VS Code Web)

它通过隔离的容器环境,确保这些操作不会影响宿主机,同时提供标准化的接口供开发者集成。

核心特性

1. 多语言 SDK

支持主流开发语言,便于不同技术栈接入:

  • ✅ Python
  • ✅ Java / Kotlin
  • ✅ JavaScript / TypeScript
  • 🚧 Go SDK(规划中)

2. 统一沙箱协议

定义了两套标准 API:

  • 生命周期管理 API:创建、销毁、监控沙箱实例
  • 执行 API:在沙箱内运行命令、读写文件、执行代码

开发者可基于此协议实现自定义沙箱运行时。

3. 可扩展的运行时

默认支持:

  • Docker:适合本地开发与测试
  • Kubernetes:支持大规模分布式调度,适用于生产环境

4. 内置沙箱环境与示例

开箱即用的环境包括:

  • 命令行(Command)
  • 文件系统(Filesystem)
  • 代码解释器(Code Interpreter)

并提供多个完整示例,覆盖:

  • Coding Agent(Claude Code、Gemini、Codex 等)
  • 浏览器自动化(Chrome、Playwright)
  • 远程桌面(VNC、VS Code Web)

快速开始

环境要求

  • Docker(必需)
  • Python 3.10+(用于本地服务和示例)

1. 克隆项目

git clone https://github.com/alibaba/OpenSandbox.git
cd OpenSandbox

2. 启动沙箱服务

cd server
uv sync
cp example.config.toml ~/.sandbox.toml  # 复制配置文件
uv run python -m src.main               # 启动服务

注:uv 是新一代 Python 包管理工具,可替代 pip 和 venv,安装方式见 astral.sh/uv

3. 安装 SDK 并运行示例

uv pip install opensandbox-code-interpreter
import asyncio
from datetime import timedelta
from code_interpreter import CodeInterpreter, SupportedLanguage
from opensandbox import Sandbox
from opensandbox.models import WriteEntry

async def main() -> None:
    # 1. 创建沙箱(基于 Docker 镜像)
    sandbox = await Sandbox.create(
        "opensandbox/code-interpreter:latest",
        entrypoint=["/opt/opensandbox/code-interpreter.sh"],
        env={"PYTHON_VERSION": "3.11"},
        timeout=timedelta(minutes=10),
    )

    async with sandbox:
        # 2. 执行 Shell 命令
        exec_result = await sandbox.commands.run("echo 'Hello OpenSandbox!'")
        print(exec_result.logs.stdout[0].text)

        # 3. 写入文件
        await sandbox.files.write_files([
            WriteEntry(path="/tmp/hello.txt", data="Hello World", mode=644)
        ])

        # 4. 读取文件
        content = await sandbox.files.read_file("/tmp/hello.txt")
        print(f"Content: {content}")

        # 5. 创建代码解释器
        interpreter = await CodeInterpreter.create(sandbox)

        # 6. 执行 Python 代码
        result = await interpreter.codes.run("""
            import sys
            print(sys.version)
            result = 2 + 2
            result
        """, language=SupportedLanguage.PYTHON)

        print("计算结果:", result.result[0].text)      # 输出: 4
        print("Python 版本:", result.logs.stdout[0].text)  # 如: 3.11.14

    # 7. 自动清理沙箱(或手动调用 sandbox.kill())

if __name__ == "__main__":
    asyncio.run(main())

典型应用场景

场景说明
Coding Agent 集成安全运行 Claude Code、Gemini、Codex 等生成的代码
浏览器自动化通过无头 Chrome 或 Playwright 抓取网页、执行 UI 测试
远程开发环境启动 VS Code Web(code-server),通过浏览器编程
桌面模拟提供 VNC 桌面,用于需要 GUI 的任务(如 PDF 渲染、截图)

所有示例代码位于 examples/ 目录,包含详细 README。

项目结构概览

目录功能
server/FastAPI 实现的沙箱生命周期管理服务
components/execd/沙箱内命令与文件操作的执行守护进程
components/egress/网络出口控制(防止沙箱外联敏感地址)
sdks/多语言客户端 SDK
sandboxes/沙箱镜像定义(如 code-interpreter)
kubernetes/Kubernetes Operator 支持
examples/各类集成示例
docs/架构设计文档(含安全模型)

详细架构请参阅 docs/architecture.md

数据统计

相关导航

Magentic-UI

Magentic-UI

Magentic-UI 是一个由多代理系统驱动的研究原型,专为网页任务自动化而设计。它不仅能帮助用户在网页上轻松浏览和执行各种操作,还能生成和执行代码,以及生成和分析文件。无论是填写复杂的表单、定制个性化的食品订单,还是在未被搜索引擎索引的网站上进行深度导航,如筛选航班、查找个人网站上的链接,亦或是需要网页导航和代码执行的任务,如从在线数据生成图表,Magentic-UI 都能轻松应对。

暂无评论

none
暂无评论...