Présentation détaillée du projet OpenHands
Aperçu du projet
OpenHands (anciennement OpenDevin) est une plateforme d'agents de développement logiciel pilotée par l'IA. Ce projet open source vise à créer des agents d'IA capables de travailler comme des développeurs humains, avec la capacité complète de modifier le code, d'exécuter des commandes, de naviguer sur le Web et d'appeler des API.
Caractéristiques principales
🤖 Capacités de l'agent
- Modification du code : Capable de comprendre et de modifier les bases de code existantes
- Exécution de commandes : Peut exécuter diverses commandes système et scripts
- Navigation Web : Possède la capacité de naviguer sur le Web pour obtenir des informations
- Appel d'API : Capable d'appeler diverses interfaces API externes
- Emprunt de code : Peut même copier des extraits de code à partir de sites Web tels que StackOverflow
🌐 Plusieurs méthodes de déploiement
- Service cloud : Fournit un service cloud OpenHands, les nouveaux utilisateurs bénéficient d'un crédit gratuit de 50 $
- Déploiement Docker local : Prend en charge l'exécution locale via Docker
- Mode sans tête : Prend en charge l'exécution en mode sans tête scripté
- Interface de ligne de commande : Fournit une interface CLI conviviale
- GitHub Action : Peut être exécuté sur les issues marquées via GitHub Action
🔧 Caractéristiques techniques
- Prise en charge de plusieurs LLM : Prend en charge plusieurs grands modèles de langage, il est recommandé d'utiliser Claude 3.7 Sonnet d'Anthropic
- Conteneurisation Docker : Environnement sandbox sécurisé entièrement basé sur Docker
- Connexion au système de fichiers : Peut se connecter au système de fichiers local pour le développement
- Piloté par la communauté : Projet open source piloté par la communauté, les contributions sont les bienvenues
Démarrage rapide
Déploiement cloud
Visitez OpenHands Cloud pour commencer à utiliser, les nouveaux utilisateurs reçoivent gratuitement un crédit de 50 $.
Déploiement Docker local
# Récupérer l'image d'exécution
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.36-nikolaik
# Exécuter OpenHands
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.36-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.36
Après le démarrage, visitez http://localhost:3000 pour commencer à utiliser.
Configuration et exigences système
Configuration du modèle LLM
- Modèle recommandé : Claude 3.7 Sonnet d'Anthropic (
anthropic/claude-3-7-sonnet-20250219
)
- Prise en charge de plusieurs modèles : Voir Documentation LLM pour plus de détails
- Clé API : Nécessite la configuration de la clé API correspondante
Précautions de sécurité
- Convient à une utilisation sur un poste de travail local mono-utilisateur
- Ne convient pas au déploiement multi-locataires
- Pas de mécanismes d'authentification et d'isolation intégrés
- Le déploiement sur un réseau public nécessite de se référer au Guide de déploiement sécurisé
Fonctionnalités avancées
Fonctionnalités pour les développeurs
- Modification du code source : Prend en charge la modification du code source OpenHands, voir
Development.md
pour plus de détails
- Dépannage : Fournit un guide de dépannage détaillé
- Configuration avancée : Prend en charge diverses options de configuration avancées
Capacités d'intégration
- Intégration du système de fichiers : Peut se connecter au système de fichiers local
- Intégration GitHub : Prend en charge l'automatisation GitHub Action
- Intégration API : Riches capacités d'appel d'API
Architecture technique
Composants principaux
- Moteur d'agent : Moteur de raisonnement et de décision d'IA central
- Environnement sandbox : Environnement d'exécution de code sécurisé
- Couche d'interface : Prend en charge plusieurs méthodes d'interaction telles que Web UI, CLI, API
- Système de plugins : Architecture de plugins extensible
Écosystème open source
- Licence MIT : Licence open source conviviale
- Projets dépendants : Construit sur plusieurs projets open source
- Fichier de remerciements : Voir
CREDITS.md
pour connaître tous les projets dépendants
Feuille de route du projet
Les mainteneurs du projet mettront à jour la feuille de route mensuelle à la fin de chaque mois, présentant l'orientation et les plans de développement du projet.
Citation académique
Si vous devez citer ce projet dans une recherche académique, vous pouvez utiliser le format suivant :
@misc{openhands,
title={{OpenHands: An Open Platform for AI Software Developers as Generalist Agents}},
author={Xingyao Wang and Boxuan Li and Yufan Song and Frank F. Xu and Xiangru Tang and Mingchen Zhuge and Jiayi Pan and Yueqi Song and Bowen Li and Jaskirat Singh and Hoang H. Tran and Fuqiang Li and Ren Ma and Mingzhang Zheng and Bill Qian and Yanjun Shao and Niklas Muennighoff and Yizhe Zhang and Binyuan Hui and Junyang Lin and Robert Brennan and Hao Peng and Heng Ji and Graham Neubig},
year={2024},
eprint={2407.16741},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2407.16741},
}
Conclusion
OpenHands représente le fer de lance du développement logiciel assisté par l'IA. En fournissant une plateforme complète d'agents de développement d'IA, il permet aux développeurs d'accomplir diverses tâches de programmation plus efficacement. Que ce soit pour les développeurs individuels ou les équipes d'entreprise, OpenHands permet de découvrir la commodité du développement automatisé piloté par l'IA.
