La ingeniería de grafos (Graph Engineering) es un enfoque que, en lugar de limitarse a mejorar la calidad de las respuestas de un único modelo de AI, diseña en qué orden y bajo qué condiciones se ejecutan diversas tareas y herramientas. Al representar un trabajo complejo mediante nodos y relaciones de conexión, es posible gestionar por separado las entradas y salidas de cada etapa, las causas de los fallos, las rutas de reintento y los puntos de aprobación humana.
Sin embargo, esta expresión todavía no es un término estándar único consensuado por todo el sector. Es más preciso entenderla como un concepto práctico que abarca el diseño de flujos de trabajo de agentes, la orquestación basada en grafos y el control multiagente.
Contexto de la aparición de los grafos en la ingeniería de AI
Los aspectos de interés en el diseño de aplicaciones de AI se han ampliado de la siguiente manera. Más que etapas oficiales de desarrollo que todas las organizaciones atraviesan de la misma forma, se trata de capas de diseño que se complementan entre sí.
| Capa | Pregunta clave | Principales objetos de diseño |
|---|---|---|
| Ingeniería de prompts | ¿Cómo dar instrucciones al modelo? | Instrucciones, ejemplos, formato de salida |
| Ingeniería de contexto | ¿Con qué información se debe conformar lo necesario para tomar decisiones? | Resultados de búsqueda, memoria, resultados de herramientas, reglas del sistema |
| Ingeniería de bucles | ¿Cómo repetir la planificación, la ejecución, la verificación y la corrección? | Condiciones de repetición, criterios de evaluación, condiciones de finalización |
| Ingeniería de grafos | ¿Mediante qué rutas conectar diversas tareas y entidades decisoras? | Nodos, transiciones, estado, bifurcaciones, paralelización, aprobación |
Los prompts y el contexto siguen siendo necesarios dentro del grafo. Los bucles también pueden representarse mediante aristas cíclicas del grafo. Por tanto, la ingeniería de grafos no es una tecnología que descarte las técnicas anteriores, sino que se aproxima más a una perspectiva de diseño de nivel superior que las sitúa dentro de una estructura de ejecución.
Componentes de la ingeniería de grafos
Nodos
Un nodo (Node) es una unidad de trabajo con una única responsabilidad claramente definida. Además de una llamada a un LLM, también puede ser un nodo el código convencional para consultar una base de datos, llamar a una API de búsqueda, validar un formato, efectuar un cálculo o esperar la aprobación de un usuario.
Un buen nodo tiene entradas y salidas claras y puede probarse de manera independiente. Para facilitar la depuración, conviene delimitar la responsabilidad con nombres como recopilar materiales recientes del sector especificado, eliminar fuentes duplicadas o comprobar las pruebas de cada afirmación, en lugar de usar un nombre tan amplio como investigación de mercado.
Aristas
Una arista (Edge) es una transición de un nodo al siguiente. Hay aristas fijas que siempre conducen a la misma etapa siguiente, aristas condicionales que inspeccionan el estado para seleccionar una ruta y aristas de bifurcación que inician varias tareas al mismo tiempo.
Estado
El estado (State) son los datos compartidos mientras se ejecuta el grafo. Puede incluir la solicitud del usuario, resultados intermedios, fuentes de búsqueda, códigos de error, resultados de aprobación y número de repeticiones.
El estado no es un simple historial de conversación. Es necesario definir mediante esquemas y reglas qué campos son obligatorios, quién puede modificarlos, cómo se combinan los resultados paralelos y cuándo se elimina la información sensible.
Condiciones
Una condición (Condition) es una regla para seleccionar la siguiente ruta. Una condición determinista como ¿hay al menos tres fuentes? puede evaluarse mediante código. En cambio, una condición que requiera un juicio semántico, como ¿las pruebas respaldan suficientemente la conclusión?, puede necesitar una evaluación del modelo o una revisión humana.
Por qué es más fácil de controlar que un solo agente
Si se confían a un solo agente la investigación, el análisis, la redacción y la verificación, resulta difícil distinguir la causa cuando el resultado es incorrecto. Esto se debe a que en un mismo registro de ejecución quedan mezclados los errores de planificación, las omisiones en la búsqueda, los fallos en las llamadas a herramientas y la generación sin fundamento.
Al descomponer el trabajo en un grafo, se pueden gestionar los siguientes aspectos etapa por etapa.
- Limitar las herramientas permitidas y los permisos de acceso a datos de cada nodo.
- Guardar los resultados intermedios y evaluarlos de forma independiente.
- Volver a ejecutar únicamente el nodo fallido para reducir costes y tiempo.
- Obtener aprobación humana justo antes de una acción externa importante.
- Rastrear la ruta de ejecución, la latencia, el uso de tokens y los errores.
Sin embargo, dividir el proceso en muchos nodos no aumenta automáticamente la fiabilidad. Si la transferencia de estado es imprecisa o los criterios de evaluación son ambiguos, los errores pueden amplificarse a lo largo de varias etapas.
Patrones representativos de uso de grafos
Patrón de enrutador
Un enrutador selecciona distintas rutas según el tipo de solicitud o su nivel de riesgo. Por ejemplo, puede enviar una consulta sobre reembolsos al nodo de búsqueda de políticas y una incidencia técnica al nodo de diagnóstico.
Si los criterios de enrutamiento son simples, como palabras clave o el estado de una cuenta, es adecuado usar código. Si es necesario interpretar el contexto, puede utilizarse una clasificación del modelo, pero se requiere una salvaguarda que envíe el caso a una ruta predeterminada o a revisión humana cuando la confianza sea baja.
Patrón de ejecución paralela
Consiste en realizar simultáneamente tareas que no dependen unas de otras y combinarlas después en un nodo de agregación. Un ejemplo representativo es ejecutar en paralelo investigaciones sobre el mercado, los clientes y la competencia.
La paralelización puede reducir la latencia, pero aumenta el número de llamadas y el coste instantáneo. Si los resultados modifican al mismo tiempo el mismo campo de estado, también es necesario definir reglas de resolución de conflictos y el orden de fusión.
Patrón generador-evaluador
El generador crea un borrador y el evaluador decide, según los criterios, si se aprueba, se corrige o se vuelve a redactar. Como el resultado de la evaluación vuelve al generador, se forma un bucle dentro del grafo.
Si el evaluador también es un LLM, puede emitir un juicio incorrecto. Los aspectos que lo permitan deben complementarse con verificaciones deterministas, como la comprobación del esquema, la ejecución de pruebas o la verificación de las URL citadas, y es necesario establecer un número máximo de repeticiones para evitar bucles infinitos.
Patrón de aprobación del usuario
Antes de acciones difíciles de revertir o que impliquen una gran responsabilidad, como modificar sistemas externos, enviar mensajes, efectuar pagos o realizar despliegues, se detiene la ejecución y se espera el juicio de una persona. En la pantalla de aprobación, es más seguro mostrar no solo el resultado final, sino también la acción que se ejecutará, los datos utilizados, el impacto previsto y el método para revertirla.
Patrón de supervisor y especialistas
Un nodo supervisor descompone el trabajo, lo asigna a nodos especializados en búsqueda, análisis, redacción u otras funciones y después reúne los resultados. La separación de funciones es útil, pero aumentar el número de agentes no debe convertirse en un objetivo en sí mismo. Para procedimientos fijos, un flujo de trabajo explícito puede ser más predecible.
Principios para dividir las funciones de AI, el código y las personas
| Naturaleza de la tarea | Medio prioritario | Ejemplos |
|---|---|---|
| Reglas claras que deben producir siempre el mismo resultado | Código convencional | Recuento de elementos, comparación de fechas, validación de esquemas JSON |
| Juicios que tratan el significado y la ambigüedad del lenguaje natural | Modelo de AI | Clasificación de intenciones, resumen, redacción de borradores, evaluación cualitativa |
| Decisiones que requieren responsabilidad, ética o juicio de alto riesgo | Personas | Aprobación de comunicaciones externas, autorización de excepciones, aprobación de medidas de alto riesgo |
Usar un LLM cuando las reglas son claras incrementa innecesariamente el coste, la latencia y la falta de determinismo. Por el contrario, fijar todos los juicios mediante reglas de código dificulta el tratamiento de entradas reales con formas de expresión variadas. Un buen grafo combina las ventajas de los tres medios y valida las entradas y salidas en cada límite.