La arquitectura multi-agente que realmente escala
Desglosamos la arquitectura exacta que usamos para un sistema de resolución de disputas que procesa más de 15,000 casos.
2 de marzo de 2026
La mayoría de las arquitecturas multi-agente que ves en línea son juguetes.
Funcionan para demos. Procesan unas pocas peticiones. Se ven impresionantes en posts de blog. Y luego se desmoronan en el momento en que intentas correrlas a escala.
Lo sé porque he construido ambos tipos.
Hoy voy a desglosar una arquitectura que realmente funciona en producción: un sistema multi-agente de resolución de disputas que procesa más de 15,000 casos anualmente con una tasa de resolución solo con IA del 78%. Los casos que antes tomaban 23 días ahora se resuelven en 12 horas en promedio.
Esto no es teoría. Este es el sistema exacto corriendo en TrustaNova. Te mostraré la arquitectura, el diseño de los agentes, la capa de conocimiento y—lo más importante—los patrones que lo hicieron escalar.
El problema
TrustaNova necesitaba automatizar la resolución de disputas B2B2C. Piensa en: un cliente disputa un cargo, o dos empresas discrepan sobre los términos de un contrato, o una entrega de servicio no cumple las expectativas.
La resolución de disputas tradicional es lenta y costosa:
- •Mediadores humanos revisando documentos
- •Comunicación de ida y vuelta durante semanas
- •Complejidad legal que requiere expertise
- •Alto costo por caso que hace que las disputas pequeñas no sean rentables
El objetivo: construir un sistema de IA que pudiera manejar la mayoría de los casos de forma autónoma, escalando a humanos solo cuando fuera necesario.
Las restricciones
- •Tiempos de respuesta sub-segundo para mediación en tiempo real
- •Manejar miles de casos concurrentes
- •Mantener defendibilidad legal (las decisiones deben ser explicables)
- •Integrarse con los sistemas existentes de CRM, facturación y comunicación
- •Soportar múltiples idiomas y jurisdicciones
Este no era un proyecto de chatbot. Esta era infraestructura de IA de nivel empresarial.
Por qué la mayoría de las arquitecturas multi-agente fallan a escala
Antes de mostrarte lo que construimos, déjame explicar por qué la mayoría de las arquitecturas multi-agente no escalan.
Problema #1
Cuellos de botella secuenciales
La mayoría de los frameworks de agentes usan ejecución secuencial por defecto. El Agente A termina, luego el Agente B arranca. Esto crea una cadena de latencia—a escala, esto te mata.
Problema #2
Explosión de contexto
Pasar todo—el historial completo de la conversación, todos los documentos, los expedientes completos del caso—explota los costos de tokens. Hemos visto sistemas quemando más de $50 por caso complejo.
Problema #3
Sin manejo de estado
Las disputas se desarrollan a lo largo de horas o días. La mayoría de las arquitecturas de demo no tienen manejo de estado real—pierden el contexto o lo reconstruyen de forma costosa cada vez.
Problema #4
Cascadas de error
El mal output de un agente se convierte en el mal input de otro. Sin validación y recuperación adecuadas, una sola alucinación corrompe un caso entero.
La arquitectura que funciona
Esto fue lo que realmente construimos:
┌─────────────────────────────────────────────────────────────────────┐
│ ORCHESTRATION LAYER │
│ (Agno) │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Case Router Agent │ │
│ │ Classifies case type, routes to appropriate flow │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────┼─────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Simple Dispute │ │ Contract Dispute │ │ Complex/Escalate │ │
│ │ Flow │ │ Flow │ │ Flow │ │
│ └──────────────────┘ └──────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────┐
│ AGENT LAYER │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Intake │ │ Evidence │ │ Analysis │ │ Resolution │ │
│ │ Agent │ │ Agent │ │ Agent │ │ Agent │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │Communication│ │ Compliance │ │ Escalation │ │
│ │ Agent │ │ Agent │ │ Agent │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ KNOWLEDGE LAYER │
│ (GraphRAG) │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ Neo4j Knowledge Graph │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │Contracts│───▶│ Parties │───▶│Precedents│───▶│ Rules │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ Vector Store (Embeddings) │ │
│ │ Document chunks, case histories, communication logs │ │
│ └───────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────┐
│ INTEGRATION LAYER │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ CRM │ │ Billing │ │ Email │ │ Workflow│ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────────────┘Capa 1: Orquestación (Agno)
Elegimos Agno para orquestación porque el rendimiento era innegociable.
El Case Router Agent es el punto de entrada. Cada disputa llega primero a este agente. Su trabajo es simple pero crítico: clasificar el tipo de caso y rutearlo al flujo apropiado.
# Simplified Case Router Logic
class CaseRouterAgent:
def route(self, case: Case) -> Flow:
# Fast classification using lightweight model
case_type = self.classify(case)
if case_type == "simple" and case.amount < threshold:
return SimpleDisputeFlow()
elif case_type == "contract":
return ContractDisputeFlow()
else:
return ComplexFlow() # Human escalation pathPor qué esto importa: el 60% de los casos son "simples"—situaciones claras donde la evidencia obviamente favorece a una de las partes. Al rutear estos a un flujo ágil, mantenemos el camino rápido, rápido.
El patrón de ejecución paralela
Aquí está el insight clave que hizo esto escalar: los agentes no tienen que ser secuenciales.
En nuestra arquitectura, una vez que un caso es ruteado, múltiples agentes pueden trabajar en paralelo. Los agentes de Intake, Evidence y Compliance corren todos simultáneamente. Están recolectando diferente información que el Analysis Agent necesitará. Al paralelizar esto, reducimos la latencia en un 60%.
Capa 2: El diseño de los agentes
Cada agente tiene una responsabilidad específica y estrecha. Esto es crucial. Los agentes que intentan hacer demasiado se vuelven poco confiables.
Intake Agent
Trabajo: Extraer información estructurada de la presentación inicial de la disputa.
Input: texto en bruto, documentos subidos, datos de formulario. Output: objeto de caso estructurado con partes, tipo de reclamación, monto, cronograma y un score de confianza.
Evidence Agent
Trabajo: Analizar la evidencia presentada y evaluar relevancia/autenticidad.
Usa el Knowledge Graph intensivamente. Contrasta los contratos presentados contra nuestra base de datos de contratos, identifica precedentes relevantes y marca inconsistencias.
Analysis Agent
Trabajo: Aplicar reglas y precedentes para determinar el resultado probable.
Aquí es donde brilla GraphRAG. El agente atraviesa relaciones: especificaciones del tipo de contrato, decisiones de casos similares, reglas jurisdiccionales y precedentes rectores.
Resolution Agent
Trabajo: Generar la resolución y las comunicaciones requeridas.
Solo se dispara si la confianza del Analysis Agent supera nuestro umbral (actualmente 0.85). Por debajo de eso, rutea a revisión humana.
Compliance Agent
Trabajo: Asegurar que todas las decisiones cumplan los requisitos legales y regulatorios.
Corre sobre cada resolución antes de que se finalice. Innegociable para la defendibilidad legal.
Escalation Agent
Trabajo: Identificar los casos que requieren intervención humana.
Vigila señales: baja confianza, alto riesgo, patrones inusuales o peticiones explícitas de las partes. No todo debería automatizarse.
Capa 3: La capa de conocimiento (GraphRAG)
Aquí es donde fallan la mayoría de los sistemas multi-agente. Usan RAG ingenuo—búsqueda por similitud vectorial sobre documentos. Eso funciona para Q&A simple. No funciona para razonamiento complejo.
La resolución de disputas requiere razonamiento relacional: ¿Qué dice este contrato sobre resolución de disputas? ¿Cuál es la relación entre estas dos partes? ¿Qué precedentes aplican a esta jurisdicción y tipo de contrato? Estas preguntas requieren atravesar relaciones, no solo encontrar texto similar.
Cuando el Analysis Agent necesita tomar una decisión, atraviesa:
- Caso → Contrato → Cláusulas: ¿Qué dice realmente el contrato vigente?
- Caso → Jurisdicción → Reglas: ¿Qué reglas aplican aquí?
- Cláusula → Precedentes: ¿Cómo hemos interpretado esta cláusula antes?
- Casos similares → Resoluciones: ¿Qué hemos decidido en situaciones comparables?
Este razonamiento multi-salto es lo que hace que el sistema sea realmente inteligente, no solo coincidencia de patrones.
Los patrones que lo hicieron escalar
Más allá de la arquitectura, patrones específicos fueron esenciales:
Patrón #1
Ejecución controlada por confianza
Cada agente produce un score de confianza. Cada transición verifica la confianza antes de continuar. Los resultados de baja confianza van a revisión humana en lugar de convertirse en basura de alta confianza aguas abajo.
elif analysis.confidence >= REVIEW_THRESHOLD: queue_for_review()
else: escalate_to_human(reason="low_confidence")
Patrón #2
Manejo de caso con estado
Cada caso tiene una máquina de estado: INTAKE → EVIDENCE_GATHERING → ANALYSIS → RESOLUTION → CLOSED (con ramas a REVIEW_NEEDED → HUMAN_REVIEW → ESCALATED). Las transiciones de estado son atómicas y se registran. Los casos nunca se pierden en el limbo.
Patrón #3
Contexto fragmentado
Nunca pasamos documentos completos a los agentes. Todo se fragmenta, indexa y recupera on-demand. Un agente que procesa un contrato de 50 páginas ve las 3-5 secciones relevantes, no 50 páginas. Esto mantiene los costos de tokens manejables.
Patrón #4
Ruteo multi-modelo
No toda tarea necesita GPT-4. Ruteamos al modelo correcto para cada tarea:
- • Clasificación de casos: modelo pequeño fine-tuneado (rápido, barato)
- • Extracción de documentos: Claude 3.5 Sonnet (bueno con output estructurado)
- • Razonamiento complejo: GPT-4 (cuando necesitamos el mejor)
- • Comunicación: Claude (bueno con el tono)
Esto reduce los costos en un 70% comparado con usar GPT-4 para todo.
Patrón #5
Puntos de control con humano en el loop
Ciertos puntos de decisión siempre involucran humanos: casos por encima de $50K, primer caso con una parte nueva, casos con señales de complejidad legal, o cualquier caso donde las partes pidan revisión humana. El sistema maneja el volumen. Los humanos manejan los casos límite.
Los resultados
Después de 12 meses en producción:
| Métrica | Antes | Después |
|---|---|---|
| Tiempo promedio de resolución | 23 días | 12 horas |
| Tasa de resolución solo con IA | 0% | 78% |
| Costo por caso | $340 | $45 |
| Satisfacción de las partes | 3.2/5 | 4.4/5 |
| Casos procesados anualmente | 3,000 | 15,000 |
El sistema maneja 5x el volumen al 13% del costo con scores de satisfacción más altos.
Lo que haría diferente
Mirando hacia atrás después de un año:
- Empezar con el Knowledge Graph más temprano. Agregamos GraphRAG a mitad del proyecto. Debería haber sido el día uno. La estructura del gráfico da forma a todo lo demás.
- Ruteo de modelos más agresivo. Fuimos conservadores al principio, usando modelos caros en todas partes. Experimentar antes habría ahorrado costos significativos.
- Mejor observabilidad desde el inicio. Agregamos monitoreo comprehensivo después del lanzamiento. Debería haberse construido desde el principio. Debuggear sistemas multi-agente sin buena observabilidad es doloroso.
Tus takeaways
Si estás construyendo un sistema multi-agente que necesita escalar:
- Diseña para el paralelismo. No asumas ejecución secuencial. Encuentra agentes que puedan correr simultáneamente.
- Usa GraphRAG para razonamiento relacional. La búsqueda vectorial por sí sola no es suficiente para dominios complejos.
- Controla todo con confianza. No dejes que la basura se cascada. Baja confianza = revisión humana.
- Fragmenta tu contexto. No pases documentos completos. Recupera lo que es relevante.
- Rutea al modelo correcto. No toda tarea necesita tu modelo más caro.
- Construye puntos de control humanos. Algunas decisiones no deberían estar totalmente automatizadas.
- Invierte en manejo de estado. Los workflows de larga duración necesitan máquinas de estado proper.
La arquitectura importa. Pero más que cualquier patrón individual, lo que importa es pensar en producción desde el día uno. No "¿cómo hago que esto funcione?" sino "¿cómo hago que esto funcione a 15,000 casos por año?"
Esa mentalidad da forma a todo.
¿Construyendo sistemas multi-agente y quieres ayuda para llegar a producción?
HablemosEsto es exactamente lo que hacemos.
Artículos relacionados
Newsletter
Deep-dives de arquitectura y patrones de producción—cada martes.
Únete a más de 2,500 ingenieros y líderes que reciben insights prácticos de implementación de IA.
Suscríbete a AI That Ships