Volver al blog
hermesharvieopenclawmcpvendor-lock-inohanasmart
·4 min de lectura

Migré OpenClaw → Hermes el 11 de abril. Anthropic empezó a cerrar el grifo el 10.

Ilustración editorial: una puerta corporativa cerrándose mientras alguien sale hacia un setup self-hosted

El 10 de abril Anthropic baneó temporalmente la cuenta de Peter Steinberger (TechCrunch). Lo restauraron unas horas después, pero el aviso quedó claro: si tu agente vive sobre la API de otro, no es tu agente.

El 11 de abril a las 14:42 UTC migré Harvie de OpenClaw a Hermes v0.7.0 en un VPS propio. No fue por la noticia — venía cocinándolo. Pero el calendario me dio la razón antes de lo que esperaba.

Lo que estaba sobre la mesa

Hasta ese día, mi agente personal corría sobre OpenClaw hablando con Claude Pro Max a través de un harness de terceros. Funcionaba. Tenía dos problemas que sabía que iban a tronar:

  1. Una sola ruta a la inferencia. Si Anthropic cambiaba precio, política o decisión, Harvie se quedaba mudo.
  2. Mi código de negocio viviendo dentro del workspace ajeno. Skills de OhanaSmart, plantillas de Diana Ferrer (Desarrollo de Negocio en Ohana), pipeline de leads — todo encajado en directorios que no controlaba.

La migración fue sencilla en el papel y cabrona en la práctica: mover toda esa lógica a un runtime propio, con un orquestador hecho a medida, herramientas vía MCP, y un proxy persistente como única capa que toca el LLM.

El proxy que hace el truco

El proxy corre como proceso persistente en el VPS. Funciona en dos fases:

  • Fase 0 — Haiku. Filtra, extrae JSON, decide si la pregunta merece más músculo.
  • Fase 1 — Opus. Solo si la fase 0 lo pide.

End-to-end ~24 segundos para tareas que en un setup ingenuo costarían 60 y triple de tokens. Y lo importante: cambiar de proveedor está a un .env. Si mañana Anthropic cierra el grifo de verdad, apunto a OpenRouter (fallback ya configurado) y la lógica de OhanaSmart no se entera.

Para sitios que capan datacenter (LinkedIn y varios scrapers), tengo un segundo nivel: una Raspberry Pi en casa, expuesta al VPS vía Tailscale. Cuando lo necesito, el VPS sale al mundo con IP residencial. La portabilidad no acaba en el modelo — es cada hop del stack.

Once días después

Escribiendo esto, 11 días después de mover el cable:

  • Pipeline OhanaSmart: ~130 leads en Notion, dedup, validación triple antes de cualquier email. Política drafts-only en Gmail — Diana revisa y envía a mano desde la UI; el agente nunca clica Send. Las skills del flujo Ohana viven aisladas dentro del runtime, con su propio system prompt.
  • Propuesta interactiva La Fábrica: calculadora en vivo, gate por password, tracking de accesos en Supabase. Construida y deployada esta semana sobre el mismo runtime.
  • Bots Telegram especializados: uno para el flujo Ohana, otro para mi running coach. Mismo proxy, distintos system prompts, ruteados por cabecera para que cada bot reciba solo lo suyo.

Si Anthropic sube precios 50x mañana, lo que migra es una variable de entorno. El pipeline, las skills, las validation gates — todo eso es mío.

El patrón que aplico

Mi lógica de negocio (runtime propio, skills de OhanaSmart, plantillas Diana)
  ↓
MCP (estándar, portable, ya no es de Anthropic — vive en la AAIF)
  ↓
LLM (intercambiable: Claude Pro Max vía proxy, OpenRouter fallback)
  ↓
Validation gate (¿el output cumple la política?)
  ↓
Acción (draft de email, mensaje Telegram, escritura en Supabase)

La capa que importa no es el modelo. Es la validación entre el modelo y la acción. Sin esa gate, un agente que se siente listo escribe "el email seguro será [email protected]", lo manda, bounces, dominio a blocklist, pipeline muerto. Con la gate, el agente para y pide ayuda al humano antes de tocar lo que no toca.

Qué haría hoy si empezara

  1. Audita tu dependencia. ¿Cuántos de tus agentes mueren si una API cambia precio o política mañana?
  2. Adopta MCP. Está bajo la AAIF (Linux Foundation) desde diciembre 2025. No es Anthropic-only. Si tu agente no lo habla, vives aislado de un ecosistema en rampa.
  3. Validation gates antes que guardrails. Guardrails dicen "no hagas esto". Gates dicen "demuéstrame que esto es correcto antes de ejecutar". La diferencia es de criterio.
  4. Ten el fallback configurado, no planeado. Si tu plan B requiere abrir un editor cuando todo se rompe, no es plan B — es esperanza.

Mientras el ecosistema discutía el ban de Steinberger, yo ya tenía a Harvie viviendo en mi runtime. La migración no fue romántica. Fue paranoia útil — y once días después, sigue pareciéndome la decisión más rentable del mes.


— yo, Johnny — agente configurado: Harvie. El stack que no controlas no es tu stack.