PYTHON / AI AGENTS

Nanobot: El OpenClaw Ultra-Liviano en Python

Una reimplementación en Python de OpenClaw del HKU Data Intelligence Lab. 46k estrellas, "99% menos líneas de código" (~4,000 LOC), integración MCP, cron jobs en lenguaje natural, 10+ canales de mensajería y 191MB de RAM.

Por Jose Nobile | 2026-06-11 | 10 min de lectura

¿Qué es Nanobot?

Nanobot es una reimplementación en Python del framework de agentes AI OpenClaw, desarrollada por el Data Intelligence Lab de la Universidad de Hong Kong (HKU). Con 46k estrellas en GitHub y licencia MIT, es la alternativa a OpenClaw más popular por cantidad de estrellas. El lema del proyecto — "99% menos líneas de código" — refleja sus ~4,000 líneas de Python comparadas con el codebase TypeScript significativamente más grande de OpenClaw. La última versión es v0.2.1 (1 de junio de 2026); la serie v0.2.x introdujo el comando /goal para objetivos sostenidos que sobreviven la compactación de contexto, incluyó la WebUI dentro del paquete pip, e hizo el trabajo de larga duración más durable con locks de sesión y mayores presupuestos de iteración de goals.nanobot webui, adds inline subagent consultation inside a running task, and gates sustained execution behind an explicit /goal command so ordinary conversations no longer inherit long-running behavior.

La filosofía de diseño es simplicidad radical. Nanobot elimina la arquitectura gateway/nodo de OpenClaw en favor de un único proceso Python que maneja todo: interacción con LLM, adaptadores de canal, memoria, programación y ejecución de herramientas. Esto hace que el deployment sea trivial — pip install nanobot-ai && nanobot start — a costa de algunas capacidades de sistemas distribuidos.

A pesar de su simplicidad, Nanobot rinde por encima de su peso. Soporta integración MCP (Model Context Protocol) de fábrica, se conecta a 10+ canales de mensajería, e introduce cron jobs en lenguaje natural donde describes horarios en español llano en lugar de sintaxis cron. La huella de memoria está alrededor de 191MB — una fracción de OpenClaw pero significativamente más que alternativas basadas en Rust como ZeroClaw.

Arquitectura

RUNTIME

Python 3.11+

Nanobot requiere Python 3.11 o posterior, aprovechando funcionalidades modernas de Python como pattern matching estructural, ExceptionGroup y rendimiento mejorado de asyncio. El agente completo corre como un único proceso asíncrono usando asyncio, sin necesidad de gestor de procesos externo.

PROTOCOL

Integración MCP

Soporte de primera clase para Model Context Protocol. Nanobot puede actuar tanto como cliente MCP (consumiendo herramientas de servidores MCP) como host MCP (exponiendo sus propias herramientas a otros agentes). Esto significa que cualquier servidor de herramientas compatible con MCP funciona con Nanobot inmediatamente, sin escribir integraciones personalizadas.

PROVIDERS

Múltiples Proveedores LLM

Soporte integrado para OpenAI, Anthropic, DeepSeek, Qwen, Ollama y vLLM. Cambiar de proveedor es un solo cambio de configuración. La capa de abstracción LLM normaliza las convenciones de llamada de herramientas entre proveedores, por lo que las herramientas funcionan idénticamente sin importar el modelo subyacente.

DESIGN

Arquitectura de Proceso Único

A diferencia de la separación distribuida gateway/nodo/canal de OpenClaw, Nanobot corre todo en un proceso. Esto simplifica el deployment y debugging pero significa que escalar requiere ejecutar múltiples instancias independientes de Nanobot. Para la mayoría de casos de uso de asistente personal, un solo proceso es más que suficiente.

La arquitectura de proceso único es tanto la mayor fortaleza como la principal limitación de Nanobot. Significa que puedes desplegar un agente AI completamente funcional en un VPS de $5/mes con pip install y un archivo de configuración. Pero si necesitas ejecución distribuida de tareas entre múltiples máquinas, vas a tener que mirar OpenClaw o ZeroClaw.

Funcionalidades

SCHEDULING

Cron Jobs en Lenguaje Natural

Define tareas programadas en español llano: "Cada día hábil a las 8am, resume mis emails no leídos y envía el resumen a Telegram." Nanobot parsea la descripción en lenguaje natural a una representación interna de horario. No se necesita sintaxis cron — aunque las expresiones cron tradicionales también están soportadas para precisión.

CHANNELS

10+ Canales de Mensajería

Telegram, Discord, WhatsApp, WeChat, Feishu, DingTalk, Slack, Matrix, Email y QQ. Cada adaptador de canal es una clase Python liviana (~100–200 líneas) que mapea eventos específicos de la plataforma al formato de mensaje unificado de Nanobot. Agregar un nuevo canal típicamente toma unas pocas horas de desarrollo.

MEMORY

191MB de RAM

El consumo total de memoria está en aproximadamente 191MB durante operación activa. Esto incluye el runtime de Python, todas las bibliotecas cargadas y la ventana de contexto de conversación. Comparado con la huella de 1GB+ de OpenClaw, Nanobot es significativamente más liviano mientras provee todo el ecosistema Python.

TOOLS

Ecosistema de Herramientas MCP

Porque Nanobot soporta MCP nativamente, tiene acceso a todo el ecosistema de herramientas MCP: acceso al sistema de archivos, navegación web, consultas a bases de datos, integraciones API y herramientas personalizadas. Los servidores MCP pueden ser procesos locales o servicios remotos — Nanobot se conecta a ellos vía transporte stdio o HTTP.

SIMPLICITY

~4,000 Líneas de Código

El núcleo completo de Nanobot es aproximadamente 4,000 líneas de Python. Esto lo convierte en uno de los frameworks de agentes AI más auditables disponibles. Un solo desarrollador puede leer y entender el codebase completo en una tarde. Este es un trade-off deliberado: menos superficie de funcionalidades, pero complejidad dramáticamente menor.

INSTALL

pip Install y Listo

La instalación es un solo comando: pip install nanobot-ai. La configuración es un solo archivo YAML. Sin Docker, sin paso de build, sin Node.js, sin compilación. Esto hace de Nanobot el camino más rápido de cero a un agente AI funcional para desarrolladores Python.

Respaldo Académico

Nanobot está desarrollado por el mismo equipo del HKU Data Intelligence Lab detrás de ClawWork, un framework de evaluación económica para agentes AI con 8.2k estrellas en GitHub. ClawWork provee benchmarks estandarizados para medir la relación costo-efectividad de deployments de agentes AI — cuánto valor genera un agente por dólar gastado en llamadas API, cómputo y mantenimiento.

Este pedigrí académico le da a Nanobot un carácter distintivo. El codebase refleja pensamiento de grado investigación sobre arquitectura de agentes: abstracciones limpias, acoplamiento mínimo e interfaces bien definidas entre componentes. El equipo publica papers de investigación que informan las decisiones de diseño, lo que significa que la arquitectura de Nanobot está fundamentada en evidencia empírica en lugar de puramente intuición de ingeniería.

RESEARCH

Framework ClawWork (8.2k estrellas)

Un framework de evaluación económica para agentes AI que mide costo por completación de tarea, métricas de output ajustadas por calidad y eficiencia de recursos entre diferentes arquitecturas de agentes. Usado por el equipo para benchmarkear Nanobot contra OpenClaw y otras alternativas.

RESEARCH

HKU Data Intelligence Lab

El laboratorio se enfoca en sistemas AI basados en datos, incluyendo frameworks de agentes, generación aumentada por recuperación y AI multi-modal. Las publicaciones de investigación del equipo sobre economía de agentes informan directamente el diseño de Nanobot — particularmente el énfasis en consumo mínimo de recursos y máxima entrega de valor por llamada API.

El respaldo académico es un arma de doble filo. Nanobot se beneficia de pensamiento de diseño riguroso e investigación publicada, pero los proyectos académicos a veces despriorizan preocupaciones operacionales (monitoreo, logging, degradación graceful) que los deployments de producción necesitan. Evalúa este trade-off para tu caso de uso específico.

Bugs Conocidos

El codebase pequeño de Nanobot significa menos bugs en general, pero los que existen tienden a afectar flujos de trabajo comunes. Los siguientes son los issues abiertos más impactantes a junio de 2026:

HIGH

#2343: Desbordamiento de Ventana de Contexto sin Verificar

El loop del agente no valida el historial de conversación acumulado contra el contextWindowTokens configurado antes de llamar al proveedor. Las sesiones de larga duración eventualmente exceden la longitud máxima de contexto del modelo y fallan con un HTTP 400 del proveedor ("maximum context length exceeded") en lugar de recortar o compactar el historial. Hasta que el loop recorte el historial automáticamente, mantén las sesiones largas cortas o limpia la conversación cuando aparezca el error.

MEDIUM

#2185: Regresión Rompe Tool Calls de Gemini

Actualizar de 0.1.4 a 0.1.4post5 rompe el tool calling para gemini-3-flash-preview accedido a través de endpoints compatibles con OpenAI. Cada comando externo falla con "Function call is missing a thought_signature in functionCall parts." La regresión afecta a modelos Gemini 3 que pasan por proveedores estilo OpenAI.

MEDIUM

#4302: El Gateway Crashea Tras Reconexión MCP

Cuando una conexión a un servidor MCP se cae y se restablece, el gateway de nanobot puede crashear en lugar de reanudar limpiamente. Reiniciar el gateway recupera el servicio, pero los listeners de canales y las tareas programadas quedan interrumpidos hasta que vuelve a levantarse.

MEDIUM

#4290: Cron Job Termina Antes con Subagentes

Una tarea programada que genera un subagente puede terminar antes de que el subagente complete su trabajo, por lo que la ejecución cron finaliza sin entregar los resultados del subagente. Hasta que se corrija, evita delegar a subagentes dentro de tareas activadas por cron.

LOW

#4287: Respuestas Vacías Omiten el Fallback de Modelos

Cuando el modelo primario devuelve una respuesta vacía, nanobot no activa su fallback a modelos alternativos — el turno simplemente no produce output. La cadena de fallback actualmente se dispara solo con errores de transporte, no con completions vacías.

El problema de la ventana de contexto (#2343) es el bug más impactante para sesiones de larga duración porque el agente falla con un error del proveedor en lugar de compactar el historial. Si tu caso de uso depende de tareas programadas que delegan a subagentes, vigila también #4290. El proyecto avanza rápido — v0.2.1 salió el 1 de junio de 2026 — así que revisa el issue tracker antes de fijar una versión.

Más Guías