Apresentação Detalhada do Projeto OpenHands
Visão Geral do Projeto
OpenHands (anteriormente OpenDevin) é uma plataforma de agentes de software orientada por IA. Este projeto de código aberto visa criar agentes de IA capazes de trabalhar como desenvolvedores humanos, com a capacidade abrangente de modificar código, executar comandos, navegar na web e chamar APIs.
Principais Características
🤖 Capacidades do Agente
- Modificação de Código: Capacidade de entender e modificar bases de código existentes
- Execução de Comandos: Pode executar vários comandos e scripts do sistema
- Navegação na Web: Capacidade de navegar na web para obter informações
- Chamada de API: Capacidade de chamar várias interfaces de API externas
- Empréstimo de Código: Pode até mesmo copiar trechos de código de sites como o StackOverflow
🌐 Múltiplas Formas de Implantação
- Serviço na Nuvem: Oferece o serviço OpenHands na nuvem, com US$ 50 de crédito gratuito para novos usuários
- Implantação Local com Docker: Suporta a execução local via Docker
- Modo Headless: Suporta execução em modo headless via script
- Interface de Linha de Comando: Oferece uma interface CLI amigável
- GitHub Action: Pode ser executado em issues marcadas via GitHub Action
🔧 Características Técnicas
- Suporte a Múltiplos LLMs: Suporta vários modelos de linguagem grandes, com recomendação para o Claude 3.7 Sonnet da Anthropic
- Containerização com Docker: Ambiente de sandbox seguro totalmente baseado em Docker
- Conexão com o Sistema de Arquivos: Pode se conectar ao sistema de arquivos local para desenvolvimento
- Orientado pela Comunidade: Projeto de código aberto orientado pela comunidade, contribuições são bem-vindas
Começo Rápido
Implantação na Nuvem
Acesse OpenHands Cloud para começar a usar, novos usuários recebem US$ 50 de crédito gratuito.
Implantação Local com Docker
# Puxar a imagem de tempo de execução
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.36-nikolaik
# Executar o 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
Após a inicialização, acesse http://localhost:3000 para usar.
Requisitos e Configuração do Sistema
Configuração do Modelo LLM
- Modelo Recomendado: Claude 3.7 Sonnet da Anthropic (
anthropic/claude-3-7-sonnet-20250219
)
- Suporte a Vários Modelos: Consulte a Documentação LLM
- Chave de API: Requer a configuração da chave de API correspondente
Notas de Segurança
- Adequado para uso em estações de trabalho locais de usuário único
- Não adequado para implantação multi-inquilino
- Não possui mecanismos de autenticação e isolamento integrados
- A implantação em rede pública requer consulta ao Guia de Implantação Segura
Funcionalidades Avançadas
Funcionalidades para Desenvolvedores
- Modificação do Código Fonte: Suporta a modificação do código fonte do OpenHands, consulte
Development.md
- Resolução de Problemas: Oferece um guia detalhado de resolução de problemas
- Configuração Avançada: Suporta várias opções de configuração avançadas
Capacidades de Integração
- Integração com o Sistema de Arquivos: Pode se conectar ao sistema de arquivos local
- Integração com o GitHub: Suporta automação com GitHub Action
- Integração com API: Ricas capacidades de chamada de API
Arquitetura Técnica
Componentes Principais
- Motor do Agente: Motor central de inferência e decisão de IA
- Ambiente Sandbox: Ambiente de execução de código seguro
- Camada de Interface: Suporta várias formas de interação, como Web UI, CLI e API
- Sistema de Plugins: Arquitetura de plugins extensível
Ecossistema de Código Aberto
- Licença MIT: Licença amigável ao código aberto
- Projetos de Dependência: Construído com base em vários projetos de código aberto
- Arquivo de Agradecimentos: Consulte
CREDITS.md
para conhecer todos os projetos de dependência
Roteiro do Projeto
Os mantenedores do projeto atualizam o Roteiro Mensal no final de cada mês, mostrando a direção e os planos de desenvolvimento do projeto.
Citação Acadêmica
Para citar este projeto em pesquisas acadêmicas, use o seguinte 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},
}
Resumo
OpenHands representa a vanguarda do desenvolvimento de software assistido por IA, fornecendo uma plataforma completa de agentes de desenvolvimento de IA, permitindo que os desenvolvedores concluam várias tarefas de programação com mais eficiência. Tanto desenvolvedores individuais quanto equipes corporativas podem experimentar a conveniência do desenvolvimento automatizado orientado por IA através do OpenHands.
