El

Un lenguaje para programar negocios con agentes

Una solución de GrailAOS™ es un conjunto de documentos de texto versionados que declaran qué hace un negocio, y un la verifica entera antes de que algo corra. Esta página lo cuenta en conceptos, sin la sintaxis: el motor es propietario.

Qué es una solución

Un negocio, escrito en documentos

Un chatbot se configura; un negocio se programa. En GrailAOS, el negocio se declara en documentos de texto: cada uno dice qué es una pieza y a qué otras nombra, y el conjunto de esos documentos es la solución.

Escribirla, compilarla, probarla, publicarla, operarla y corregirla es un ciclo pensado para que lo recorra un modelo: el compilador le devuelve lo que encontró, y el modelo corrige con eso.

Documentos de texto versionados

Corre hoy
  • Una solución de GrailAOS es un conjunto de documentos de texto versionados: el manifiesto, agentes, procesos, herramientas, bases de conocimiento, plantillas de respuesta, tareas programadas, casos de prueba, colecciones de datos y funciones que el dueño prende y apaga.

Las piezas

Las piezas y cómo se nombran entre sí

Cada pieza declara una parte del negocio y nombra a las otras que necesita; el compilador revisa esos nombres.

Qué declara cada pieza

  • El manifiesto de la solución

    Corre hoy

    Nombra la pieza por la que entra cada conversación.

  • Agentes

    Corre hoy

    Conversan por los canales, usan herramientas y conocimiento, y delegan en otros agentes.

  • Procesos

    Corre hoy

    Encadenan pasos, bifurcaciones y decisiones; los que corren solos suman listas, ramas en paralelo, otros procesos y aprobaciones.

  • Herramientas

    Corre hoy

    Las incluidas, las integraciones HTTP, las de servidores y las del código de arranque del .

    Límite Varias herramientas incluidas dependen de la configuración o del código de arranque del deployment.

  • Bases de conocimiento

    Corre hoy

    Los agentes las consultan por significado y por texto.

    Límite La búsqueda antes de responder es opcional en cada agente y viene apagada.

    Límite Se activa por configuración; revisa después de entregar, sin corregir la respuesta.

  • Plantillas de respuesta

    Corre hoy

    Las envían los procesos en sus pasos de mensaje o plantilla.

  • Tareas programadas

    Corre hoy

    Corren procesos, campañas, reportes e ingesta de datos en su horario.

  • Casos de prueba

    Corre hoy

    Viven dentro de los agentes y de los procesos que prueban.

  • Colecciones de datos

    Corre hoy

    Los datos propios de cada , con la forma declarada en la solución.

    Límite Las herramientas de colecciones las habilita el código de arranque del deployment.

  • Funciones que el dueño prende y apaga

    Corre hoy

    Lo que el dueño prende o apaga junto, sin publicar una versión.

Cómo se relacionan las piezasCada flecha une una pieza con lo que nombra o usa, y cada relación lleva su sello.
  • El manifiesto

    • nombraLa pieza por la que entra cada conversación Corre hoy
  • Un agente

    • usaHerramientas Corre hoy
    • consultaBases de conocimiento Corre hoy
    • delega enOtro agente de la misma solución Corre hoy
    • conversa porLos canales, sin cambiar su definición Corre hoy
    • lleva dentroSus casos de prueba Corre hoy
    • llama aOtra solución, como si fuera una herramienta Disponible a pedido
  • Un proceso

    • pasa porAgentes, en sus pasos de agente Corre hoy
    • envíaPlantillas de respuesta, en sus pasos de mensaje Corre hoy
    • lleva dentroSus casos de prueba Corre hoy
    • decidePor qué rama sigue, con una decisión estructurada Corre hoy
  • Una tarea programada

    • correUn proceso, sin una conversación de por medio Corre hoy
    • sincronizaBases de conocimiento Corre hoy
  • Una función del dueño

    • prende o apagaAgentes, tareas y herramientas Corre hoy
  • Una herramienta

    • lee y escribeLas colecciones de datos del tenant Corre hoy
    • llama por HTTP aOtros sistemas, sin llegar a la red privada salvo que quien opera el deployment lo habilite Corre hoy

Por qué texto

Texto declarativo y versionado, por diseño

Que una solución sea texto no es un detalle de formato: es el primero de los principios de diseño de GrailAOS.

Versionado quiere decir que cada documento declara la versión de la especificación con la que fue escrito, y que la solución entera se publica por versiones.

Principios de diseño

Corre hoy
  • Unos pocos principios guían el diseño: texto primero, autocontenido, testeable por defecto, componible, observable e independiente del canal, con formas predecibles que toleran salidas parcialmente correctas; ningún cambio puede hacerle más difícil a un modelo escribir bien una solución.

Bibliotecas versionadas

Corre hoy
  • Lo que se repite entre soluciones se importa de una biblioteca con su versión fija, en vez de copiarse: nada se enlaza por coincidencia de nombre y una versión publicada no cambia nunca.

    Límite Se importan al compilar, en la línea de comandos.

Compatible hacia atrás

Parcial
  • Cada documento declara la versión de la especificación con la que fue escrito: el acepta lo escrito para versiones anteriores de la misma versión mayor y no carga lo escrito para una más nueva que él.

    Límite Una versión menor puede cambiar comportamientos, y entre versiones mayores no hay migración automática.

El compilador

Seis etapas antes de que algo corra

El compilador recibe los documentos y devuelve un reporte con todos los errores de la solución, en una sola pasada.

Las seis etapas, en una sola pasada

Corre hoy
  1. LecturaQué pieza es cada documento.
  2. VersiónLa versión de cada documento.
  3. EsquemaLa forma de cada documento.
  4. SemánticaLas reglas de cada pieza.
  5. Enlace entre documentosQue cada nombre apunte a una pieza.
  6. GrafoLos caminos de cada proceso.

Un reporte con todos los errores que encontró

Medido en los repositorios

  • 182Verificaciones semánticas catalogadasFuente: Catálogo de validaciones semánticas de la especificación de GrailAOS. Medido el .
  • 171Códigos de diagnóstico del compiladorFuente: Registro congelado de diagnósticos del compilador, en el runtime de GrailAOS. Medido el .
  • 102Herramientas incluidas en el runtimeFuente: Universo de herramientas incluidas que reconoce el compilador de GrailAOS. Medido el .
  • v4.437Versión de la especificación que implementa el runtimeFuente: Repositorio del runtime de GrailAOS, rama principal. Medido el .

Seis etapas, en una pasada

Corre hoy
  • Antes de que algo corra, el compilador verifica la solución entera en seis etapas, de la lectura de cada documento al grafo de cada proceso, y reporta en una sola pasada todos los errores; es la misma compilación en la línea de comandos, por y al arrancar el runtime.

Una función pura y determinística

Corre hoy
  • La compilación es una función pura y determinística: no toca el disco ni la red, no llama a ningún modelo y, con la misma entrada, produce el mismo reporte, con los diagnósticos en un orden estable.

Códigos estables

Parcial
  • Los códigos de diagnóstico son estables: se agregan, no se renombran ni se reutilizan, para que lo que se automatiza hoy siga valiendo mañana.

    Límite La prueba que los protege cubre una parte de los códigos.

Superficie honesta

Parcial
  • Si algo es válido pero el runtime no lo ejecuta, el compilador lo avisa en vez de aceptarlo en silencio.

    Límite El aviso cubre una lista cerrada de casos.

Diagnósticos

La anatomía de un diagnóstico

Un diagnóstico de GrailAOS está escrito para que lo lea un modelo: dice qué pasó, por qué, dónde exactamente y cómo arreglarlo, y la sugerencia de arreglo trae su nivel de confianza.

Diagnóstico
  • Error
  • Etapa: enlace entre documentos
  • Solución: Mi Negocio
Corre hoy
Qué pasóEl problema, en una frase.
El tercer paso del proceso «Reservar turno» nombra al agente «Agente de reserva», que no existe en la solución.
Por quéLa regla que no se cumple.
Cada paso de agente tiene que nombrar un agente declarado en la solución, y Mi Negocio no declara ninguno con ese nombre.
DóndeArchivo, línea, columna y ubicación dentro del documento.
En el documento del proceso «Reservar turno», línea 14, columna 12: el agente del tercer paso.
Cómo arreglarloLa sugerencia de arreglo, escrita para un modelo.
Cambiá el nombre por «Agente de reservas», el agente declarado con el nombre más parecido.
ConfianzaLa confianza del arreglo: alta, media o baja.
Alta.
Un ejemplo sobre Mi Negocio, contado en castellano llano: cada diagnóstico real trae estas mismas partes.

Arreglos

Arreglos que se verifican

Un diagnóstico no termina en un aviso. Algunos errores frecuentes tienen un arreglo automático y determinístico; para el resto, el modelo corrige con lo que le devuelve el compilador, que vuelve a verificar la solución.

El ciclo de un arreglo

Parcial
  1. Corre hoyEl reporteEl compilador devuelve juntos todos los errores que encontró.
  2. ParcialArreglo automáticoAlgunos errores frecuentes tienen un arreglo automático y determinístico.
  3. ParcialEl modelo corrigePara el resto, el modelo corrige con lo que le devolvió el compilador.

Corre hoyOtra vezLo que devuelve el compilador vuelve al modelo, que corrige con eso.

Automáticos y asistidos

Parcial
  • Algunos errores frecuentes tienen un arreglo automático y determinístico; para el resto, el modelo corrige con lo que le devuelve el compilador, que vuelve a verificar la solución.

    Límite El ciclo asistido corre sólo en la línea de comandos.

Pruebas

Pruebas dentro de la solución

Los casos de prueba viven dentro de los agentes y de los procesos. Todo lo externo se simula, y el reporte distingue lo validado de lo simulado.

El camino de un caso de prueba

Corre hoy
  1. Corre hoyEl casoDentro de un agente o un proceso.
  2. Corre hoyEl juezLo que no se compara al pie de la letra.
  3. Corre hoyEl reporteLo validado, aparte de lo simulado.

Dentro de la solución

Corre hoy
  • Los casos de prueba viven dentro de los agentes y procesos de la solución y corren con el mismo motor que atiende los canales, también en conversaciones de varios turnos; una conversación que se derivó a una persona puede convertirse en un caso.

    Límite Un proceso que corre solo no se prueba entero en un caso: se prueban sus agentes.

Modo real y modo simulado

Corre hoy
  • En las pruebas, todo lo externo se simula, y un caso corre con el modelo real o en modo simulado: el reporte distingue lo que validó al agente de lo que sólo se simuló.

    Límite Por defecto, un caso de agente corre en modo simulado.

Sin falso verde, con una puerta

Corre hoy
  • Las pruebas están pensadas para no dar un falso verde, y hay una puerta de pruebas al activar una solución y al promover una versión nueva.

    Límite En la puerta, por defecto los casos que fallan avisan; bloquear se declara en la solución.

Un juez con tope de gasto

Corre hoy
  • Lo que no se puede comparar al pie de la letra lo evalúa un modelo juez, con votación configurable y un tope de gasto por corrida.

Preguntas

Preguntas frecuentes

¿Qué se puede simular en las pruebas?

Todo lo externo. Un caso de agente también puede correr en modo simulado, el de por defecto, que no prueba al modelo: el reporte lo separa de lo validado.

¿El runtime usa MCP?

Como cliente, con las herramientas de cada servidor fijadas en la solución. El MCP público de este sitio es otra cosa: sirve el contenido del sitio.

  • Corre hoyMCP como cliente

    Un agente usa las herramientas de un servidor MCP externo, con el runtime como cliente: la cuenta lo conecta una vez, con una clave o con , sus herramientas quedan fijadas en la solución y la conexión pasa por la misma guarda de red.

    Límite Sólo las herramientas, no los recursos ni los ; si el servidor cambia una, por defecto la llamada sigue con un aviso; la conexión es de la cuenta.

Lenguaje En GrailAOS, la manera de declarar una solución en documentos de texto: sus agentes, procesos, herramientas, conocimiento, pruebas y demás piezas.Compilador En GrailAOS, la pieza que revisa la solución entera antes de que algo corra y dice de cada error qué pasó, dónde y cómo arreglarlo.MCP Model Context Protocol: un protocolo abierto para que un modelo use las herramientas y los datos que ofrece otro servidor.Deployment Una instalación concreta de un sistema, con su configuración y sus datos.Tenant y multi-tenant Un tenant es una cuenta, por ejemplo un negocio, con sus datos aparte; multi-tenant quiere decir que varios comparten la misma instalación sin ver lo de los otros.Runtime El motor que hace correr un programa ya escrito. En GrailAOS, el que opera la solución ya compilada.API Una interfaz para que otro sistema use un servicio con pedidos y respuestas, sin pasar por una pantalla.OAuth Un estándar para que una aplicación acceda a otra en nombre de alguien sin conocer su contraseña.Prompt La consigna escrita que se le da a un modelo.