Skip to content

Latest commit

 

History

History
144 lines (110 loc) · 7.71 KB

File metadata and controls

144 lines (110 loc) · 7.71 KB

Theo vs NanoClaw vs nanobot vs OpenClaw

Cuatro asistentes personales de IA, cuatro filosofias distintas.

En una linea

Theo — Esqueleto funcional. ~600 lineas. Ejercicio de aprendizaje.

NanoClaw — Producto robusto. ~5,000 lineas. Theo maduro con seguridad, browser, multi-canal.

nanobot — Framework hackeable. ~3,700 lineas. Python async, multi-LLM, multi-canal nativo, sin containers.

OpenClaw — Plataforma completa. ~564,000 lineas. Gateway con 38 extensiones, apps nativas, plugin system, vector memory.


Arquitectura fundamental

Theo NanoClaw nanobot OpenClaw
Lenguaje TypeScript TypeScript Python TypeScript
Escala ~600 LOC ~5,000 LOC ~3,700 LOC ~564,000 LOC
Archivos ~10 ~15 ~40 ~3,164
Proceso 1 Node.js 1 Node.js 1 Python async Node.js gateway + Pi agent runtime
Ejecucion del agente Container → Claude Agent SDK Container → Claude Agent SDK Directo → LLM API via LiteLLM Pi agent runtime (ACP protocol)
Aislamiento Linux VM por invocacion Linux VM + mount security Mismo proceso, opcional workspace-only Pi sandbox + workspace-only
Base de datos SQLite SQLite Archivos (JSONL, JSON, Markdown) SQLite + sqlite-vec (vector embeddings)
Config Hardcoded + .env src/config.ts + .env ~/.nanobot/config.json (Pydantic) YAML con Zod schemas + hot-reload
Monorepo No No No Si (pnpm workspaces)

Canales

Canal Theo NanoClaw nanobot OpenClaw
WhatsApp baileys directo baileys directo Node.js bridge → Python baileys directo
Telegram via skill Bot API nativo grammy nativo
Discord Gateway nativo discord.js nativo
Slack Socket Mode nativo Bolt SDK nativo
Email via skill IMAP/SMTP nativo
X/Twitter via skill
iMessage BlueBubbles nativo
Signal signal-cli nativo
Google Chat nativo
Feishu WebSocket nativo extension
DingTalk Stream nativo extension
QQ botpy nativo
Teams extension
Matrix extension
WebChat nativo
Total 1 1 + skills 9 nativos 8 nativos + 38 extensiones

Proveedores LLM

Theo NanoClaw nanobot OpenClaw
Claude Unico (Agent SDK) Unico (Agent SDK) Uno de 50+ (LiteLLM) Principal (API/OAuth)
OpenAI No No Si Si (ChatGPT, Codex)
Google No No Si (Gemini) Si (Gemini, Bedrock)
Otros No No DeepSeek, vLLM, OpenRouter, etc. GitHub Copilot, Bedrock
Multi-profile No No No Si (failover + cooldown)

Tools del agente

Theo NanoClaw nanobot OpenClaw
Shell/Bash Claude Code tools Claude Code tools exec propio (timeout, blocked cmds) Pi bash (node-pty)
Filesystem Claude Code tools Claude Code tools read/write/list propios Pi tools (workspace-scoped)
Web search Claude Code tools Claude Code tools Brave API Claude tools
Web fetch Claude Code tools Claude Code tools httpx + readability Claude tools
Browser No Chromium + agent-browser No Playwright headless
Canvas No No No Si (render visual output)
Webhooks No No No Si
Subagentes No No spawn() en background No
MCP send_message, schedule_task, list_tasks, check_new_messages send_message, schedule_task + management MCP servers externos

Memoria y persistencia

Theo NanoClaw nanobot OpenClaw
Conversacion Session resume (Agent SDK transcripts) Session resume (Agent SDK transcripts) JSONL por sesion Session files + vector context
Memoria larga CLAUDE.md por grupo CLAUDE.md por grupo + global MEMORY.md + HISTORY.md Vector embeddings (sqlite-vec)
Busqueda semantica No No No Si (BM25 + vector hybrid)
Consolidacion SDK compaction SDK compaction LLM resume → HISTORY.md Temporal decay + embedding refresh

Tareas programadas

Theo NanoClaw nanobot OpenClaw
Tipos cron, interval, once cron, interval, once at, every, cron cron expressions
Storage SQLite SQLite JSON file Config YAML
Heartbeat No No HEARTBEAT.md cada 30 min BOOT.md al iniciar

Comunicacion host ↔ agente

Theo NanoClaw nanobot OpenClaw
Protocolo JSON stdin/stdout + IPC filesystem JSON stdin/stdout + IPC filesystem streaming Directo (async queues) WebSocket (ACP protocol)
Follow-ups Post-completion drain + re-invoke Streaming: ipc/input/ polled cada 500ms Inmediato (MessageBus) Streaming nativo (tool/block streaming)
Gateway No No No Si — WebSocket server en localhost:18789
Apps nativas No No No Si — macOS, iOS, Android

Seguridad

Theo NanoClaw nanobot OpenClaw
Aislamiento Container Linux (VM real) Container + mount allowlist + blocked patterns Proceso compartido, workspace-only opcional Pi sandbox + workspace-only
Ejecucion de comandos Sin restriccion (aislado por VM) Sin restriccion (aislado por VM) Blocked patterns, timeout 60s Sandbox policies configurables
DM policy Auto-register Auto-register + main/non-main allowFrom lists Pairing code por defecto
Auth Bridge token opcional Device signing + JWT + password
TLS No No No Fingerprint pinning opcional

Skills / extensibilidad

Theo NanoClaw nanobot OpenClaw
Sistema No Claude Code skills SKILL.md + frontmatter Plugin SDK + extensions/
Cantidad 0 ~10 skills ~6 built-in 38 extensiones
Carga On-demand (slash commands) Progressive (full/summary) Runtime (jiti loader)
Third-party No No clawhub registry Plugin SDK exportable

Deployment

Theo NanoClaw nanobot OpenClaw
Dev npm run dev npm run dev nanobot run pnpm gateway:watch
Produccion launchd plist tmux/systemd Docker, Fly.io, Render
Docker No Si (via skill) Si (Dockerfile + compose) Si (oficial, non-root)
Apps nativas No No No macOS, iOS, Android
CLI No No Si (typer) Si (commander)
Web UI No No No Si (Control UI en gateway)

Resumen

Theo — El esqueleto. ~600 lineas que demuestran la arquitectura container + Agent SDK + WhatsApp de punta a punta. Para aprender.

NanoClaw — El producto personal. Misma arquitectura que Theo pero listo para uso real: seguridad, browser, multi-canal, recovery. Un solo LLM (Claude), un solo paradigma (containers aislados).

nanobot — El framework hackeable. Python async, multi-LLM (50+ providers), 9 canales nativos, skills, subagentes. Sin containers — mas ligero pero sin aislamiento real.

OpenClaw — La plataforma. 564K lineas, 38 extensiones, apps nativas, vector memory, gateway WebSocket, plugin SDK, multi-provider con failover. Para quien quiere un ecosistema completo con todo resuelto.

La progresion: Theo enseña los fundamentos. NanoClaw los convierte en producto. nanobot explora el camino Python sin containers. OpenClaw es el destino final si no te importa la complejidad.