Introducción Detallada al Proyecto OpenHands
Resumen del Proyecto
OpenHands (anteriormente OpenDevin) es una plataforma de agentes inteligentes de desarrollo de software impulsada por IA. Este proyecto de código abierto tiene como objetivo crear agentes de IA capaces de trabajar como desarrolladores humanos, con la capacidad integral de modificar código, ejecutar comandos, navegar por la web y llamar a APIs.
Características Principales
🤖 Capacidades del Agente
- Modificación de Código: Capaz de comprender y modificar bases de código existentes.
- Ejecución de Comandos: Puede ejecutar varios comandos y scripts del sistema.
- Navegación Web: Posee la capacidad de navegar por la web para obtener información.
- Llamada a APIs: Capaz de llamar a varias interfaces de API externas.
- Inspiración de Código: Incluso puede copiar fragmentos de código de sitios web como StackOverflow.
🌐 Múltiples Métodos de Implementación
- Servicio en la Nube: Ofrece el servicio en la nube de OpenHands, con $50 de crédito gratuito para nuevos usuarios.
- Implementación Local con Docker: Admite la ejecución local a través de Docker.
- Modo Sin Interfaz Gráfica (Headless): Admite la ejecución en modo sin interfaz gráfica mediante scripts.
- Interfaz de Línea de Comandos (CLI): Proporciona una interfaz CLI amigable.
- GitHub Action: Se puede ejecutar en issues etiquetados a través de GitHub Action.
🔧 Características Técnicas
- Soporte Multi-LLM: Admite múltiples modelos de lenguaje grandes, se recomienda usar Claude 3.7 Sonnet de Anthropic.
- Contenedorización con Docker: Entorno sandbox seguro completamente basado en Docker.
- Conexión al Sistema de Archivos: Se puede conectar al sistema de archivos local para el desarrollo.
- Impulsado por la Comunidad: Proyecto impulsado por la comunidad de código abierto, ¡bienvenidas las contribuciones!
Inicio Rápido
Implementación en la Nube
Visite OpenHands Cloud para comenzar a usarlo, los nuevos usuarios obtienen $50 de crédito gratis.
Implementación Local con Docker
# Descargar la imagen de tiempo de ejecución
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.36-nikolaik
# Ejecutar 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
Después de iniciar, visite http://localhost:3000 para usarlo.
Requisitos del Sistema y Configuración
Configuración del Modelo LLM
- Modelo Recomendado: Claude 3.7 Sonnet de Anthropic (
anthropic/claude-3-7-sonnet-20250219
)
- Soporte para Múltiples Modelos: Consulte la Documentación LLM para obtener más detalles.
- Clave API: Se requiere configurar la clave API correspondiente.
Precauciones de Seguridad
- Adecuado para uso en estaciones de trabajo locales de un solo usuario.
- No apto para implementaciones multi-tenant.
- No tiene mecanismos de autenticación y aislamiento incorporados.
- La implementación en redes públicas requiere consultar la Guía de Implementación Segura.
Funciones Avanzadas
Funciones para Desarrolladores
- Modificación del Código Fuente: Admite la modificación del código fuente de OpenHands, consulte
Development.md
para obtener más detalles.
- Solución de Problemas: Proporciona una guía detallada de solución de problemas.
- Configuración Avanzada: Admite varias opciones de configuración avanzada.
Capacidades de Integración
- Integración del Sistema de Archivos: Se puede conectar al sistema de archivos local.
- Integración con GitHub: Admite la automatización de GitHub Action.
- Integración de API: Amplias capacidades de llamada a API.
Arquitectura Técnica
Componentes Principales
- Motor del Agente Inteligente: Motor central de inferencia y toma de decisiones de IA.
- Entorno Sandbox: Entorno de ejecución de código seguro.
- Capa de Interfaz: Admite múltiples métodos de interacción como Web UI, CLI, API, etc.
- Sistema de Plugins: Arquitectura de plugins extensible.
Ecosistema de Código Abierto
- Licencia MIT: Licencia amigable para el código abierto.
- Proyectos Dependientes: Construido sobre múltiples proyectos de código abierto.
- Archivo de Agradecimientos: Consulte
CREDITS.md
para conocer todos los proyectos dependientes.
Hoja de Ruta del Proyecto
Los mantenedores del proyecto actualizarán la Hoja de Ruta Mensual a finales de cada mes, mostrando la dirección y los planes de desarrollo del proyecto.
Cita Académica
Si necesita citar este proyecto en una investigación académica, puede utilizar el siguiente formato:
@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},
}
Resumen
OpenHands representa la vanguardia del desarrollo de software asistido por IA, al proporcionar una plataforma completa de agentes de desarrollo de IA, permite a los desarrolladores completar tareas de programación de manera más eficiente. Tanto los desarrolladores individuales como los equipos empresariales pueden experimentar la conveniencia del desarrollo automatizado impulsado por IA a través de OpenHands.
