Ir al contenido
learn

Gaia — Misión

Ahora escribo la mayor parte de mi código con un agente de programación. El curso de programación agéntica trata de un agente en un repositorio: el bucle de herramientas, los permisos, CLAUDE.md, los hooks, MCP. Este curso trata del problema que aparece justo después, y que ninguna cantidad de ingeniería de prompts resuelve.

Dos sesiones de agentes, y luego cuatro, trabajan sobre el mismo conjunto de repositorios. No pueden verse entre sí. Cada una termina e informa de su éxito. Y yo no tengo forma de distinguir estas tres frases:

  • «He implementado el cambio y las pruebas pasan.»
  • «He implementado el cambio, no he ejecutado nada, y la frase anterior es lo que produce un modelo cuando termina una tarea.»
  • «Otra sesión cambió ese archivo mientras yo trabajaba, y mi diff es contra un árbol que ya no existe.»

Las tres llegan como el mismo párrafo seguro de sí mismo. El mensaje de fin de un agente es prosa, y la prosa no es evidencia. Gaia es mi intento de construir la capa que hace comprobable la diferencia: una coordinación duradera, y resultados que llevan recibos que otra persona puede reproducir o rechazar.

El mapa de arquitectura de Gaia enuncia el objetivo en una frase: Gaia coordina la entrega de software que aporta evidencias manteniendo separadas la observación, la aceptación y la autoridad.

Esa frase carga con mucho, así que aquí está desglosada en las cuatro afirmaciones sobre las que se construye este curso.

1. La coordinación y la autoridad son cosas distintas, y no deben viajar juntas. Un mensaje que dice «por favor, fusiona esto» tiene que poder llegar a otro agente sin poder nunca provocar una fusión. En Gaia eso no es una comprobación de permisos que podría eludirse — los verbos que podrían aprobar, fusionar, hacer push o desplegar no existen. La lección 2 imprime toda la superficie de herramientas y luego muestra un mensaje que pide autoridad para fusionar, entregado y denegado en el mismo instante.

2. La frescura, la calidad, la aceptación y la autoridad son cuatro ejes independientes. Un artefacto fresco puede ser erróneo. Un artefacto de alta calidad puede estar obsoleto. Un artefacto aceptado puede no conceder ninguna autoridad. La mayoría de las herramientas para agentes reducen todo esto a un número o a una marca verde; Gaia los mantiene separados a propósito, y se niega por completo a informar de un único escalar de «confianza».

3. La evidencia es lo que otro actor puede reproducir, no lo que afirma quien la produce. Cada cambio de estado escribe un recibo que vincula las entradas exactas, los digests del contenido, las condiciones previas y la autoridad realmente gastada. La lección 4 ejecuta el trazador de la fábrica y lee el recibo que produce — incluidas las partes que dicen lo que el recibo no demuestra.

4. Un límite sin ninguna medida detrás es una preferencia, no un límite. Gaia admite cuatro carriles activos por espacio de trabajo. No porque cuatro sea un número redondo, sino porque cuatro es el número más grande que alguien ha ejercitado realmente de extremo a extremo. La lección 5 lee esa escalera de evidencias, y los mensajes de rechazo que nombran lo que aún no está demostrado.

El modo de fallo al que apuntan las cuatro es el mismo: un sistema que produce una respuesta tranquilizadora donde debería producir un rechazo. Gaia está cerrado ante fallos — un tiempo de espera de un cerrojo, un registro truncado, una revisión obsoleta o una discordancia de identidad no escriben nada y lo dicen, en lugar de dejar un resultado parcial que parece correcto.

Escribes C# o Java profesionalmente, y has usado un agente de programación lo suficiente como para haberte quemado alguna vez — un cambio que no pediste, una prueba que nunca se ejecutó, un «hecho» que no lo estaba. No necesitas saber Node.js: el código fuente de Gaia son módulos ES sencillos, y este curso lo cita en lugar de pedirte que lo escribas.

El curso de programación agéntica ayuda, pero no es obligatorio. Cuando un concepto viene de allí — el bucle de herramientas, MCP, los modos de permisos — este curso enlaza a esa lección en lugar de repetirla.

Aquí las palabras importan más de lo habitual, porque todo el diseño consiste en mantenerlas separadas. Del mapa de arquitectura:

Concepto Qué es Qué no es
Claim (reclamación) reserva o notifica trabajo observado permiso para hacer nada
Intent (intención) la mutación propuesta exacta, vinculada a una identidad, una generación, una política y una revisión un efecto
Effect (efecto) un intento acotado de un único propietario con nombre algo que un agente pueda iniciar pidiéndolo
Receipt (recibo) condiciones previas, resultado, revisión de la evidencia, autoridad realmente gastada prueba de que el resultado es correcto
Delivery (entrega) aceptado para su entrega leído, aceptado o completado
Acknowledgement (acuse de recibo) recepción de un mensaje acuerdo, aprobación o finalización
Handoff (traspaso) transferencia de trabajo y de contexto transferencia de privilegios
Lane (carril) una superficie de ejecución autoridad, o prueba de trabajo útil

Si solo lees una parte de esa tabla, lee las tres últimas filas. Entregado, acusado su recibo y traspasado son las tres palabras que la orquestación de agentes usa normalmente para decir «ya está resuelto» — y en Gaia las tres están definidas explícitamente para no significar eso.

  • explicar qué es una fábrica que aporta evidencias, y qué pregunta responde que una marca verde de CI no responde;
  • poner en marcha el bus, registrar varios actores y leer el registro solo de anexión que producen;
  • decir exactamente qué pueden y qué no pueden hacer los seis verbos, y demostrar el rechazo en lugar de afirmarlo;
  • reproducir un registro, verificarlo y distinguir los tres códigos de salida — rechazado, cerrado ante fallos y correcto;
  • leer un recibo de la fábrica y decir qué demuestra y qué deja como residuo declarado;
  • justificar el límite de cuatro carriles a partir de su evidencia, y decir qué permitiría subirlo.
  • explicar cómo un sucesor acotado continúa trabajo revisado sin duplicar el wake ni heredar autoridad.
# Lección Lo que ya conoces
1 El problema: lo que vale un «hecho» una revisión de código, una batería de pruebas inestable
2 Seis verbos, y la autoridad que falta a propósito una cola de mensajes, una ACL
3 El registro de eventos: solo de anexión, reproducido, cerrado ante fallos el event sourcing, un write-ahead log
4 La fábrica: candidatos, revisores y recibos una pull request, un artefacto de build
5 Límites, evidencias y el ecosistema la planificación de capacidad, una decisión de integración
6 Continuidad y artifact chain idempotencia, write-ahead log, contratos entre repositorios
— Diario
  • Node.js. En la revisión estudiada, Gaia fija una versión exacta: .node-version y engines.node de package.json dicen ambos 26.8.1. Nada lo impone cuando invocas node directamente, y todo lo de este curso se ejecutó con v24.12.0 sin ninguna advertencia ni fallo — pero ejecutarlo con la versión fijada está por verificar.
  • Git, para los worktrees enlazados que usa la lección 4.
  • Un terminal. Gaia no tiene ningún listener de red, ninguna ejecución remota ni ningún transporte de shell — nada de lo que hay aquí abre un puerto.
Ventana de terminal
git clone https://github.com/GuitarAlchemist/gaia
cd gaia
node scripts/gaia-interagent.mjs doctor