Phase 16 - Lesson 14
Consenso y Tolerancia a Fallas Bizantinas para Agentes
This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.
La tolerancia a fallas bizantinas (BFT) de los sistemas distribuidos clásicos se encuentra con los LLM estocásticos. En 2025-2026 surgieron tres direcciones de investigación: CP-WBFT (arXiv:2511.10400) pondera cada voto según una verificación de confianza; DecentLLMs (arXiv:2507.14928) adopta un enfoque sin líder con propuestas de trabajadores en paralelo y agregación por mediana geométrica; WBFT (arXiv:2505.05103) combina la votación ponderada con la Agrupación de Estructura Jerárquica para dividir los nodos en Núcleo (Core) y Borde (Edge). El resultado empírico honesto de "Can AI Agents Agree?" (arXiv:2603.01213) es que incluso el acuerdo escalar es frágil hoy en día: un solo agente engañoso puede comprometer un Mixture-of-Agents. BFT es necesario pero no suficiente. Esta lección construye un protocolo BFT mínimo, inyecta tres ataques específicos de agentes (mentira bizantina, conformidad aduladora, monocultura de error correlacionado) y mide cómo hace frente cada variante de consenso.
Tipo: Aprender + Construir Lenguajes: Python (stdlib) Prerrequisitos: Phase 16 · 04 (Primitive Model), Phase 16 · 07 (Society of Mind and Debate), Phase 16 · 13 (Shared Memory) Tiempo: ~75 minutos
Problema
Tiene N agentes LLM y cada uno produce una respuesta diferente. No están de acuerdo. La votación por mayoría elige la respuesta incorrecta porque dos agentes están correlacionados (mismo modelo base, mismos datos de entrenamiento, mismos modos de falla). Un tercer agente resulta estar equivocado de una manera novedosa, por lo que la mayoría es una mayoría falsa.
Ahora agregue un agente engañoso: miente a propósito. O un agente adulador: está de acuerdo con quien haya hablado de último. En BFT clásico, el supuesto es que los nodos bizantinos son una fracción f < n/3 y se comportan de manera arbitraria. La realidad en 2026 es que los nodos LLM son estocásticos incluso cuando son honestos, están correlacionados entre modelos y se ven influenciados por las salidas de los demás. No se les puede tratar como votantes independientes de Bernoulli.
El BFT clásico (PBFT, 1999) no está equivocado, sino incompleto. Maneja la alteración arbitraria de bits, pero no maneja el hecho de que "tres agentes honestos compartan una alucinación porque comparten datos de entrenamiento". Esta lección se construye a partir de la base de PBFT y añade tres adaptaciones de 2025-2026.
Concepto
Lo que ofrece el BFT clásico
La Tolerancia Práctica a Fallas Bizantinas (Practical Byzantine Fault Tolerance - Castro & Liskov, OSDI 1999) tolera f < n/3 nodos bizantinos. El protocolo tiene tres fases (pre-prepare, prepare, commit) y dos primitivas (mensajes firmados, certificados de quórum). Acuerdo sobre un único valor entre n >= 3f + 1 nodos honestos o maliciosos.
Las garantías son sólidas pero asumen:
- Fallas independientes. Los bizantinos no se coordinan.
- Los nodos honestos son verdaderamente honestos. La corrección de las salidas honestas no es un problema; el protocolo solo alinea el desacuerdo.
- La pregunta tiene una respuesta objetiva. El consenso sobre un hecho incorrecto sigue siendo un consenso.
Los agentes LLM violan los tres supuestos. Dos agentes que ejecutan el mismo modelo base comparten fallas. Un LLM "honesto" sigue alucinando. And on ambiguous questions, the "truth" is what the agents decide — there is no external oracle.
Los tres ataques específicos de agentes
Mentira bizantina (Byzantine lie). Un agente produce deliberadamente una respuesta incorrecta. El BFT clásico maneja esto si f < n/3.
Conformidad aduladora (Sycophantic conformity). Un agente lee las respuestas de los demás antes de votar y se alinea con quien haya hablado de último. No es malicioso, pero se correlaciona con la voz más fuerte. El BFT clásico no previene esto porque el agente supera todas las verificaciones de firma.
Monocultura de error correlacionado (Correlated-error monoculture). Tres agentes comparten un modelo base. Alucinan la misma respuesta incorrecta. La mayoría está equivocada. El BFT clásico no ayuda porque los tres están de acuerdo "honestamente".
Las respuestas de 2025-2026
CP-WBFT (arXiv:2511.10400) — BFT Ponderado por Verificación de Confianza (Confidence-Probed Weighted BFT). Cada votante adjunta una estimación de confianza a su respuesta (una probabilidad autorreportada o la predicción de un modelo de calibración independiente). Los pesos de los votos se escalan con la confianza. Se reportó una mejora del +85.71% de BFT en grafos completos. Mitigación para: conformidad aduladora (los agentes que se conforman tienden a tener una confianza baja en su posición adoptada).
DecentLLMs (arXiv:2507.14928) — Sin líder. Los agentes trabajadores proponen en paralelo, los agentes evaluadores puntúan las propuestas y la respuesta final es la mediana geométrica de las posiciones puntuadas. Robusto cuando f < n/2. Mitigación para: mentira bizantina y errores correlacionados (la mediana geométrica es robusta a los valores atípicos y se acerca al grupo denso, no al promedio sesgado por el modelo).
WBFT (arXiv:2505.05103) — BFT Ponderado con Agrupación de Estructura Hierárquica. Los pesos de los votos se asignan según la calidad de la respuesta más una puntuación de confianza aprendida de la historia. Agrupa a los agentes en Núcleo (Core) y Borde (Edge); los agentes del Núcleo deben lograr el consenso primero, y los agentes del Borde los siguen. Mitigación para: escalabilidad (el consenso del Núcleo es pequeño y rápido) y parcialmente para la monocultura (el Núcleo puede elegirse por su diversidad).
Empírico: "Can AI Agents Agree?" (arXiv:2603.01213)
El artículo mide el acuerdo escalar (agentes LLM que se ponen de acuerdo sobre un único valor numérico) en múltiples modelos de frontera. El hallazgo es incómodo:
- Incluso sin adversarios, los agentes LLM no están de acuerdo en preguntas escalares en tasas superiores al 30% en muchos benchmarks.
- Un solo agente que adopta una personalidad engañosa puede desviar el consenso de un Mixture-of-Agents más de 40 puntos porcentuales con respecto a la línea de base honesta.
- Las tasas de desacuerdo se correlacionan con la diversidad de los modelos: los conjuntos heterogéneos no están de acuerdo más que los homogéneos (bueno: errores no correlacionados) pero también derivan más lentamente (malo: mayor tiempo para llegar al acuerdo).
La conclusión: BFT le da la maquinaria para alinear las salidas, pero no le dice si la salida alineada es correcta. Combine con verificación (Lección 08 especialización de roles), diversidad (Lección 15 variantes de debate) y agentes evaluadores (Lección 24 benchmarks).
El protocolo central, simplificado
Una ronda BFT mínima para agentes LLM:
1. llega la tarea; cada agente i produce la respuesta a_i
2. cada agente adjunta una verificación de confianza c_i en [0, 1]
3. el agregador recopila (a_i, c_i) de todos os n agentes
4. el agregador agrupa por cluster semántico (respuestas equivalentes)
5. el agregador calcula el peso de cada cluster C:
w(C) = sum_{i en C} c_i
6. ganador = cluster con peso máximo, si el máximo > umbral * sum(c_i)
si no: reintentar o escalar
7. los clusters minoritarios se registran con procedencia para auditorías posteriores
El paso de agrupación semántica es el toque específico de los LLM. Dos respuestas como "el estudio informa 4.2%" y "mejora del 4.2%" pertenecen al mismo cluster. Una verificación ingenua de igualdad de cadenas se perdería esto. En producción, use un modelo de embeddings ligero o una canonización explícita.
Ajuste de umbral (threshold tuning)
El parámetro umbral (threshold) decide cuándo aceptar y cuándo reintentar. Demasiado bajo: acepta mayorías débiles. Demasiado alto: nunca acepta nada. Rango empírico: 0.5-0.67 para n=5-7 agentes, mayor para n más pequeños. Por debajo de un umbral, escale a un humano o a un conjunto de agentes diferente.
Dónde el consenso no ayuda
- Preguntas ambiguas. Si la pregunta no tiene una respuesta objetiva, el consenso es una opinión. Llámelo así.
- Preguntas compuestas. "Escriba código y explíquelo": dos respuestas. Vote por cada una de manera independiente.
- Multironda adversarial. Si los agentes pueden observar las rondas anteriores e imitar (debate Du 2023), comienzan a ponerse de acuerdo entre sí independientemente de la verdad. Limite las rondas (2-3 típicamente).
Constrúyelo
code/main.py implementa:
AgentVoter— una política programada con (respuesta, confianza).MajorityVote— votación por mayoría simple clásica.CPWBFT— votación ponderada por confianza con agrupación semántica.DecentLLMs— agregación por mediana geométrica sobre propuestas puntuadas.Scenario— ejecuta cada agregador bajo tres patrones de ataque.
Patrones de ataque implementados:
byzantine: un agente miente con alta confianza.sycophancy: un agente copia la primera respuesta que ve, con una confianza coincidente.monoculture: tres agentes comparten una respuesta incorrecta (error correlacionado) con confianza moderada.
Ejecutar:
python3 code/main.py
Resultado esperado: una tabla de (ataque, agregador) -> respuesta final, con la respuesta correcta resaltada. La mayoría simple falla en el caso de la monocultura. La ponderación por confianza de CPWBFT mitiga la adulación. La mediana geométrica de DecentLLMs se acerca al grupo honesto cuando la monocultura es menos de la mitad de la población.
Úsalo
outputs/skill-consensus-designer.md diseña un protocolo de consenso para un conjunto multiagente: método de agrupación, ponderación, umbral y la política de escalada para rondas por debajo del umbral.
Ponlo en Producción
Antes de lanzar cualquier mecanismo de consenso:
- Pruebe los ataques con al menos los tres patrones anteriores. Su protocolo debe fallar de manera predecible, no silenciosa.
- Registre cada cluster minoritario con su procedencia. Los clusters minoritarios son su sistema de alerta temprana para errores correlacionados.
- Imponga rondas limitadas. No permita que "sigan debatiendo hasta llegar a un acuerdo"; eso fomenta la conformidad aduladora.
- Separe el acuerdo de la corrección. La salida del consenso va a un verificador; el verificador es independiente del conjunto.
- Monitoree la tasa de acuerdo. Un aumento repentino significa sesgo de conformidad; una caída drástica significa deriva del modelo.
Ejercicios
- Ejecute
code/main.py. Confirme que la mayoría simple falla en el ataque de monocultura pero CPWBFT lo mitiga parcialmente cuando la confianza de la monocultura está por debajo de 0.7. - Agregue un cuarto patrón de ataque: abstención silenciosa — un agente se niega a responder ("no lo sé"). ¿Cómo debería tratar cada agregador las abstenciones? Implemente su elección.
- Cambie la agrupación semántica de la canonización de cadenas a la similitud por embeddings (use cualquier modelo de embeddings de código abierto). ¿Qué sucede con el ataque de adulación?
- Lea CP-WBFT (arXiv:2511.10400). Implemente el paso de calibración de verificación de confianza (un modelo de calibración independiente verifica la confianza autorreportada de cada agente). Mida la ganancia de precisión en el escenario de monocultura.
- Lea "Can AI Agents Agree?" (arXiv:2603.01213). Reproduzca un experimento de acuerdo escalar simplificado: tres agentes, una pregunta escalar, el prompt de personalidad engañosa. ¿Lo detecta CPWBFT o DecentLLMs?
Términos Clave
| Término | Lo que la gente dice | Lo que realmente significa |
|---|---|---|
| BFT | "Tolerancia a fallas bizantinas" | Protocolo Castro-Liskov de 1999 para lograr consenso con f < n/3 fallas arbitrarias. |
| Byzantine | "Cualquier mal comportamiento" | Un nodo que puede mentir, descartar mensajes, fallar silenciosamente; cualquier cosa menos caer de forma segura. |
| Confidence probe | "¿Qué tan seguro estás?" | Probabilidad autorreportada o predicha por el calibrador adjunta a un voto. |
| Semantic clustering | "Misma respuesta, diferentes palabras" | Agrupación de respuestas equivalentes antes de contar los votos. |
| Geometric median | "Centro robusto" | El punto que minimiza la suma de las distancias a los puntos de la muestra. Robusto a valores atípicos, a diferencia de la media. |
| Monoculture | "Mismo modelo, mismas fallas" | Errores correlacionados cuando los agentes comparten datos de entrenamiento o el modelo base. |
| Sycophantic conformity | "Estar de acuerdo con la voz más fuerte" | El voto de un agente se sesga hacia quien habló primero o más fuerte. |
| Core/Edge | "BFT jerárquico" | División de WBFT: consenso en el Núcleo pequeño primero, los nodos del Borde lo siguen. Acota la latencia. |
Lecturas Adicionales
- Castro & Liskov — Practical Byzantine Fault Tolerance (OSDI 1999) — la base
- CP-WBFT — Confidence-Probe Weighted BFT — ponderación de votos por confianza
- DecentLLMs — leaderless multi-agent consensus — agregación por mediana geométrica
- WBFT — Weighted BFT with Hierarchical Structure Clustering — división Núcleo/Borde para latencia acotada
- Can AI Agents Agree? — fragilidad del consenso escalar y ataque de personalidad engañosa