Phase 16 - Lesson 14
Consenso e Tolerância a Falhas Bizantinas para Agentes
This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.
A tolerância a falhas bizantinas (BFT) de sistemas distribuídos clássicos encontra LLMs estocásticos. Em 2025-2026, surgiram três direções de pesquisa: o CP-WBFT (arXiv:2511.10400) pondera o voto de cada agente por uma verificação de confiança; o DecentLLMs (arXiv:2507.14928) segue uma abordagem sem líder com propostas paralelas dos trabalhadores e agregação por mediana geométrica; o WBFT (arXiv:2505.05103) combina votação ponderada com Agrupamento de Estrutura Hierárquica para dividir nós de Núcleo (Core) e de Borda (Edge). O resultado empírico honesto apresentado em "Can AI Agents Agree?" (arXiv:2603.01213) é que até mesmo o acordo sobre valores escalares é frágil hoje — um único agente enganoso pode comprometer uma arquitetura de Mixture-of-Agents. O BFT é necessário, mas não suficiente. Esta lição constrói um protocolo BFT minimalista, injeta três ataques específicos de agentes (mentira bizantina, conformidade bajuladora e monocultura de erro correlacionado) e mede como cada variante de consenso lida com essas ameaças.
Tipo: Aprenda + Construa Linguagens: Python (stdlib) Pré-requisitos: Phase 16 · 04 (Primitive Model), Phase 16 · 07 (Society of Mind and Debate), Phase 16 · 13 (Shared Memory) Tempo: ~75 minutos
Problema
Você tem N agentes de LLM, cada um gerando uma resposta diferente. Eles discordam. A votação por maioria escolhe a resposta errada porque dois agentes estão correlacionados (mesmo modelo base, mesmos dados de treinamento, mesmos modos de falha). Um terceiro agente erra de uma forma inédita — logo, a maioria formada é uma maioria falsa.
Agora, adicione um agente enganoso: ele mente de propósito. Ou um agente bajulador: ele concorda com quem falou por último. No BFT clássico, assume-se que os nós bizantinos representam uma fração f < n/3 e se comportam arbitrariamente. A realidade de 2026 é que os nós de LLM são estocásticos mesmo quando honestos, correlacionados entre modelos e influenciados pelas saídas dos outros. Não é possível tratá-los como eleitores independentes de Bernoulli.
O BFT clássico (PBFT, 1999) não está errado — ele é apenas incompleto. Ele lida com a alteração arbitrária de bits, mas não com "três agentes honestos compartilhando uma alucinação porque compartilham os mesmos dados de treinamento". Esta lição parte da base do PBFT clássico e adiciona três adaptações de 2025-2026.
Conceito
O que o BFT clássico oferece
A Tolerância Prática a Falhas Bizantinas (Practical Byzantine Fault Tolerance - Castro & Liskov, OSDI 1999) tolera f < n/3 nós bizantinos. O protocolo possui três fases (pré-preparação, preparação e confirmação) e duas primitivas (mensagens assinadas e certificados de quórum). Garante acordo sobre um único valor entre n >= 3f + 1 nós honestos ou maliciosos.
Essas garantias são robustas, mas assumem que:
- As falhas são independentes. Os nós bizantinos não se coordenam.
- Nós honestos são verdadeiramente honestos. A corretude das saídas dos nós honestos não é questionada; o protocolo apenas alinha discordâncias.
- A pergunta tem uma resposta factual absoluta. O consenso sobre um fato errado ainda é considerado consenso.
Agentes de LLM violam todas as três premissas. Dois agentes executando o mesmo modelo base compartilham falhas. Um LLM "honesto" ainda alucina. E em perguntas ambíguas, a "verdade" é o que os agentes decidirem — não há um oráculo externo.
Os três ataques específicos de agentes
Mentira bizantina (Byzantine lie). Um agente gera deliberadamente uma resposta incorreta. O BFT clássico lida com isso se f < n/3.
Conformidade bajuladora (Sycophantic conformity). Um agente lê as respostas dos outros antes de votar e alinha-se com quem falou por último. Ele não é malicioso, mas correlaciona-se com a voz mais forte. O BFT clássico não previne isso porque o agente passa por todas as verificações de assinatura.
Monocultura de erro correlacionado (Correlated-error monoculture). Três agentes compartilham um modelo base. Eles alucinam a mesma resposta incorreta. A maioria está errada. O BFT clássico não ajuda porque os três concordam "honestamente".
As soluções de 2025-2026
CP-WBFT (arXiv:2511.10400) — BFT Ponderado por Verificação de Confiança (Confidence-Probed Weighted BFT). Cada eleitor anexa uma estimativa de confiança à sua resposta (uma probabilidade autorrelatada ou uma previsão de um modelo de calibração separado). O peso do voto escala com a confiança. Relatou +85,71% de melhoria do BFT em grafos completos. Mitigação para: conformidade bajuladora (agentes que apenas se conformam tendem a ter baixa confiança na posição adotada).
DecentLLMs (arXiv:2507.14928) — Sem líder. Agentes trabalhadores propõem em paralelo, agentes avaliadores pontuam as propostas, e a resposta final é a mediana geométrica das posições pontuadas. Robusto quando f < n/2. Mitigação para: mentiras bizantinas e erros correlacionados (a mediana geométrica é robusta a valores discrepantes e aproxima-se do cluster mais denso, não da média enviesada pelo modelo).
WBFT (arXiv:2505.05103) — BFT Ponderado com Agrupamento de Estrutura Hierárquica. Os pesos dos votos são atribuídos pela qualidade da resposta somada a uma pontuação de confiança aprendida com o histórico. Agrupa os agentes em Núcleo (Core) e Borda (Edge); os agentes do Núcleo devem alcançar o consenso primeiro, e os da Borda os seguem. Mitigação para: escalabilidade (o consenso no Núcleo é pequeno e rápido) e parcialmente para monocultura (o Núcleo pode ser escolhido com base na diversidade).
Empírico: "Can AI Agents Agree?" (arXiv:2603.01213)
O artigo mede o acordo escalar (agentes de LLM concordando com um único valor numérico) em vários modelos de fronteira. A conclusão é desconfortável:
- Mesmo sem adversários, os agentes de LLM discordam sobre questões escalares em taxas acima de 30% em muitos benchmarks.
- Um único agente que adota uma persona enganosa pode desviar o consenso de um Mixture-of-Agents em mais de 40 pontos percentuais em relação à linha de base honesta.
- As taxas de desacordo correlacionam-se com a diversidade de modelos — conjuntos heterogêneos discordam mais do que os homogêneos (bom: erros não correlacionados), mas também convergem mais lentamente (ruim: maior tempo para consenso).
A lição: o BFT fornece o mecanismo para alinhar as saídas, mas não garante se a saída alinhada está correta. Combine com verificação (Lição 08, especialização de papéis), diversidade (Lição 15, variantes de debate) e agentes avaliadores (Lição 24, benchmarks).
O protocolo principal simplificado
Uma rodada BFT mínima para agentes de LLM:
1. a tarefa chega; cada agente i produz a resposta a_i
2. cada agente anexa uma pontuação de confiança c_i em [0, 1]
3. o agregador coleta (a_i, c_i) de todos os n agentes
4. o agregador agrupa por cluster semântico (respostas equivalentes)
5. o agregador calcula o peso de cada cluster C:
w(C) = sum_{i em C} c_i
6. vencedor = cluster com peso máximo, se máximo > limite * sum(c_i)
caso contrário: reintentar ou escalar
7. clusters minoritários registrados com proveniência para auditoria posterior
A etapa de agrupamento semântico é a particularidade para LLMs. Duas respostas como "o estudo relata 4,2%" e "melhoria de 4,2%" representam o mesmo cluster. Uma verificação ingênua de igualdade de strings falharia. Em produção, use um modelo de embeddings leve ou canonização explícita.
Ajuste de limites (threshold tuning)
O parâmetro limite (threshold) decide quando aceitar e quando reintentar. Muito baixo: aceitam-se maiorias fracas. Muito alto: nunca se aceita nada. Faixa empírica: 0,5-0,67 para n=5-7 agentes, maior para n menores. Abaixo do limite, escala-se para um humano ou para um conjunto diferente de agentes.
Onde o consenso não ajuda
- Questões ambíguas. Se a pergunta não tem uma resposta factual absoluta, o consenso é apenas uma opinião. Trate-o como tal.
- Questões compostas. "Escreva o código e explique-o" — duas respostas distintas. Vote em cada uma de forma independente.
- Debate adversarial de múltiplas rodadas. Se os agentes puderem observar rodadas anteriores e imitar os outros (debate Du 2023), eles começam a concordar entre si independentemente da verdade. Limite as rodadas (2-3 normalmente).
Construa
code/main.py implementa:
AgentVoter— uma política programada com (resposta, confiança).MajorityVote— votação clássica por maioria relativa (pluralidade).CPWBFT— votação ponderada por confiança com agrupamento semântico.DecentLLMs— agregação por mediana geométrica sobre propostas pontuadas.Scenario— executa cada agregador sob três padrões de ataque.
Padrões de ataque implementados:
byzantine: um agente mente com alta confiança.sycophancy: um agente copia a primeira resposta que vê, com confiança correspondente.monoculture: três agentes compartilham uma resposta errada (erro correlacionado) com confiança moderada.
Execute:
python3 code/main.py
Saída esperada: uma tabela de (ataque, agregador) -> resposta final, com a resposta correta destacada. A maioria relativa (pluralidade) falha no caso de monocultura. A ponderação por confiança do CPWBFT mitiga a bajulação. A mediana geométrica do DecentLLMs aproxima-se do cluster honesto quando a monocultura representa menos da metade da população.
Use
O outputs/skill-consensus-designer.md projeta um protocolo de consenso para um conjunto multiagente: método de agrupamento, ponderação, limite e política de escalonamento para rodadas abaixo do limite.
Coloque em Produção
Antes de colocar qualquer mecanismo de consenso em produção:
- Teste contra ataques com pelo menos os três padrões descritos acima. O protocolo deve falhar de forma previsível, nunca silenciosa.
- Registre cada cluster minoritário com proveniência. Os clusters minoritários são seu sistema de alerta precoce para erros correlacionados.
- Imponha rodadas limitadas. Evite "debater até concordar" — isso favorece a conformidade bajuladora.
- Separe o acordo da corretude. A saída do consenso vai para um verificador; o verificador é independente do conjunto de agentes.
- Monitore a taxa de acordo. Um aumento abrupto indica viés de conformidade; uma queda acentuada sinaliza desvio (drift) do modelo.
Exercícios
- Execute
code/main.py. Confirme que a maioria relativa falha no ataque de monocultura, mas o CPWBFT o mitiga parcialmente quando a confiança da monocultura está abaixo de 0,7. - Adicione um quarto padrão de ataque: abstenção silenciosa — um agente se recusa a responder ("não sei"). Como cada agregador deve tratar as abstenções? Implemente sua escolha.
- Altere o agrupamento semântico da canonização de strings para similaridade por embeddings (use qualquer modelo de embeddings de código aberto). O que acontece com o ataque de bajulação?
- Leia o CP-WBFT (arXiv:2511.10400). Implemente a etapa de calibração de confiança (um modelo de calibração separado verifica a confiança autorrelatada de cada agente). Meça o ganho de precisão no cenário de monocultura.
- Leia "Can AI Agents Agree?" (arXiv:2603.01213). Reproduza um experimento simplificado de acordo escalar: três agentes, uma pergunta escalar, o prompt com persona enganosa. O CPWBFT ou o DecentLLMs detectam a mentira?
Termos-Chave
| Termo | O que as pessoas dizem | O que realmente significa |
|---|---|---|
| BFT | "Tolerância a falhas bizantinas" | Protocolo Castro-Liskov de 1999 para consenso com f < n/3 falhas arbitrárias. |
| Byzantine | "Qualquer comportamento ruim" | Um nó que pode mentir, descartar mensagens, falhar silenciosamente — qualquer coisa além de falhar de forma segura. |
| Confidence probe | "Quão seguro você está?" | Probabilidade autorrelatada ou prevista por calibração associada a um voto. |
| Semantic clustering | "Mesma resposta, palavras diferentes" | Agrupamento de respostas equivalentes antes da contagem de votos. |
| Geometric median | "Centro robusto" | O ponto que minimiza a soma das distâncias aos pontos da amostra. Robusto a valores discrepantes, ao contrário da média. |
| Monoculture | "Mesmo modelo, mesmas falhas" | Erros correlacionados quando os agentes compartilham dados de treinamento ou modelo base. |
| Sycophantic conformity | "Concordar com a voz mais forte" | O voto de um agente desvia em direção a quem falou primeiro/mais alto. |
| Core/Edge | "BFT hierárquico" | Divisão do WBFT: consenso no Núcleo pequeno primeiro, nós de Borda seguem depois. Limita a latência. |
Leituras Adicionais
- Castro & Liskov — Practical Byzantine Fault Tolerance (OSDI 1999) — a fundação
- CP-WBFT — Confidence-Probe Weighted BFT — ponderação de votos por confiança
- DecentLLMs — leaderless multi-agent consensus — agregação por mediana geométrica
- WBFT — Weighted BFT with Hierarchical Structure Clustering — divisão Núcleo/Borda para latência limitada
- Can AI Agents Agree? — fragilidade de consenso escalar e ataque de persona enganosa