Featured image of post OpenSandbox: Nền Tảng Sandbox AI Toàn Năng Mà Mọi Agent Đều Cần

OpenSandbox: Nền Tảng Sandbox AI Toàn Năng Mà Mọi Agent Đều Cần

Alibaba open-source một nền tảng sandbox đa năng cho ứng dụng AI — hỗ trợ Coding Agents, GUI Agents, RL Training và nhiều hơn nữa, với SDK đa ngôn ngữ và runtime Docker/Kubernetes.

Phần 1: Nền Tảng — Mental Model

Hãy tưởng tượng bạn là một AI agent. Bạn cần viết code, chạy nó, lướt web, tương tác với desktop, thậm chí có thể huấn luyện một mô hình — tất cả trong một môi trường an toàn, cách ly hoàn toàn. Hệ thống host không bị ảnh hưởng, nhưng bên trong “hộp” thì bạn có toàn quyền.

Đó chính xác là thứ mà OpenSandbox của Alibaba cung cấp.

Mental Model: Hãy nghĩ đến OpenSandbox như một ổ cắm điện toàn cầu cho AI agent — một giao thức chuẩn hoá mà bất kỳ agent nào (Claude Code, Gemini CLI, LangGraph, Google ADK, v.v.) đều có thể kết nối vào. Sandbox bọc các Docker container hoặc Kubernetes pod, rồi expose ra một API nhất quán duy nhất để tạo môi trường, chạy lệnh, quản lý file, và thực thi code.

Thay vì mỗi AI framework tự phát minh lại sandbox riêng, OpenSandbox cung cấp một giao thức mở duy nhất mà tất cả đều dùng chung.


Phần 2: Điều Tra — Kiến Trúc Chi Tiết

Kiến Trúc Phân Lớp

OpenSandbox được tổ chức thành các lớp rõ ràng, mỗi lớp giải quyết một vấn đề:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
┌────────────────────────────────────────────────────────────┐
│                 SDK Đa Ngôn Ngữ                            │
│    Python  │  JS/TS  │  Java/Kotlin  │  C#/.NET  │  Go*   │
└────────────────────┬───────────────────────────────────────┘
                     │ Sandbox Protocol (OpenAPI / OSEPs)
┌────────────────────▼───────────────────────────────────────┐
│                OpenSandbox Server                          │
│  (Vòng đời sandbox: create, start, pause, kill)            │
└──────┬──────────────────────────────────────────┬──────────┘
       │                                          │
┌──────▼──────┐                         ┌─────────▼──────────┐
│   Docker    │                         │   Kubernetes HPA   │
│  Runtime    │                         │ (high-perf runtime)│
└─────────────┘                         └────────────────────┘
       │                                          │
┌──────▼──────────────────────────────────────────▼──────────┐
│              Môi Trường Sandbox                            │
│  Commands  │  Files  │  Code Interpreter  │  Browser  │ VNC│
└─────────────────────────────────────────────────────────────┘

(*Go SDK đang trong roadmap)

Cấu Trúc Dự Án

Thư MụcMục Đích
sdks/SDK client (Python, JS/TS, Java, C#)
specs/OpenAPI + OSEP (OpenSandbox Enhancement Proposals)
server/Máy chủ sandbox lõi
kubernetes/Runtime Kubernetes cho triển khai phân tán
components/execd/Execution daemon bên trong container sandbox
components/ingress/Ingress gateway với nhiều chiến lược routing
components/egress/Kiểm soát egress/network riêng cho từng sandbox
sandboxes/Các Docker image sandbox đã được build sẵn
examples/Ví dụ tích hợp end-to-end

Sandbox Protocol (OSEPs)

OpenSandbox sử dụng quy trình đề xuất cải tiến chính thức gọi là OSEP (OpenSandbox Enhancement Proposals) — tương tự như PEP của Python — để phát triển nền tảng theo hướng cộng đồng. Protocol định nghĩa hai nhóm API:

  • Lifecycle APIs: create, start, pause, resume, kill → quản lý container sandbox
  • Execution APIs: commands.run, files.write, files.read, codes.run → tương tác với nội dung bên trong

Bảo Mật — Tuỳ Chọn Cách Ly Mạnh Mẽ

Đây là điểm OpenSandbox vượt trội so với các giải pháp Docker đơn thuần. Nó hỗ trợ native các secure container runtime:

  • gVisor — kernel userspace chặn system call, không cho code truy cập trực tiếp kernel host
  • Kata Containers — VM nhẹ với cách ly cấp phần cứng
  • Firecracker microVMs — micro virtual machine siêu nhanh (công nghệ AWS Lambda dùng)

Mỗi lựa chọn cung cấp mức độ cách ly ngày càng mạnh hơn giữa sandbox workload và host.


Phần 3: Chẩn Đoán — OpenSandbox Giải Quyết Vấn Đề Gì Cho Developer?

Vấn Đề 1: Mỗi AI Framework Tự Phát Minh Lại Sandbox

Trước OpenSandbox, nếu bạn muốn chạy Claude Code, Gemini CLI, và LangGraph một cách an toàn song song, bạn cần ba lớp tích hợp sandbox khác nhau. OpenSandbox thống nhất tất cả dưới một giao thức duy nhất.

Vấn Đề 2: Scale Từ Laptop Lên Kubernetes Rất Khó

Docker runtime của OpenSandbox dành cho phát triển local. Kubernetes runtime (kubernetes/) xử lý lịch trình phân tán quy mô lớn hàng nghìn sandbox — mà không cần thay đổi một dòng code ứng dụng. Cùng một lời gọi SDK, hoạt động cả local lẫn production.

Vấn Đề 3: Nhóm Đa Ngôn Ngữ Cần SDK Đa Ngôn Ngữ

Ngôn NgữTrạng Thái
Python✅ Ổn định
JavaScript / TypeScript✅ Ổn định
Java / Kotlin✅ Ổn định
C# / .NET✅ Ổn định
Go🔜 Roadmap

Các Use Case Thực Tế

Kịch BảnVí Dụ
Coding AgentClaude Code, Gemini CLI, OpenAI Codex CLI
LLM WorkflowLangGraph state machine tạo sandbox jobs
GUI AutomationHeadless Chrome + Playwright trong sandbox
Desktop EnvironmentVNC + full Linux desktop inside container
Remote DevVS Code (code-server) chạy từ sandbox
RL TrainingChạy training episodes trong container cô lập
Agent EvaluationMôi trường eval nhất quán, cô lập, tái hiện được

Phần 4: Giải Pháp — Cách Dùng OpenSandbox

Bắt Đầu Trong 3 Bước

Bước 1 — Cài đặt và cấu hình server

1
2
uv pip install opensandbox-server
opensandbox-server init-config ~/.sandbox.toml --example docker

Bước 2 — Khởi động sandbox server

1
opensandbox-server

Bước 3 — Tạo sandbox và chạy code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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. Tạo sandbox từ Docker image
    sandbox = await Sandbox.create(
        "opensandbox/code-interpreter:v1.0.1",
        entrypoint=["/opt/opensandbox/code-interpreter.sh"],
        env={"PYTHON_VERSION": "3.11"},
        timeout=timedelta(minutes=10),
    )

    async with sandbox:
        # 2. Chạy lệnh shell
        execution = await sandbox.commands.run("echo 'Hello OpenSandbox!'")
        print(execution.logs.stdout[0].text)   # Hello OpenSandbox!

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

        # 4. Đọc lại file
        content = await sandbox.files.read_file("/tmp/hello.txt")
        print(f"Content: {content}")  # Content: Hello World

        # 5. Chạy code Python bên trong sandbox
        interpreter = await CodeInterpreter.create(sandbox)
        result = await interpreter.codes.run(
            """
            import sys
            print(sys.version)
            result = 2 + 2
            result
            """,
            language=SupportedLanguage.PYTHON,
        )
        print(result.result[0].text)       # 4
        print(result.logs.stdout[0].text)  # 3.11.x

    # Sandbox tự dọn dẹp sau khi ra khỏi context manager

Tích Hợp Coding Agent (Ví Dụ Google ADK)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Dùng OpenSandbox như tool backend cho Google ADK agent
from google.adk.tools import BaseTool
from opensandbox import Sandbox

class SandboxRunTool(BaseTool):
    async def run_in_sandbox(self, code: str) -> str:
        sandbox = await Sandbox.create("opensandbox/code-interpreter:v1.0.1")
        async with sandbox:
            interpreter = await CodeInterpreter.create(sandbox)
            result = await interpreter.codes.run(code, language=SupportedLanguage.PYTHON)
            return result.result[0].text

Chạy Claude Code hoặc Gemini CLI Trong Sandbox

1
2
3
4
5
# Clone các ví dụ
git clone https://github.com/alibaba/OpenSandbox.git
cd OpenSandbox/examples/claude-code  # hoặc gemini-cli, codex-cli, v.v.

# Theo hướng dẫn README trong từng thư mục ví dụ

Mỗi ví dụ đi kèm Dockerfile và script khởi động để đặt CLI AI tool vào trong môi trường OpenSandbox được quản lý đầy đủ.


Mental Model Cuối Cùng

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
┌────────────────────────────────────────────────────────────┐
│                        OpenSandbox                         │
│                                                            │
│  "Ổ cắm toàn cầu cho việc thực thi AI agent"              │
│                                                            │
│  LÀ gì:                                                    │
│  → Sandbox giao thức mở với lifecycle + execution API      │
│  → SDK đa ngôn ngữ (Python, JS, Java, C#)                 │
│  → Docker cho local dev + Kubernetes cho production        │
│                                                            │
│  GIẢI QUYẾT gì:                                            │
│  → Sandbox phân mảnh cho mỗi AI framework                 │
│  → Thực thi code không an toàn, thiếu cô lập              │
│  → Scale từ laptop lên cloud mà không cần sửa code        │
│                                                            │
│  CHO PHÉP gì:                                              │
│  → Coding agents (Claude, Gemini, Codex)                   │
│  → GUI agents (Chrome, Playwright, VNC)                    │
│  → RL training + agent evaluation                          │
│  → Remote dev (VS Code bên trong sandbox)                  │
│                                                            │
│  Cô lập: gVisor | Kata Containers | Firecracker            │
└────────────────────────────────────────────────────────────┘

GitHub: alibaba/OpenSandbox
Tài liệu: open-sandbox.ai

Được tạo với sự lười biếng tình yêu 🦥

Subscribe to My Newsletter