AXON · Infraestructura cognitiva
US$30–40 mil millones invertidos en IA generativa. El 95% no produjo ningún impacto medible.
No fue por falta de datos. No fue por falta de talento. Y no fue porque los modelos no sirvan.
MIT Project NANDA
The GenAI Divide: State of AI in Business 2025
Más de 300 iniciativas analizadas · 52 entrevistas estructuradas · 153 directivos encuestados
- Observabilidadruntime
- Guardrailsruntime
- Ingeniería de promptsruntime
- Evaluacionesruntime
- Capas de moderaciónruntime
Todo eso es la misma decisión repetida: poner la confiabilidad en tiempo de ejecución. Y en tiempo de ejecución solo se puede reaccionar.
«Reactivo» tiene un significado exacto
El error ya ocurrió.
Un guardrail que detecta una fuga de datos regulados la detecta después de la fuga. En un banco, en un hospital o en una entidad pública, eso no es un bug que se corrige en el siguiente sprint: es un incidente reportable.
Ningún sistema crítico se construyó nunca así. No comprobamos en producción si un avión tiene bien los tipos de datos. Con IA empresarial decidimos que sí, y llevamos 40 mil millones de dólares comprobando qué pasa.
Las garantías no se prometen en ejecución. Se demuestran en compilación.
Qué es, exactamente
AXON compila hacia LLMs en vez de hacia CPUs.
Un lenguaje compilado, con runtime nativo en Rust, que trata la cognición como ciudadano de primera clase.
No es una librería de Python. No es un wrapper de DSL. Es un compilador formal.
Momento firma
El pipeline, tal como lo publica la documentación
sourceTu programa Axon
LexerTokens
ParserAST — aquí el bloque know deja de ser texto
Type Checkeraquí viven las garantíasTaint, certeza acotada, blame. Si algo viola, no se emite nada.
IR GeneratorRepresentación intermedia
BackendAnthropic · OpenAI · Gemini · Ollama
RuntimeRust
La misma fuente compila a cuatro backends. Cambias de modelo, no de código.
Las etapas que reconoces de cualquier compilador real, con una diferencia: el backend no emite instrucciones de máquina, emite hacia modelos. Y las garantías no viven en el runtime — viven en el Type Checker, antes de que el programa exista.
Acto 1 — lo que se decide en compilación
El programa que omite la protección no llega a existir.
Dos versiones del mismo flujo. En la primera, un dato externo alcanza la deliberación del agente directamente. En la segunda, atraviesa la protección. El compilador solo acepta una — y no hace falta que te lo contemos: acciónalo.
flow EpistemicGate(
tool_result: String
) -> LambdaEnvelope {
step AssignBlame {
reason { given: tool_result }
}
}En cualquier otro stack, esto es una vulnerabilidad que se descubre en producción. Aquí es un error de compilación.
La demostración, corriendo
De un archivo vacío a una relación de cobertura verificada.
El tipo declara que el dato está regulado. La protección declara qué cubre. Y el compilador comprueba que lo uno esté contenido en lo otro — no que exista una protección, sino que cubra este dato.
κ(PatientReading) ⊆ ClinicalGate.complianceLa cobertura de la protección contiene la clasificación del dato. Si no la contiene, no hay binario.
El ejemplo usa HIPAA porque es el vocabulario en que se escribió. En Colombia esa no es la norma que te aplica — es la referencia de rigor con la que está construido el motor, y el mismo mecanismo opera sobre Ley 1581 y habeas data.
Acto 2 — lo que solo se ve en el tiempo
No todo se puede decidir en compilación. Lo que no, tampoco se improvisa.
Que un dato sin sanitizar alcance al agente se decide leyendo el programa: es estático, y por eso no compila. Que alguien esté sondeando tu agente durante horas buscando el prompt que rompa la protección no se puede leer en el programa — solo aparece mirando el stream de eventos en el tiempo.
La diferencia no es que nosotros no tengamos capa temporal. Es que la nuestra está declarada en el lenguaje.
Umbral tipado, alcance, SLA y presupuesto de parches, en sintaxis que el compilador conoce. No es una librería que puedas olvidar importar ni un panel que alguien tiene que mirar.
immune KiviPromptCampaignSensor {
watch: [ChatAuditStore]
sensitivity: 0.95
baseline: learned
window: 200
scope: tenant
tau: 900s
decay: exponential
}
reflex QuarantineInjectionCampaign {
trigger: KiviPromptCampaignSensor
on_level: speculate
action: quarantine
scope: tenant
sla: 50ms
}
heal SynthesizePromptPatch {
source: KiviPromptCampaignSensor
on_level: speculate
mode: human_in_loop
scope: tenant
review_sla: 4h
max_patches: 3
}on_level: speculateEl mismo sistema de tipos que el razonamiento
El disparador de seguridad no usa un umbral numérico propio: usa el mismo lattice epistémico con el que el agente distingue saber, creer y dudar. Una moneda para todo el lenguaje, no una capa por funcionalidad.
max_patches: 3La auto-reparación tiene presupuesto
heal sintetiza un parche y el lenguaje limita cuántos puede sintetizar. Un parche es un recurso que se consume una vez — lógica lineal, y por eso es un número en la declaración y no una promesa.
mode: human_in_loopY nunca se aplica solo
Con SLA de revisión declarado. En el módulo de exfiltración el modo es audit_only: ahí el sistema no propone parche alguno, porque una fuga se investiga antes de tocarla.
El compilador decide la forma. Tú sigues respondiendo por el fondo.
Acto 3 — el techo de la certeza
La certeza es una cantidad medida, y el compilador le pone techo.
Para un modelo autoregresivo, la distribución sobre el siguiente token es un softmax con temperatura, y su entropía mide cuánta incertidumbre tiene el modelo en ese punto exacto.
H → 0El modelo tiene alta confianzaH → log |V|Incertidumbre máxima
Medida
La entropía es una cantidad que se calcula, no una opinión sobre el modelo.
Tipada
El lattice epistémico la convierte en un tipo: know, believe, speculate, doubt.
Acotada
Y el sistema de tipos le pone techo: la certeza nunca alcanza 1.0.
| Nivel | Certeza | Qué significa |
|---|---|---|
know | c = 1.0 | Observado directamente |
believe | c ≥ 0.85 | Derivado de fuentes propias confiables |
speculate | c ≥ 0.5 | Fuentes externas o web pública |
doubt | c < 0.5 | Evidencia débil o resultado parcial |
c ≤ 0.99Un sistema que no puede expresar certeza absoluta tampoco puede fingirla.
Solo lo que el sistema observó directamente puede llevar certeza total. Todo lo que viene de fuera es especulación — por definición y por compilador.
La alucinación deja de ser un riesgo que se mitiga y pasa a ser un estado que el sistema de tipos no admite.
Cuando el agente falla
La IA no adivina el error. Lo clasifica.
Cualquiera que haya puesto agentes en producción conoce la pregunta: ¿falló mi prompt, o falló su API? Hoy se responde leyendo logs y adivinando. Axon la tipa, por señales estructurales.
CT-2CALLER
El agente generó parámetros incorrectos.
CT-3SERVER
El servicio externo falló o devolvió un esquema roto.
NETWORKCONECTIVIDAD
Ni uno ni otro.
Y la consecuencia importa más que la clasificación: si hay blame, la certeza cae a cero y el dato no entra al agente. El sistema no sigue adelante con información degradada fingiendo que todo está bien.
Implementa blame calculus (Findler-Felleisen), teoría establecida de sistemas de contratos.
El conocimiento no es una instrucción
know {
flow EpistemicLattice() -> String { ... }
}Un prompt es texto: el modelo lo puede ignorar, malinterpretar, y un atacante lo puede sobrescribir. Un bloque know se compila al AST — es estructura, no sugerencia. Está ahí antes de que el modelo exista.
Todo el mercado escribe prompts. Nosotros compilamos conocimiento.
No te pedimos que creas que funciona. Construimos dos productos empresariales enteramente en él.
KAS y KIVI están escritos en Axon puro. No son casos de uso: son la prueba de que el lenguaje existe, compila y cumple su promesa.
Cualquiera puede decir que es experto en IA. Muy pocos pueden decir que escribieron el lenguaje. Y de esos, casi ninguno puede añadir que construyó dos productos en él.
Para igualar esa frase hay que construir un lenguaje.
Verificable ahora mismo
La documentación técnica es pública: las 12 primitivas cognitivas fundacionales, el sistema de tipos epistémico, la compilación multi-modelo. No hace falta agendar nada para comprobarlo.
Investigación
Axon nace de trabajo formal, con teoremas numerados y demostrados — entre ellos el que fija el techo de certeza del sistema de tipos.
Y publicado, con número de versión
AXON no es un repositorio privado que enseñamos en una llamada. El compilador se publica en crates.io, el registro de paquetes de Rust, y su repositorio es público.
axon-lang4.0.0más de 140 versiones publicadas desde abril
axon-emcp0.52.0servidor del protocolo ℰMCP
axon-lsp · axon-fmt0.3.3language server y formateador
Un formateador y un language server no se escriben para un lenguaje que no existe. Se escriben cuando hay gente escribiendo código en él todos los días.
Léelo antes de hablar con nosotros.
La documentación completa está abierta: la sintaxis, las primitivas, el sistema de tipos, la arquitectura del runtime.
Si algo de lo que dice esta página no se sostiene, lo vas a encontrar ahí — y preferimos que lo encuentres tú, ahora, y no en la tercera reunión.
Hablemos de tu arquitectura.
Documentación de AXON
12 primitivas, el sistema de tipos completo y la arquitectura del runtime. Es prueba, micro-conversión y filtro a la vez: quien la lee entera y vuelve es un lead que ningún formulario detecta igual de bien.
Un lenguaje no se compra. Se construye encima.
AXON · Conversación técnica, sin presentación comercial
HablemosHablemos de tu arquitectura