nanobot: Asistente IA de 4,000 líneas Python desarrollado en minutos
¿Qué es nanobot?
nanobot es un asistente IA personal ultraligero inspirado en Clawdbot, pero con una fracción del código base – ~4,000 líneas frente a las 430k+ de Clawdbot. Impulsado por herramientas de código abierto y Python, te ofrece un chatbot listo para usar que funciona en tu portátil o en una VM en la nube en minutos.
¿Por qué nanobot?
| Beneficio | Detalles |
|---|---|
| Compacto | 4,000 líneas de código limpio y legible – 99 % más pequeño que otros agentes. |
| Rápido | Huella mínima significa menor uso de RAM/CPU y arranque rápido. |
| Listo para investigación | Arquitectura modular (skills, herramientas, canales) facilita ampliarlo o modificarlo. |
| Despliegue flexible | Funciona listo con OpenRouter o cualquier LLM local mediante vLLM, con un archivo de configuración sencillo. |
| Multicanal | Chatea por Telegram o WhatsApp, incluso transcripción de voz vía Groq. |
| Programación | Trabajos tipo Cron permiten tareas recurrentes – ideal para recordatorios o recolección de datos. |
Visión general de la arquitectura
nanobot/
├─ agent/ # Bucle principal, memoria, skills
├─ skills/ # Funcionalidades incorporadas (github, weather, tmux…)
├─ channels/ # Integración con Telegram/WhatsApp
├─ cron/ # Programador para tareas recurrentes
├─ bus/ # Enrutamiento de mensajes
├─ providers/ # OpenAI, OpenRouter, Groq, vLLM
├─ config/ # Ayudantes CLI
└─ cli/ # Entradas de línea de comandos
Un skill es un módulo autónomo que puede ser activado por una solicitud. El bucle del agente envía la consulta del usuario al LLM, recibe un token de invocación de herramienta y lo entrega al skill apropiado. La memoria se persiste entre sesiones en un sencillo almacén SQLite.
Instalando nanobot
1. Desde PyPI (estable, rápido)
pip install nanobot-ai
2. Desde el código fuente (últimas características)
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip install -e . # editable para desarrollo
3. Con UV (instalación rápida)
uv tool install nanobot-ai
Guía de inicio rápido
Prepara un archivo de configuración mínimo en ~/.nanobot/config.json:
{
"providers": {
"openrouter": { "apiKey": "sk-or-xxxx" }
},
"agents": {
"defaults": { "model": "anthropic/claude-opus-4-5" }
}
}
Inicia el chatbot:
nanobot onboard # inicializa config & workspace
nanobot agent -m "What is 2+2?"
Modo interactivo:
nanobot agent # inicia un REPL
Chatea por Telegram
- Crea un bot a través de @BotFather y copia el token.
- Añade el token y tu ID de usuario a
config.json:
"channels": {
"telegram": { "enabled": true, "token": "YOUR_BOT_TOKEN", "allowFrom": ["YOUR_USER_ID"] }
}
nanobot gateway
Ahora cada mensaje que envíes al bot aparece en la CLI y viceversa.
Despliegue de LLM local con vLLM
# Inicia un modelo local Llama‑3
vllm serve meta-llama/Llama-3.1-8B-Instruct --port 8000
"providers": {
"vllm": { "apiKey": "dummy", "apiBase": "http://localhost:8000/v1" }
},
"agents": { "defaults": { "model": "meta-llama/Llama-3.1-8B-Instruct" } }
Configuración compatible con Docker
# Construye la imagen
docker build -t nanobot .
# Onboarding único
docker run -v ~/.nanobot:/root/.nanobot --rm nanobot onboard
# Ejecuta el gateway
docker run -v ~/.nanobot:/root/.nanobot -p 18790:18790 nanobot gateway
Persistir ~/.nanobot asegura que tus claves API y el workspace sobrevivan a reinicios del contenedor.
Tareas programadas (Cron)
Añade un saludo diario:
nanobot cron add --name "daily" --message "Good morning!" --cron "0 9 * * *"
nanobot cron list
nanobot cron remove <job_id>
Ampliando nanobot
- Crea un nuevo directorio en
skills/. - Añade un
tool.pyque implementeclass Tool:conname,descriptionyrun(). - Registra el skill en el escáner
skills/__init__.py. - Reinicia
nanobot gateway– el nuevo skill está disponible.
Todos los skills son puro Python, lo que hace que experimentar sea trivial.
Contribuciones
El objetivo es un código base mínimo y comprensible. Siéntete libre de:
- Añadir nuevos skills (clima, noticias, búsqueda en GitHub, etc.)
- Implementar transcripción de voz vía Groq Whisper
- Ampliar soporte multimodal (imágenes, voz)
- Mejorar capacidades de razonamiento y planificación
- Añadir más integraciones de canales (Discord, Slack, correo electrónico)
¡Se aceptan pull requests! Solo sigue el estilo existente y añade pruebas.
En resumen
- nanobot entrega un asistente IA personal totalmente funcional en un repositorio Python de 4,000 líneas.
- Funciona localmente o en Docker, se integra con cualquier LLM compatible con OpenAI y se conecta a Telegram/WhatsApp.
- El diseño modular permite añadir skills personalizadas, programar tareas e incluso cambiar a modelos locales.
- Ya seas un investigador que busca un agente limpio y listo para investigación, un desarrollador que necesita prototipar rápido o un aficionado curioso de construir un asistente IA, nanobot te ofrece todo lo que necesitas con la menor fricción posible.
¡Feliz hacking!