Arrakis : un outil open source qui fournit un environnement sandbox sécurisé pour les intelligences IA

Introduction générale

Arrakis est un environnement sandbox conçu pour les intelligences IA afin de fournir un environnement sécurisé et personnalisable. Développé par Abhishek Bhardwaj et hébergé sur GitHub sous licence AGPL v3, Arrakis isole le code de l'IA et sécurise l'hôte grâce à la technologie MicroVM. Chaque bac à sable intègre Ubuntu, démarre avec son propre service d'exécution de code et son serveur VNC, et prend en charge une interface graphique. L'outil fournit un SDK Python et une API REST pour aider les développeurs à gérer le bac à sable. Arrakis est idéal pour les développeurs qui ont besoin d'exécuter du code en toute sécurité ou de tester des processus en plusieurs étapes.

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

 

Liste des fonctions

  • isolement sécuriséLes technologies MicroVM permettent d'isoler le code de l'intelligence artificielle et de protéger les hôtes et les autres tâches.
  • Instantanés et retours en arrièreSupport pour sauvegarder l'état du bac à sable et le restaurer, ce qui facilite les tests de l'IA pour les tâches en plusieurs étapes.
  • SDK Python: Fourni py-arrakisLe programme est un bac à sable de contrôle programmable.
  • API REST: à travers arrakis-restserver Fournir des interfaces pour gérer le bac à sable.
  • Interface utilisateur graphique (GUI) (informatique)Chaque bac à sable dispose d'un serveur VNC intégré et de Chrome avec prise en charge de l'interface graphique.
  • Configuration du réseauConfiguration automatique du réseau avec prise en charge de la redirection des ports et de l'accès SSH.
  • Environnements personnalisés: à travers Dockerfile Ajuster le logiciel et la configuration du bac à sable.
  • Compatible MCP: Soutien MCP Les clients (par exemple Claude Desktop) pour une intégration aisée.

 

Utiliser l'aide

L'installation et l'utilisation d'Arrakis nécessitent quelques étapes. Voici des instructions détaillées pour vous aider à démarrer rapidement.

Processus d'installation

  1. Vérification des exigences du système
    Arrakis n'est supporté que sur les systèmes Linux car il s'appuie sur le programme /dev/kvm Virtualisation. Vous pouvez vérifier la prise en charge de la virtualisation à l'aide de la commande :
stat /dev/kvm

Si une erreur est renvoyée, l'hôte n'est pas pris en charge et la virtualisation doit être activée.

  1. télécharger et installer
    Exécutez la commande suivante sous Linux pour télécharger le fichier préconstruit :
curl -sSL https://raw.githubusercontent.com/abshkbh/arrakis/main/setup/setup.sh | bash

Le téléchargement génère arrakis-prebuilt contenant les binaires et les images.

  1. Démarrer le serveur REST
    Allez dans le dossier et démarrez le service :
cd arrakis-prebuilt
sudo ./arrakis-restserver

Le service fonctionne par défaut sur le serveur 127.0.0.1:7000. Besoins sudo en ce qui concerne la gestion des machines virtuelles.

  1. Installation du SDK Python (optionnel)
    Si vous souhaitez contrôler le bac à sable avec Python, installez le SDK :
pip install py-arrakis

Principales fonctions

Création d'un bac à sable

  • Utilisation de l'interface de programmation
    Créer un bac à sable :
./arrakis-client start -n my-sandbox

Renvoie les informations relatives à l'IP et à l'état du bac à sable.

  • Utilisation de Python
    Créé avec le SDK :
from arrakis_client import SandboxManager
manager = SandboxManager('http://127.0.0.1:7000')
sandbox = manager.start_sandbox('my-sandbox')
print(sandbox.info())

code en cours d'exécution

  • Méthode CLI
    Exécuter des commandes dans le bac à sable :

    ./arrakis-client run -n my-sandbox --cmd "echo Hello World"
    
  • La voie Python
    Exécutez-le avec le SDK :

    sandbox.run_cmd('echo Hello World')
    

    La sortie est renvoyée au terminal.

Utilisation de l'interface graphique

Chaque bac à sable démarre avec son propre serveur VNC et Chrome. obtenir des informations sur la connexion :

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

    Retourne quelque chose comme port_forwards: [{'host_port': '3000', 'guest_port': '5901', 'description': 'gui'}].

  • Utiliser Python :
    print(sandbox.info()['port_forwards'])
    
  • Connecter le VNC :
    Connexion avec un client VNC (par exemple noVNC) 主机IP:3000L'interface graphique est visible.

Instantanés et retours en arrière

  • Sauvegarder l'instantané
    Utiliser le CLI :

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

    Utiliser Python :

    snapshot_id = sandbox.snapshot('snap1')
    
  • Restauration d'un cliché instantané
    Détruisez d'abord le bac à sable :

    ./arrakis-client destroy -n my-sandbox
    

    Réintégration :

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

    Ou avec Python :

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

Bacs à sable personnalisés

  1. localiser rootfs/Dockerfile.
  2. Modifier pour ajouter un logiciel, par exemple :
    RUN apt-get update && apt-get install -y vim
    
  3. Redémarrer le bac à sable :
    ./arrakis-client start -n my-sandbox --rootfs custom-rootfs
    

Accès SSH

Chaque bac à sable prend en charge SSH :

  • Obtenir la PI :
    ./arrakis-client info -n my-sandbox
    

    Retourne quelque chose comme ip: "10.20.1.2/24".

  • Se connecter :
    ssh elara@10.20.1.2
    

    utilisateur par défaut elaraMot de passe elara0000.

Exemple de déroulement des opérations

J'essaie de faire en sorte que l'IA écrive des fichiers et teste le backtracking dans un bac à sable :

  1. Démarrer le bac à sable :
    ./arrakis-client start -n test-sandbox
    
  2. Exécuter la commande :
    ./arrakis-client run -n test-sandbox --cmd "echo '第一步' > /tmp/test.txt"
    
  3. Sauvegarder l'instantané :
    ./arrakis-client snapshot -n test-sandbox -o step1
    
  4. Modifier le fichier :
    ./arrakis-client run -n test-sandbox --cmd "echo '第二步' > /tmp/test.txt"
    
  5. Restaurer les instantanés :
    ./arrakis-client destroy -n test-sandbox
    ./arrakis-client restore -n test-sandbox --snapshot step1
    
  6. Vérifier le fichier :
    ./arrakis-client run -n test-sandbox --cmd "cat /tmp/test.txt"
    

    Le résultat devrait être 第一步.

Pour plus de détails, consultez le site GitHub README.md.

 

scénario d'application

  1. Débogage du code IA
    Les développeurs exécutent du code non fiable avec Arrakis pour isoler le risque. Revenir en arrière après les erreurs pour vérifier les problèmes.
  2. expérience pédagogique
    L'enseignant construit un bac à sable pour que les élèves s'exercent à la programmation de l'IA, et les élèves peuvent le manipuler à volonté sans affecter l'ordinateur central.
  3. test de tâches en plusieurs étapes
    Les entreprises utilisent Arrakis pour tester les processus automatisés d'IA, tels que les opérations web ou le traitement des fichiers, avec la prise en charge de la récupération des instantanés.

 

QA

  1. Arrakis est-il compatible avec Windows ?
    n'est pas pris en charge et ne fonctionne actuellement que sous Linux en raison de sa dépendance à l'égard de l'extension cloud-hypervisor.
  2. Comment arrêter le bac à sable ?
    dépense ou frais ./arrakis-client stop -n 名称 Arrêter, ou destroy Supprimer.
  3. Quel est l'espace occupé par un instantané ?
    En fonction du contenu du bac à sable, généralement quelques centaines de Mo, il est recommandé de nettoyer les instantanés inutilisés.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...