O que openhands-infra faz?
🚀 Hospede seu próprio agente de codificação de IA na AWS — totalmente serverless com ECS Fargate. Custo zero de ociosidade, isolamento por conversa, LLM Bedrock. Implante com CDK em minutos.
Visão Geral
Esta skill fornece uma infraestrutura completa para rodar o OpenHands, um agente de codificação de IA de código aberto, em um ambiente AWS serverless usando ECS Fargate. Ela é projetada para ser econômica (cobrança por uso), segura e escalável.
Principais Características
- Serverless: O ECS Fargate elimina a necessidade de gerenciar servidores ou clusters EC2.
- Custo Zero de Ociosidade: Você só paga pelos recursos consumidos quando o agente está ativo.
- Isolamento por Conversa: Cada conversa ou sessão é executada em um contêiner Fargate independente e efêmero, garantindo privacidade e isolamento.
- LLM via Amazon Bedrock: Acesso aos modelos de linguagem através do serviço Bedrock da AWS, mantendo os dados dentro do ambiente AWS.
- Deploy com CDK: O provisionamento é feito inteiramente via AWS CDK (Infrastructure as Code), permitindo replicação rápida e controle de versão da infraestrutura.
- Segurança Integrada: IAM Roles, VPC e segurança em nível de rede são configurados automaticamente.
Pré-requisitos
- Conta AWS com credenciais configuradas (Access Key e Secret Key).
- Node.js (para executar o CDK).
- AWS CLI instalado e configurado.
- Bootstrap do CDK na região desejada (execute
cdk bootstrap).
Instalação e Deploy
-
Clone este repositório:
git clone https://github.com/zxkane/openhands-infra.git -
Instale as dependências:
npm install -
Configure as variáveis de ambiente no arquivo
.env(copie de.env.example):OPENHANDS_VERSION=latest AWS_REGION=us-west-2 BEDROCK_MODEL_ID=anthropic.claude-v2 -
Faça o deploy da stack:
cdk deploy
Como Usar
Após o deploy, o CDK exibirá a URL do Load Balancer (ALB) ou do endpoint do serviço. Você pode acessar essa URL com um cliente HTTP (curl, Postman, ou diretamente na skill do OpenHands) para iniciar uma conversa.
Exemplo de requisição:
curl -X POST https://<alb-url>/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Crie um script Python para listar arquivos em um bucket S3."}'
Arquitetura
A arquitetura é composta por:
- ALB (Application Load Balancer): Ponto de entrada para as requisições.
- ECS Fargate Service: Contêineres rodando o OpenHands.
- Amazon Bedrock: Integração com LLM através da API Bedrock.
- ECR: Repositório de imagens do contêiner.
- CloudWatch Logs: Logs centralizados.
Manutenção
- Atualização do OpenHands: Altere a variável
OPENHANDS_VERSIONno.enve executecdk deploynovamente. - Escala: O CDK permite ajustar a contagem de tarefas e recursos via parâmetros.
- Monitoramento: Utilize CloudWatch para métricas e logs.
Suporte
Para dúvidas, abra uma issue no repositório oficial.