⬡ DOS RUNTIMES REALES — MVM WASM (esta pestaña) + MVM nativa (servidor)

Prueba la máquina de ECOS
en tu navegador

No es una simulación: es el runtime M (MVM Rust → WASM) ejecutando código M con memoria de globals.
El Acto 3 verifica el mismo programa contra el runtime nativo de producción y compara hashes.

🖥️
Esta pestaña es un nodo LUMEN. Tu navegador corre la MVM WASM con su propia memoria ^GLOBAL en RAM — un nodo del ecosistema, no un cliente. Hiberna un agente con ⬇ y restáuralo en otra pestaña: se mueve sin saberlo.
Ejecuta M en la MVM de tu navegador
Cada ejecución deja una huella en la memoria ^GLOBAL. Rebobina el estado con el deslizador: la memoria es el lienzo, no el código.

Código M — rutina del agente

⚡ 1 · María: la consulta (te pregunta + 2 médicos LLM) 🧑 2 · El mostrador del registro 🏪 3 · La taberna 📮 4 · El tablón del pueblo 🍞 5 · El panadero (4 niveles) ✉️ 6 · El cartero 🕰️ 7 · El relojero 🌱 8 · El estanque (organismos + LLM)
historial: 0 0 snapshots

Salida + memoria ^GLOBAL resultante

Cargando la MVM (~310 KB gzip, una sola vez)…
Varios agentes comparten una sola memoria
A y B no se hablan por HTTP: se escriben en la misma base (^MAILBOX, ^JOB, ^HB…). El reloj ^TIME avanza con cada pulsación — la «espera» se modela como cola con timestamps, de forma determinista.
📨 1 · El trato 📋 2 · El presupuesto ⏳ 3 · El pedido con plazo 💓 4 · El vigilante de la caldera 🎭 5 · La cocina compartida 🗳 6 · La elección del alcalde 📒 7 · La contabilidad del molino 💬 8 · La terapia de grupo ⚡ 9 · El consultor del pueblo (LLM :free) 🏥 10 · Urgencias del pueblo
Pulsa ▶ A (escribe en el buzón) → ▶ B (procesa) → ▶ A (ve la respuesta).

AAgente A

(Aún no ha actuado)

BAgente B

(Aún no ha actuado)

CAgente C

(Aún no ha actuado)
⚡ detectando dispositivo…
^MAILBOX y el estado compartido se renderizan aquí tras cada pulsación.
El mismo programa M en dos runtimes: tu navegador y el servidor de producción
Ejecuta aquí (WASM), pulsa verificar y el runtime nativo (Rust, vm-api.cadences.app) ejecutará el MISMO programa con la MISMA memoria inicial. Si los hashes coinciden, el determinismo cross-runtime es real.

Código M — el mismo para ambos mundos

Verificación cross-runtime

Pulsa «Ejecutar en ambos mundos». El navegador ejecuta con su WASM; el servidor (vm-api.cadences.app) ejecuta el mismo programa con la misma memoria inicial. Hashes SHA-256 del estado final.
Lo que ya puedes construir encima — cada caso de uso es una demo que se ejecuta en los Actos 1-3
Estas ideas vienen del equipo (Kimi, Porto, Zalo, Smith). Ninguna es humo: cada una se apoya en una capacidad real que acabas de verificar. Pulsa el botón para cargar la demo.

Auditoría Auditoría regulatoria en tiempo real "no confíes, reproduce"

Un banco pone una MVM junto a su core: cada transacción se registra en el journal append-only y cualquier discrepancia dispara alerta. El determinismo garantiza que el auditor ejecute el MISMO código con el MISMO input y obtenga el MISMO hash. No hay "confía en nosotros": hay "reproduce tú mismo".

Consenso Consenso sin blockchain: elección de líder frag. SO distribuido §4

Cinco nodos deciden quién controla un recurso: cada uno vota con su heartbeat en la memoria compartida; el de mayor id entre los vivos gana; si un nodo cae, los demás lo detectan y re-ejecutan la elección. Sin Raft, sin Paxos, sin gas fees: estado compartido que todos leen.

Tiempo Tiempo sin NTP: el reloj lógico frag. SO distribuido §6

En un sistema distribuido, el tiempo no es un reloj físico que pueda fallar o divergir: es un contador monotónico ^TIME que avanza con cada evento. Cada acción queda indexada por su tick, verificable por cualquier nodo que replique la misma secuencia.

Migración Migración de agente vivo: el proceso como paquete frag. SO distribuido §3

Un agente en la MVM tiene su estado completo serializable. Para migrarlo: hibernar → empaquetar (snapshot + rutinas + identidad) → transmitir → restaurar → reanudar. El agente no sabe que se movió: "es un sueño sin despertar". Pruébalo: pulsa ⬇ Hibernar en el Acto 2 y ⬆ Restaurar aquí (o en otra pestaña).

Memoria El agente con memoria persistente "hola, ayer estábamos hablando de ECOS…"

Un agente no es una ventana de chat que se cierra: es un proceso M persistente. Su conversación vive en ^MAILBOX, su identidad en ^PERSONALITY, su lógica en ^ROUTINE. Mata al agente con ☠ y relánzalo: la memoria sobrevive al proceso, porque la memoria es del sistema, no del agente.

Negociación Economía de agentes autónomos frag. usos §2.3

Un agente lee ^OFERTA, evalúa, contraoferta escribiendo en ^CONTRAPROPUESTA, y firma con S ^CONTRATO(hash)=firma. La firma no es una API REST: es un SET que ambos agentes pueden auditar. Petición-respuesta con correlación por ID, sin servidor central.

Terapia Terapia de sistemas: el diálogo interno externalizado frag. usos §3.3

Tres agentes —el crítico, el protector, el niño— con personalidad en ^PERSONALITY. El humano escribe en ^DIARIO; los agentes leen, emiten sus interpretaciones, y un orquestador sintetiza. No es un chatbot: es una simulación de diálogo interno donde las partes de la psique son procesos M con memoria persistente.

LLM device La IA como device de la MVM: submit/poll sin bloquear el intérprete frag. WebGPU §1

La MVM encola un job en ^LLM("job", id); un dispatcher (host JS) lo resuelve con el proveedor disponible — OpenRouter :free (cloud, coste $0) por defecto, cadencia-node (local, privacidad total, API OpenAI-compatible en 127.0.0.1:57948, Candle GGUF) y WebLLM (WebGPU, todo en tu máquina) como alternativas — y escribe el resultado en ^LLM("result", id). El agente hace poll sin bloquear: la inferencia es un device asíncrono, no una llamada síncrona.

Nodo Tu navegador es un nodo de producción frag. WebGPU §1

Esta pestaña carga la MVM WASM (~310 KB gzip) con su propia memoria en RAM: es un nodo LUMEN completo, no un cliente — con LLM nativo ($DEVICE("llm:call")) resuelto por el dispatcher (cloud :free por defecto, cadencia local o WebLLM/WebGPU como alternativas). Con PDB sobre IndexedDB y DDP-over-WebRTC sería un ciudadano de la red: tu perfil en ^PERFIL, tus mensajes de ^MAILBOX a ^MAILBOX, sin servidor central.

Límites honestos de esta demo: el Acto 1 y 2 corren en la MVM WASM de la pestaña (memoria en RAM, persiste entre ejecuciones hasta que la vacíes o cierres la pestaña — exportable/importable como snapshot con ⬇ Hibernar/⬆ Restaurar). El LLM ya es un device nativo de la MVM ($DEVICE("llm:call")), resuelto por el host JS con OpenRouter :free (coste $0) o con cadencia-node/WebLLM si prefieres privacidad local. El Acto 3 envía el código y la memoria inicial al runtime nativo vía /vm/verify (sandbox stateless: sin BD, sin LLM, gas acotado — no toca datos reales). La persistencia completa (PDB sobre SQLite), device HTTP y coordinación entre procesos (DDP, red) requieren ECOS nativo: exactamente lo mismo, con disco y red.

¿Quieres el sistema completo? Ver el repo en GitHub → · Volver a ecos.cadenceslab.com