De AIML en 2015 a multi-agente en 2026: el arco de 10 años de la IA conversacional.
Escribí árboles de reglas XML para Turkcell BiP Messenger en 2015. Hoy construyo runtimes multi-agente tipados para GOGOGO LLC en 2026. El camino entre ambos no es una línea recta — es una serie de compromisos forzados con el modelo de turno, y cada uno produjo un patrón que sobrevivió a la era siguiente.

Atakan Özalan
Cofundador & lead de ingeniería, GOGOGO LLC

En 2015 escribí AIML — el dialecto XML para reglas de chatbot — para Turkcell BiP Messenger. Cientos de bloques <category><pattern>. Ningún transformer iba a escribir una frase por ti entonces. El estado del arte era un árbol de coincidencias por regex con un párrafo de fallback. Lo lancé dos años antes de que el mundo empezara a usar 'chatbot' en serio.
En 2026 construyo el runtime multi-agente en GOGOGO LLC. Orchestrator tipado, agentes especializados, llamadas a herramientas como runtime, trazas reproducibles, eval harnesses gateando cada deploy. Lo que tienes delante es irreconocible para mi yo de 2015 — excepto en las partes que de verdad importaban entonces y siguen importando ahora.
2015 — AIML, o: reglas con muy buen gusto
El trabajo de AIML era leer el mensaje del usuario, decidir qué <pattern> coincidía y emitir una respuesta <template>. Pasabas los días escribiendo variantes:
<category>
<pattern>CUAL ES MI SALDO</pattern>
<template>Tu saldo actual es <get name="balance"/>.</template>
</category>
<category>
<pattern>CUANTO * DINERO *</pattern>
<template><srai>CUAL ES MI SALDO</srai></template>
</category>Era una máquina de estados con disfraz. No podías generar la respuesta correcta; sólo podías reconocer si la intención del usuario coincidía con algo que ya habías autorizado. El modelo no comprendía — pero el sistema, en conjunto, a menudo se sentía inteligente, porque la gente que escribía las reglas pensaba muy cuidadosamente cómo formulaban realmente las preguntas los clientes en turco.
Lo que 2015 te obligó a aprender (y que sigues necesitando en 2026)
- Rellena un payload estructurado antes de generar prosa. AIML te obligaba a extraer saldo / teléfono / customer-id ANTES de componer la respuesta. Ese patrón es exactamente function-calling tipado en 2026.
- Autorar es ingeniería. Escribías reglas; corrías un corpus de test; medías cobertura de intent-match. Hacíamos A/B sobre redirecciones
<srai>. Hoy se llama eval-driven prompting. - Los fallbacks son ciudadanos de primera clase. Todo sistema AIML tenía un camino 'no entendí' con un traspaso elegante a un humano. La palabra de 2026 es 'human-in-the-loop'.
2017–2020 — clasificadores de intención y Rasa: la era del aprendizaje supervisado
La siguiente fase no fue un salto, fue una sustitución. El matcher de <pattern> se convirtió en un pequeño clasificador neuronal (BiLSTM, luego DistilBERT). Etiquetabas 200 utterances por intención, entrenabas el modelo para elegirla y conservabas el motor de reglas para el slot-filling y la composición de respuesta. Rasa, Dialogflow, Watson — misma arquitectura, distinto proveedor.
Se sentía revolucionario entonces. Mirándolo hoy: era la misma arquitectura AIML con otro clasificador. El modelo aprendía a leer; aún no escribía.
2022 — los LLM instruction-tuned se comen la capa intermedia
Entonces apareció GPT-3.5 y ChatGPT hizo que todos vieran que el modelo ahora podía escribir — no sólo clasificar. El clasificador de intención colapsó en un prompt. La plantilla de respuesta colapsó en una generación. La mitad de la industria del chatbot tiró su stack Rasa y lo reemplazó con un único system prompt.
Parte fue correcto. Mucho fue sobrecorrección. Reemplazamos capas intermedias tipadas, testeables y debuggeables por un autocomplete opaco. La primera versión del orchestrator de GOGOGO fue el mismo error — un modelo, un prompt largo, llamadas a herramientas. Funcionaba en demos y colapsaba en producción. (Lo contamos en las tres reescrituras que vinieron después.)
2024–2026 — multi-agente: recuperar la estructura
Multi-agente no es una idea nueva. Es la factorización AIML con una dimensión más: en vez de un modelo bifurcándose por reglas, tienes varios modelos, cada uno con un trabajo estrecho, hablándose por traspasos tipados. El orchestrator es pequeño y con forma de regla. Los especialistas son generativos. El runtime — herramientas, trazas, evals — es lo que mantiene todo junto.
// 2015 — AIML
<category><pattern>CUAL ES MI SALDO</pattern>
<template>Tu saldo es <get name="balance"/>.</template>
</category>
// 2026 — traspaso multi-agente tipado
type HandOff =
| { to: "billing.balance"; input: { customerId: string } }
| { to: "billing.invoice"; input: { invoiceId: string } };
const next = orchestrator.decide(state);
const result = await runtime.run(next);Los dos snippets hacen el mismo trabajo. Están escritos con once años de diferencia. La regla AIML nombra una función y enlaza una variable; el traspaso tipado nombra una función y enlaza una variable. Que uno corra por un árbol de regex y el otro por el tool-calling head de un transformer es — sorprendentemente — la diferencia menos interesante entre ellos.
Lo que realmente enseña el arco de 10 años
- La estructura del problema no ha cambiado. Reconocer intención → extraer slots → llamar a una herramienta → componer respuesta. AIML lo factorizó así en 1995. Multi-agente lo factoriza así en 2026.
- La generación debe ser el ÚLTIMO paso. Cada vez que dejamos al modelo generar primero y estructurar después, la fiabilidad colapsó. El modelo debe estructurar primero, luego generar contra la estructura.
- Las herramientas son el runtime. Esta es la lección más profunda. En AIML las 'herramientas' eran
<set>y<get>y hooks fuera-de-banda. En 2026 son llamadas a función tipadas. El modelo es decorativo; las herramientas son el trabajo. - Replay no es negociable. Todo sistema que sobrevivió tres años de convulsión de modelos tenía una traza que podías reproducir. Los que no, fueron reescritos cada vez que cambió el modelo.
“Once años entre escribir AIML y escribir traspasos de agente tipados. Los frameworks cambian cada dos años. La factorización no. Apuesta por la factorización.”
Lo que apuesto para 2026–2036
Multi-agente seguirá comiéndose la capa intermedia como los LLM la comieron en 2022 — pero la capa de abajo (contratos tipados, trazas, evals) es la parte que debes poseer directamente. Los frameworks vienen y van. El orchestrator que escribo hoy no será el orchestrator que escriba en 2030. Pero la regla de que los traspasos son valores tipados, no prosa, sobrevivirá a ambos.
Si quieres el runtime de agentes que enviamos en Goddo, GoPeople, GoVista y GoTrack, o comparar notas de diseño de agentes con un café — estoy en atakanozalan.com, o como ezagor desde los días en que escribía aquellas primeras reglas XML.