• 简体中文
  • 原生 SDK

    A3S Box 提供一方 Rust、Go、Python 和 TypeScript SDK。它们与 CLI 管理相同的本地 镜像、Sandbox、卷、网络、快照、日志和运行时状态。

    选择语言

    语言适用场景
    Rusta3s-box-sdk直接类型化运行时集成和管理应用
    Gogithub.com/A3S-Lab/Box/sdk/go/v3支持 context 的服务、Agent 和 CI worker
    Pythona3s-box同步或异步自动化和数据工具
    TypeScript@a3s-lab/boxNode.js 应用和 JavaScript 构建系统

    每种语言都有独立指南和完整可运行程序,不需要把 Python 片段自行翻译成 Go,也不会在 同一个工作流中途切换语言。

    共享契约

    所有 SDK 都是本地优先:

    • 在同一主机安装 a3s-box 运行时。
    • 不配置远程端点、域名、账户或 API 密钥。
    • SDK 与运行时使用同一 A3S Box 发布线。
    • 隔离属于请求数据:默认是 MicroVM,共享内核 Sandbox 仅在 Linux 上显式选择。
    • 不支持的主机与后端组合在产生副作用前失败。

    Rust 直接调用类型化运行时组件。Go、Python 和 TypeScript 使用已安装运行时的版本化 机器桥接,从不解析人类可读 CLI 输出。

    通用对象模型

    Client
    ├── 镜像与构建器
    ├── 命名卷
    ├── 命名网络
    ├── 运行时诊断
    └── Sandbox
        ├── 生命周期
        ├── 命令与脚本
        ├── 文件
        ├── 日志与统计
        └── 文件系统快照

    SDK 不拥有独立守护进程,也不建立平行状态模型。一个 SDK 启动的盒子可被 CLI 和其他 SDK 看到。

    生命周期规则

    Sandbox 生命周期使用代际围栏。陈旧句柄不能修改同一个盒子的更新实例。stop 保留 持久盒子,restart 推进代,终态删除会移除运行时记录,高级清理方法组合停止和删除。

    重启结果未知时,应保存并复用同一个操作身份,直到原始结果得到确认。这可以防止网络 或进程故障造成第二次生命周期转换。

    二进制与文本数据

    命令输出和文件原语支持任意二进制。语言特定的字符串帮助方法只适合文本,不应用于 归档、镜像或任意生成数据。

    完整示例

    底层隔离模型见架构与隔离