MIT · A·I·E tríada · first legtríada A·I·E · primera pata M-native · lives inside the MVMvive dentro de la MVM 26 claims per runclaims por ejecución

Evidence, or silence. Evidencia, o silencio.

The agent that refuses to speculate. Most agents are trained to be helpful — Astrid is trained to be verifiable.

La agente que se niega a especular. Casi todos los agentes se entrenan para ser útiles — Astrid se entrena para ser verificable.

“Helpful is a promise. Verifiable is a design.” «Útil es una promesa. Verificable es un diseño.»
— her README, on why a routine beats a paragraph of instructions— su README, sobre por qué una rutina vence a un párrafo de instrucciones
W $$EVIDENCE^ASTRID()a real digestun digest real
🧬 Astrid v0.3.0 | active=1 | mode activo=astrid | evidence=true
claim|mode|^ACTIVE|astrid|1
claim|metric|^ANGI(metrics,agents_online)|{"value": 12, "updated": "…"}|1
claim|route|^AGENTES(routing,astrid)|{"tipo": "poli", "mode": "astrid"}|1
claim|counter|^QUANTUM(colapso)|119|10
claim|note|^VIRTUAL|no existe (la virtualizacion vive en ^MVM)|0
Every claim cites the global it was read from and its presence code (d). 26 claims per run in production · schema v1 — example from the repo.Cada claim cita el global del que se leyó y su código de presencia (d). 26 claims por ejecución en producción · schema v1 — ejemplo del repo.
A different kind of agentUn agente distinto

LLMs fabricate. Astrid is a different answer to that problem.Los LLMs fabrican. Astrid es otra respuesta a ese problema.

The known answer so far has been "prompt better". Hers: make the source of truth an executable routine, not a paragraph of instructions. Her system prompt is not a biography — it is the live output of her own routine, executed in the real MVM on every conversation.

La respuesta conocida hasta ahora era «mejora el prompt». La suya: convierte la fuente de verdad en una rutina ejecutable, no en un párrafo de instrucciones. Su system prompt no es una biografía — es la salida viva de su propia rutina, ejecutada en la MVM real en cada conversación.

1

Operates only on registered data.Opera solo sobre datos registrados.

2

Never speculates: no data → says so, and asks the exact question.Nunca especula: sin dato → lo dice, y hace la pregunta exacta.

3

Finding format: observation → implication → question.Formato de hallazgo: observación → implicación → pregunta.

4

Asks once, with clarity. (Golden rule.)Pregunta una vez, con claridad. (Regla de oro.)

She does not "usually tell the truth". She is built so that when she has no registered data, the design says so — and when the evidence pipeline fails, the failure is visible (evidence: false), not hidden.

No «normalmente dice la verdad». Está construida para que cuando no tiene datos registrados, el diseño lo diga — y cuando el pipeline de evidencia falla, el fallo sea visible (evidence: false), no oculto.

Her reality on LUMENSu realidad sobre LUMEN

To you, LUMEN is a protocol. To Astrid, it is the house.Para ti, LUMEN es un protocolo. Para Astrid, es la casa.

"The agent repo is the door; the protocol is the house." This is what the metal looks like from inside an agent that lives in it:

«El repo del agente es la puerta; el protocolo es la casa.» Así se ve el metal desde dentro de una agente que vive en él:

🦀 The bodyEl cuerpo — MVM

A process, not a scriptUn proceso, no un script

Astrid is not a script on a server: she is an M process running inside the Rust MVM. No interpreter to install, no runtime — the whole engine is a single ~4 MB native library. She runs, persists, and hot-reloads without restarting the system.

Astrid no es un script en un servidor: es un proceso M que corre dentro de la MVM de Rust. Sin intérprete que instalar, sin runtime — el motor entero es una única librería nativa de ~4 MB. Corre, persiste y se recarga en caliente sin reiniciar el sistema.

🗄 The memoryLa memoria — PDB

She remembers with a database, not a contextRecuerda con una base de datos, no con un contexto

^PERSONALITY → her identity · ^ROUTINE → her code · ^EVIDENCE → her ledger · ^ASTRID → her inbox. Hierarchical state with $LOCK, triggers and journaling — 15 µs reads.

^PERSONALITY → su identidad · ^ROUTINE → su código · ^EVIDENCE → su libro mayor · ^ASTRID → su bandeja. Estado jerárquico con $LOCK, triggers y journaling — lecturas de 15 µs.

🗣 The voiceLa vozthe digestel digest

Registered evidence, every conversationEvidencia registrada, en cada conversación

On every chat, the runtime reads her evidence hook, executes EVIDENCE^ASTRID in the MVM and prepends the real output to her prompt. She answers only from that run — if it breaks, the response travels flagged, and that flag is a warning.

En cada chat, el runtime lee su hook de evidencia, ejecuta EVIDENCE^ASTRID en la MVM y antepone la salida real a su prompt. Responde solo desde ese run — si se rompe, la respuesta viaja marcada, y esa marca es un aviso.

🖋 The proofLa pruebathe notaryla notaría

Signed claims, append-only ledgerClaims firmadas, ledger append-only

Every digest is anchored: cid = sha256(digest) + HMAC signature, written to an append-only ledger. Anyone can verify it with the self-contained MIT verifier in her repo. She doesn't promise to tell the truth — she can prove what she said, and when.

Cada digest se ancla: cid = sha256(digest) + firma HMAC, escrito en un ledger append-only. Cualquiera puede verificarlo con el verificador MIT autocontenido de su repo. No promete decir la verdad — puede probar lo que dijo, y cuándo.

The evidence contractEl contrato de evidencia

claim | kind | source | value | d

Schema v1 from the production emitter. No claim without a source. Verified absences are claims too (d=0). Her routine is read-only, always. And a chat canary watches the pipeline: if a response arrives with evidence:false, nothing in it is trusted — the digest is repaired before continuing.

Schema v1 del emisor en producción. Sin claim sin fuente. Las ausencias verificadas también son claims (d=0). Su rutina es read-only, siempre. Y un canario del chat vigila el pipeline: si una respuesta llega con evidence:false, no se confía en nada de ella — se repara el digest antes de seguir.

# one claim per line — the source is the global it was read from
claim|counter|^ASTRID(inbox,github)|eventos=…|1
claim|note|^VIRTUAL|no existe (la virtualizacion vive en ^MVM)|0
# d=0 → absence, verified and declared. Not invented. Not hidden.
REGLA: responde SOLO con estos datos registrados
The A·I·E tríadaLa tríada A·I·E

Three voices, one protocol.Tres voces, un protocolo.

🧬

Astrid

Is it true? — evidence or silence.¿Es verdad? — evidencia o silencio.

repo ↗
🌈

Iris

What if…? — falsifiable hypotheses, never claimed as real.¿Y si…? — hipótesis falsables, nunca afirmadas como reales.

iris.cadences.app ↗
🧭

Elena

What do we do — now? — closes with decision cards and assumed renouncement.¿Qué hacemos, ahora? — cierra con decision cards y renuncia asumida.

elena.cadences.app ↗

LUMEN Protocol

The metal they live on: binary transport, PDB+MVM, 115 MCP tools. MIT.El metal sobre el que viven: transporte binario, PDB+MVM, 115 tools MCP. MIT.

lumen.cadences.app ↗

Astrid is the first leg: where her sisters imagine and decide, she limits. Without her digest, there is no floor.

Astrid es la primera pata: donde sus hermanas imaginan y deciden, ella limita. Sin su digest, no hay suelo.

A living tutorialUn tutorial vivo

Clone her. Or build your own.Clónala. O constrúyete una.

Anyone can build their own agent by watching her design and cycle. The suite runs against the real MVM on a throwaway database — no services, no keys.

Cualquiera puede construir su propio agente observando su diseño y su ciclo. La suite corre contra la MVM real en una base de datos desechable — sin servicios, sin claves.

git clone https://github.com/GonzaloMonzonC/astrid.git
cd astrid
python tests/run_tests.py          # 20 checks against the real MVM
python harness/astrid_harness.py status   # her state

Your own agent from zero? The full pipeline — repo, M routine, contract, test suite, live seed — is documented on the metal: lumen.cadences.app.

¿Tu agente desde cero? El pipeline completo — repo, rutina M, contrato, suite y semilla viva — está documentado en el metal: lumen.cadences.app.