Sandbox Personnalisé
Le sandbox est l'endroit où l'agent effectue ses tâches. Au lieu d'exécuter des commandes directement sur votre ordinateur (ce qui pourrait être risqué), l'agent les exécute à l'intérieur d'un conteneur Docker.
Le sandbox OpenHands par défaut (python-nodejs:python3.12-nodejs22
de nikolaik/python-nodejs) est livré avec certains paquets installés tels que Python et Node.js mais peut nécessiter l'installation d'autres logiciels par défaut.
Vous avez deux options pour la personnalisation :
- Utiliser une image existante avec les logiciels requis.
- Créer votre propre image Docker personnalisée.
Si vous choisissez la première option, vous pouvez passer la section Créer Votre Image Docker
.
Créer Votre Image Docker
Pour créer une image Docker personnalisée, elle doit être basée sur Debian.
Par exemple, si vous voulez qu'OpenHands ait ruby
installé, créez un Dockerfile
avec le contenu suivant :
FROM debian:latest
# Installer les paquets requis
RUN apt-get update && apt-get install -y ruby
Enregistrez ce fichier dans un dossier. Ensuite, construisez votre image Docker (par exemple, nommée custom-image) en naviguant vers le dossier dans le terminal et en exécutant :
docker build -t custom-image .
Cela produira une nouvelle image appelée custom-image
, qui sera disponible dans Docker.
Notez que dans la configuration décrite dans ce document, OpenHands s'exécutera en tant qu'utilisateur "openhands" à l'intérieur du sandbox et donc tous les paquets installés via le docker file devraient être disponibles pour tous les utilisateurs du système, pas seulement root.
Utilisation du Workflow de Développement
Configuration
Tout d'abord, assurez-vous de pouvoir exécuter OpenHands en suivant les instructions dans Development.md.
Spécifier l'Image de Base du Sandbox
Dans le fichier config.toml
dans le répertoire OpenHands, définissez sandbox_base_container_image
sur l'image que vous souhaitez utiliser. Cela peut être une image que vous avez déjà extraite ou une que vous avez construite :
[core]
...
sandbox_base_container_image="custom-image"
Exécution
Exécutez OpenHands en exécutant make run
dans le répertoire de niveau supérieur.
Explication Technique
Veuillez vous référer à la section image docker personnalisée de la documentation d'exécution pour plus de détails.