AI个人学习
和实操指南
豆包Marscode1

Arrakis:为AI智能体提供安全沙盒环境的开源工具

综合介绍

Arrakis 是一个专为 AI 智能体设计,提供安全、可自定义的沙盒环境。它由 Abhishek Bhardwaj 开发,托管在 GitHub 上,使用 AGPL v3 许可证。Arrakis 通过轻量级虚拟机(MicroVM)技术隔离 AI 代码,确保主机安全。每个沙盒内置 Ubuntu 系统,启动时自带代码执行服务和 VNC 服务器,支持图形界面操作。工具提供 Python SDK 和 REST API,方便开发者管理沙盒。它还支持快照和回溯功能,AI 出错时可恢复到之前状态。Arrakis 适合需要安全运行代码或测试多步流程的开发者。

Arrakis:为AI智能体提供安全沙盒环境的开源工具-1


Arrakis:为AI智能体提供安全沙盒环境的开源工具-1

 

功能列表

  • 安全隔离:使用 MicroVM 技术隔离 AI 代码,保护主机和其他任务。
  • 快照与回溯:支持保存沙盒状态并恢复,方便 AI 测试多步任务。
  • Python SDK:提供 py-arrakis,可编程控制沙盒。
  • REST API:通过 arrakis-restserver 提供接口,管理沙盒。
  • 图形界面:每个沙盒内置 VNC 服务器和 Chrome,支持 GUI 操作。
  • 网络配置:自动设置网络,支持端口转发和 SSH 访问。
  • 自定义环境:通过 Dockerfile 调整沙盒软件和配置。
  • MCP 兼容:支持 MCP 客户端(如 Claude Desktop),便于集成。

 

使用帮助

Arrakis 的安装和使用需要一些步骤。以下是详细说明,帮你快速上手。

安装流程

  1. 检查系统要求
    Arrakis 只支持 Linux 系统,因为它依赖 /dev/kvm 虚拟化。你可以用命令检查虚拟化支持:
stat /dev/kvm

如果返回错误,说明主机不支持,需要启用虚拟化。

  1. 下载安装
    在 Linux 上运行以下命令下载预构建文件:
curl -sSL https://raw.githubusercontent.com/abshkbh/arrakis/main/setup/setup.sh | bash

下载后会生成 arrakis-prebuilt 文件夹,包含二进制文件和镜像。

  1. 启动 REST 服务器
    进入文件夹并启动服务:
cd arrakis-prebuilt
sudo ./arrakis-restserver

服务默认运行在 127.0.0.1:7000。需要 sudo 因为涉及虚拟机管理。

  1. 安装 Python SDK(可选)
    如果想用 Python 控制沙盒,安装 SDK:
pip install py-arrakis

主要功能操作

创建沙盒

  • 用 CLI
    创建一个沙盒:
./arrakis-client start -n my-sandbox

返回沙盒的 IP 和状态信息。

  • 用 Python
    用 SDK 创建:
from arrakis_client import SandboxManager
manager = SandboxManager('http://127.0.0.1:7000')
sandbox = manager.start_sandbox('my-sandbox')
print(sandbox.info())

运行代码

  • CLI 方式
    在沙盒中执行命令:

    ./arrakis-client run -n my-sandbox --cmd "echo Hello World"
    
  • Python 方式
    用 SDK 运行:

    sandbox.run_cmd('echo Hello World')
    

    输出会返回到终端。

使用图形界面

每个沙盒启动时自带 VNC 服务器和 Chrome。获取连接信息:

  • 用 CLI:
    ./arrakis-client info -n my-sandbox
    

    返回类似 port_forwards: [{'host_port': '3000', 'guest_port': '5901', 'description': 'gui'}]

  • 用 Python:
    print(sandbox.info()['port_forwards'])
    
  • 连接 VNC:
    用 VNC 客户端(如 noVNC)连接 主机IP:3000,即可看到图形界面。

快照与回溯

  • 保存快照
    用 CLI:

    ./arrakis-client snapshot -n my-sandbox -o snap1
    

    用 Python:

    snapshot_id = sandbox.snapshot('snap1')
    
  • 恢复快照
    先销毁沙盒:

    ./arrakis-client destroy -n my-sandbox
    

    再恢复:

    ./arrakis-client restore -n my-sandbox --snapshot snap1
    

    或用 Python:

    sandbox.destroy()
    sandbox = manager.restore('my-sandbox', snapshot_id)
    

自定义沙盒

  1. 找到 rootfs/Dockerfile
  2. 编辑添加软件,例如:
    RUN apt-get update && apt-get install -y vim
    
  3. 重启沙盒:
    ./arrakis-client start -n my-sandbox --rootfs custom-rootfs
    

SSH 访问

每个沙盒支持 SSH:

  • 获取 IP:
    ./arrakis-client info -n my-sandbox
    

    返回类似 ip: "10.20.1.2/24"

  • 登录:
    ssh elara@10.20.1.2
    

    默认用户 elara,密码 elara0000

操作流程示例

想让 AI 在沙盒中写文件并测试回溯:

  1. 启动沙盒:
    ./arrakis-client start -n test-sandbox
    
  2. 运行命令:
    ./arrakis-client run -n test-sandbox --cmd "echo '第一步' > /tmp/test.txt"
    
  3. 保存快照:
    ./arrakis-client snapshot -n test-sandbox -o step1
    
  4. 修改文件:
    ./arrakis-client run -n test-sandbox --cmd "echo '第二步' > /tmp/test.txt"
    
  5. 恢复快照:
    ./arrakis-client destroy -n test-sandbox
    ./arrakis-client restore -n test-sandbox --snapshot step1
    
  6. 检查文件:
    ./arrakis-client run -n test-sandbox --cmd "cat /tmp/test.txt"
    

    输出应为 第一步

更多细节请查看 GitHub 的 README.md

 

应用场景

  1. AI 代码调试
    开发者用 Arrakis 运行不可信代码,隔离风险。出错后回溯,检查问题。
  2. 教学实验
    老师搭建沙盒给学生练习 AI 编程,学生可随意操作,不影响主机。
  3. 多步任务测试
    企业用 Arrakis 测试 AI 自动化流程,如网页操作或文件处理,支持快照恢复。

 

QA

  1. Arrakis 支持 Windows 吗?
    不支持,目前只在 Linux 上运行,因为依赖 cloud-hypervisor
  2. 如何停止沙盒?
    用 ./arrakis-client stop -n 名称 停止,或 destroy 删除。
  3. 快照占多少空间?
    取决于沙盒内容,通常几百 MB。建议清理不用的快照。
未经允许不得转载:首席AI分享圈 » Arrakis:为AI智能体提供安全沙盒环境的开源工具
zh_CN简体中文