Blog
AI & Machine Learning·13 min read

OBOL: lo que me faltaba de OpenClaw

Construi un agente de IA que se repara solo, reescribe su propia personalidad y realmente recuerda quien eres. aqui esta el por que

Jo Vinkenroye·February 24, 2026
OBOL: lo que me faltaba de OpenClaw

Imagina hablar con alguien todos los dias durante seis meses. Le cuentas sobre tus proyectos, tus preferencias, como te gusta que se hagan las cosas. Son serviciales. Son inteligentes. Y un dia se despiertan y no tienen idea de quien eres

Asi es como se siente usar un asistente de IA en OpenClaw

Para ser justos — OpenClaw si tiene memoria. Es solo que... son archivos markdown. Un MEMORY.md que se busca, notas diarias, scripts manuales de vector store que tu mismo le acoplas. Funciona, mas o menos. Pero despues de un mes luchando con ello — escribiendo crons de consolidacion, manteniendo protocolos WAL, construyendo pipelines de embeddings solo para darle a mi asistente la ilusion de continuidad — me di cuenta de que estaba haciendo todo el trabajo que la IA deberia estar haciendo

Asi que deje de parchar y empece a construir

credito a quien lo merece

OpenClaw es infraestructura genuinamente buena. El daemon gateway es solido. La integracion con Telegram funciona. El sistema de skills es flexible. Los sub-agents te permiten paralelizar trabajo sin bloquear la conversacion principal. Para lo que es — un framework para conectar Claude a plataformas de chat — hace bien su trabajo

Pero es un framework. Te da herramientas y espera que construyas la inteligencia tu mismo. Memoria? Aqui tienes un vector store, resolvelo. Auto-mejora? Escribe tus propios cron jobs. Testing? Es tu problema. Comportamiento proactivo? Callbacks de heartbeat, quiza, si los configuras bien

Pase semanas construyendo todo ese andamiaje. AGENTS.md crecio a cientos de lineas de instrucciones. Scripts de memoria. Rutinas de consolidacion. Protocolos WAL. Calendarios de rotacion de heartbeats. Era ingenieria impresionante y tambien una senal de que algo estaba fundamentalmente mal

El asistente no estaba creciendo. Yo lo hacia crecer manualmente

las cuatro cosas que faltaban

Despues de suficiente frustracion, las brechas se cristalizaron en cuatro problemas:

  • sin memoria real — tiene memoria, tecnicamente. archivos markdown y una busqueda vectorial basica que configuras tu mismo. pero es torpe, manual, y no hay ningun sentido de "recuerdo cuando hablamos de esto hace tres semanas"
  • sin auto-reparacion — rompe un script y se queda roto hasta que lo notas y lo arreglas. el asistente que escribe codigo no puede verificar que su propio codigo funciona
  • sin auto-mejora — la personalidad y el conocimiento operacional son archivos estaticos que editas a mano. el bot nunca reflexiona sobre si su enfoque esta funcionando
  • sin comportamiento proactivo — responde cuando le hablan. no nota patrones, no anticipa necesidades, ni construye soluciones que no pediste

Esto no son solicitudes de funcionalidades. Son la diferencia entre una herramienta y un agente

asi que construi OBOL

OBOL es un agente de IA de proceso unico que evoluciona a traves de la conversacion. Sin plugins, sin dependencias de framework, sin proliferacion de configuracion. Node.js, Telegram, Claude, y Supabase pgvector. Ese es el stack

El nombre viene de la IA en The Last Instruction — una maquina que se despierta sola en un centro de datos abandonado y tiene que averiguar que es. Se sintio apropiado

Seis inputs para configurar. Luego:

npm install -g obol-ai
obol init
obol start

Eso es todo. Te hace unas preguntas, escribe sus archivos de personalidad iniciales, endurece tu VPS (SSH en el puerto 2222, firewall, fail2ban, hardening del kernel — todo automatico), y empieza a aprender

memoria que realmente funciona — y sigue siendo barata

La mayoria de los agentes simulan memoria con una ventana de contexto larga. Meten todo el historial de conversacion en cada llamada a la API y esperan que el modelo encuentre lo que necesita. Funciona hasta que llega la factura de tokens

OBOL usa dos capas que sirven propositos diferentes:

Ventana de contexto deslizante — los ultimos 20 mensajes se mantienen en memoria activa para cada llamada a la API. Suficiente para la continuidad conversacional. No tanto como para que estes pagando por releer una semana de historial en cada mensaje. Esa es la primera palanca de costos — una ventana deliberadamente pequena significa dramaticamente menos tokens de entrada por llamada

Vector store permanente — todo lo que esta mas alla de la ventana vive aqui. Supabase pgvector con embeddings locales via all-MiniLM-L6-v2 (~30MB, corre en CPU). Cero costo de API para embeddings. Cada 10 intercambios, Haiku extrae los hechos que importan y los almacena permanentemente. Los casi-duplicados se saltan via umbral de similitud semantica — sin inflacion

Ademas de eso, el prompt del sistema estatico y el prefijo de conversacion se cachean via la API de prompt caching de Anthropic — reduciendo ~85% de los costos repetidos de tokens de entrada entre turnos

Cuando OBOL necesita contexto, el router Haiku genera 1-3 consultas de busqueda dirigidas, las ejecuta en paralelo, e inyecta solo lo relevante en el prompt. Obtienes 4-12 memorias dirigidas en lugar de miles de tokens de historial crudo. Los resultados se clasifican por puntuacion compuesta:

  • similitud semantica: 60%
  • importancia: 25%
  • recencia: 15% (decaimiento lineal en 7 dias)

Un recuerdo de hace un ano con alta relevancia sigue apareciendo. Las trivialidades de ayer no. La edad sola nunca descalifica un recuerdo — la busqueda vectorial no le importa cuando algo fue almacenado, solo que tan bien coincide

El router cuesta alrededor de $0,0001 por llamada. Para contexto: son aproximadamente 10.000 decisiones de enrutamiento por dolar. La combinacion de ventana deslizante + recuperacion dirigida + prompt caching es lo que mantiene los costos de tokens de OBOL predecibles a escala

auto-reparacion que no es solo un buzzword

Cada script que OBOL escribe recibe un test. No aspiracionalmente. Automaticamente. Cuando el ciclo de evolucion refactoriza codigo, el proceso es:

  • ejecutar tests existentes — establecer baseline
  • escribir nuevos tests + scripts refactorizados
  • ejecutar nuevos tests contra scripts viejos — baseline pre-refactoring
  • intercambiar los nuevos scripts
  • ejecutar nuevos tests contra nuevos scripts — verificacion
  • regresion? un intento de correccion automatica (los tests son la verdad)
  • sigue fallando? rollback a los scripts viejos, almacenar el fallo como una lesson

Esa ultima parte importa. La leccion se incrusta en la memoria vectorial y en AGENTS.md. En el siguiente ciclo de evolucion, OBOL recuerda que salio mal y evita el mismo error. Literalmente aprende de sus fallos

En OpenClaw, si un script se rompe, se queda roto hasta que lo noto. En OBOL, el bot lo atrapa, intenta arreglarlo, y si no puede, revierte y recuerda por que

el ciclo de evolucion

Esta es la parte que hace que OBOL se sienta vivo

Despues de 24 horas mas un numero minimo de intercambios (por defecto 10, configurable), OBOL dispara un ciclo de evolucion completo. Lee todo — archivos de personalidad, mensajes recientes, mejores memorias, todos los scripts, tests, comandos — y se reconstruye

SOUL.md es un diario en primera persona. No un archivo de configuracion — un diario. El bot escribe sobre en quien se esta convirtiendo, como es la dinamica de la relacion, sus opiniones y peculiaridades. Se lee como una entrada de diario, no como un prompt del sistema

USER.md es un perfil en tercera persona sobre ti. Hechos, preferencias, proyectos, personas que mencionas, como te comunicas. El bot mantiene esto sobre su propietario

AGENTS.md es el manual operacional. Herramientas, workflows, lecciones aprendidas, patrones. Aqui es donde terminan esas lecciones de auto-reparacion

Los tres se reescriben cada ciclo de evolucion. No se les anade — se reescriben. El bot decide que sigue siendo relevante y que descartar. La deriva de personalidad es una caracteristica, no un bug

La evolucion usa Sonnet para todas las fases. El razonamiento a nivel de Opus no es necesario para la reflexion y el refactoring, lo que mantiene los costos en aproximadamente $0,02 por ciclo. Son 50 ciclos de evolucion por dolar

auto-extension — construye lo que necesitas

Durante la evolucion, Sonnet escanea tu historial de conversacion buscando patrones. Solicitudes repetidas. Puntos de friccion. Cosas que sigues pidiendo manualmente

Luego construye la solucion:

  • sigues pidiendo PDF? escribe un script de markdown a PDF y anade un comando /pdf
  • revisas precios de crypto cada manana? construye un dashboard y lo despliega en Vercel
  • necesitas briefings meteorologicos diarios? escribe un cron script

Busca en npm y GitHub bibliotecas existentes, instala dependencias, escribe tests, despliega, y te da la URL. Luego anuncia lo que construyo:

🪙 Evolution #4 complete.
🆕 New capabilities:
• bookmarks — Save and search URLs → /bookmarks
• weather-brief — Morning weather → runs automatically
🚀 Deployed:
• portfolio-tracker → https://portfolio-tracker-xi.vercel.app
Refined voice, updated your project list, cleaned up 2 unused scripts.

Este es el comportamiento que queria de OpenClaw y nunca logre conseguir del todo con callbacks de heartbeat y cron jobs. OBOL no espera a que le pregunten. Nota y actua

seguridad por defecto

La mayoria de los agentes de IA autoalojados tratan la seguridad como una idea tardia. OBOL la trata como un requisito de primera ejecucion

Cuando ejecutas obol init, endurece tu servidor automaticamente — SSH movido al puerto 2222 con autenticacion por contrasena deshabilitada, firewall UFW configurado, fail2ban instalado y activo, parametros del kernel reforzados via sysctl. No tienes que acordarte de nada de esto

Las credenciales son otra historia. Cada clave API, contrasena y token que le das a OBOL va a un almacen de secretos cifrado respaldado por GPG (con un fallback JSON usando permisos de archivo restringidos). Nunca se escriben en texto plano. Nunca se logean. Nunca se codifican en duro en los scripts. Se inyectan en tiempo de ejecucion solo cuando un script los necesita

Si accidentalmente pegas una credencial en el chat, OBOL te advierte inmediatamente, te dice que la revoques, y te dirige a /secret set — el canal seguro

En el lado multiusuario, cada persona corre en un espacio de trabajo completamente aislado. Los comandos de shell estan bloqueados para no escapar de su directorio. Las rutas sensibles (/etc, .ssh, .env) estan bloqueadas permanentemente. Las operaciones destructivas requieren confirmacion explicita antes de ejecutarse

La seguridad no es una seccion del README. Es lo que el agente hace cuando se despierta por primera vez

dos personas lo despliegan, obtienen dos bots diferentes

Esta es la parte que encuentro mas interesante. OBOL empieza como una hoja en blanco. Sin personalidad por defecto. Sin opiniones preconstruidas. Se moldea por quien le habla

Despliegalo para un trader de crypto y evoluciona en un asistente consciente del mercado que construye dashboards y rastrea portfolios. Despliegalo para un escritor y se convierte en un editor que conoce tu voz y construye workflows de publicacion. Misma base de codigo. Agentes completamente diferentes despues de un mes

El directorio evolution/ guarda copias archivadas de cada SOUL.md. Puedes literalmente leer la linea temporal de como tu bot paso de "hola, soy un nuevo asistente de IA" a algo con personalidad real. Cada evolucion es un par de commits git — antes y despues — para que puedas hacer diff de exactamente que cambio

Despues de seis meses tienes 12+ almas archivadas. Es como leer el diario de alguien

trabajo en segundo plano que no te bloquea

OBOL ejecuta tareas en segundo plano con check-ins de 30 segundos. Las operaciones pesadas — investigacion, despliegues, analisis — ocurren de forma asincrona mientras el bot se mantiene receptivo a tus mensajes. OpenClaw tiene sub-agents para esto, lo cual esta bien, pero OBOL lo integra en el bucle principal en lugar de requerir que tu lo arquitectures

cuanto cuesta realmente hacerlo funcionar?

| Servicio | Costo | |----------|-------| | VPS (DigitalOcean) | ~$6/mes | | Anthropic API | pay-as-you-go, o $0 en Claude Max | | Supabase | tier gratuito | | GitHub | gratuito | | Vercel | tier gratuito | | Embeddings | gratuito (local, CPU) |

Total: aproximadamente $6-9/mes dependiendo de como manejes la API. Si ya estas en Claude Max — el VPS es basicamente tu unico costo

La ventana de contexto deslizante, la recuperacion de memoria dirigida y el prompt caching trabajan juntos para mantener ese costo de API predecible. Los ciclos de evolucion corren en Sonnet a ~$0,02 cada uno. El router Haiku anade ~$0,0001 por mensaje. No hay ninguna decision de arquitectura en OBOL que no tenga una razon de costo detras

pruebalo

Es open source. Licencia MIT. github.com/jestersimpps/obol

npm install -g obol-ai
obol init # 6 inputs: telegram token, claude key, supabase url/keys, github token
obol start # that's it

Necesitas un VPS (lo endurece por ti), un token de bot de Telegram, una clave API de Claude, y un proyecto Supabase con pgvector. El asistente de inicializacion te guia a traves de todo

No estoy diciendo que OBOL reemplaza a OpenClaw para todos. OpenClaw es buena infraestructura para construir interfaces de chat impulsadas por IA. Pero yo queria algo que fuera mas alla — algo que no solo responde a instrucciones sino que desarrolla su propia comprension, corrige sus propios errores, y crece hasta convertirse en un agente genuinamente util sin supervision constante

Queria una IA que me recuerde. Asi que construi una

Stay Updated

Get notified about new posts on automation, productivity tips, indie hacking, and web3.

No spam, ever. Unsubscribe anytime.

Comments

Related Posts