Consensus Protocols Architecture

Hub: README.md | Full Architecture: ARCHITECTURE.md


Overview

The consensus system implements 6 core voting algorithms for multi-agent decisions:

Implemented Algorithms:

  • simple_majority: >50% approval threshold
  • supermajority: ≥67% approval threshold
  • unanimous: 100% approval required
  • proof_of_learning: Weighted by agent performance
  • higher_order: Bayesian-optimal aggregation with correlation awareness (Issue #514)
  • opinion_wise: Opinion-based aggregation

Research-Based Protocols (Referenced): The system draws inspiration from several research protocols documented in our research index, including Aegean (Byzantine fault tolerant), Reflexion (multi-agent critique), and Self-Refine patterns.


Protocol Selection Matrix

ProtocolUse WhenAgentsThreshold
Simple MajorityQuick, non-critical decisions2+>50%
SupermajorityImportant decisions, reversible3-5≥67%
UnanimousCritical, irreversible decisions3-5100%
AegeanSafety-critical, Byzantine tolerance4-7 (3f+1)Quorum
CP-WBFTUntrusted agents, weighted trustAny67% weighted
ReflexionCode review, iterative refinement1-4 criticsSeverity <0.3
Multi-RoundComprehensive evaluation, sycophancy check2-767%
Free-MADPreserve minority opinions3-7Anti-conformity
Self-RefineAutonomous improvement1Convergence
Self-DebugError detection and repair1Test pass
Proof-of-LearningPerformance-weighted votingAny50% weighted

Consensus Engine Interface

interface IConsensusEngine {
  createProposal(config: ProposalConfig): Promise<Proposal>;
  submitVote(proposalId: ProposalId, vote: Vote): Promise<void>;
  getResult(proposalId: ProposalId): Promise<ConsensusResult>;
  closeProposal(proposalId: ProposalId): Promise<ConsensusResult>;
}

type ConsensusAlgorithm =
  | 'simple_majority' // >50%
  | 'supermajority' // ≥67%
  | 'unanimous' // 100%
  | 'proof_of_learning' // Weighted by agent performance
  | 'higher_order' // Bayesian-optimal with correlation awareness
  | 'opinion_wise'; // Opinion-based aggregation

interface Vote {
  agentId: string;
  decision: 'approve' | 'reject' | 'abstain';
  reasoning: string;
  confidence: number;
}

Weighted Voting (IWeightedVoting)

Inspired by CP-WBFT (arXiv:2511.10400) with Byzantine behavior detection.

interface IWeightedVoting {
  calculateWeight(agentId: string): number;
  updatePerformance(agentId: string, outcome: TaskOutcome): void;
  weightedConsensus(votes: ReadonlyMap<string, Vote>): WeightedConsensusResult;
  registerAgent(agentId: string): void;
  getAgentRecord(agentId: string): WeightedAgentRecord | undefined;
  flagByzantine(agentId: string, reason: string): void;
  canVote(agentId: string): boolean;
  recalibrateWeights(): void;
}

interface WeightedConsensusResult {
  readonly decision: 'approve' | 'reject' | 'no_consensus';
  readonly weightedApproval: number;
  readonly weightedRejection: number;
  readonly totalWeight: number;
  readonly quorumReached: boolean;
  readonly byzantineDetected: boolean;
  readonly participatingAgents: readonly string[];
}

Weight Calculation

weight = baseWeight × performanceMultiplier × (1 - byzantinePenalty)

Where:

  • baseWeight: Starting weight (1.0)
  • performanceMultiplier: Success rate × quality score
  • byzantinePenalty: Detected adversarial pattern penalty

Byzantine Detection Patterns

PatternDetectionAction
Contrarian votingAlways votes opposite to majorityWeight reduction
CollusionIdentical votes with specific agentsGroup weight penalty
Flip-floppingInconsistent votes on similar tasksConfidence discount
Abstention abuseExcessive abstentionsMinimum weight

Aegean Consensus Protocol

Formal consensus with incremental quorum detection (arXiv:2512.20184).

Architecture

interface AegeanConfig {
  totalAgents: number;
  faultTolerance: number; // f in 3f+1
  quorumSize: number; // 2f+1 minimum
  maxRounds: number;
  streamingEnabled: boolean;
}

Quorum Calculation

function calculateQuorumSize(totalAgents: number): number {
  // Tolerates f faults in 3f+1 agents
  const f = Math.floor((totalAgents - 1) / 3);
  return 2 * f + 1; // Minimum for safety
}

Key Metrics

MetricValueCondition
Latency1.2x-20x fastervs sequential voting
Token reduction4.4xEarly termination
Quality impact≤2.5% degradationWith quorum optimization

Reflexion Protocol

Multi-agent critique with persona-based reviewers (arXiv:2512.20845).

Default Personas

PersonaFocus Area
Devil’s AdvocateChallenge assumptions
Security CriticVulnerability detection
Maintainability CriticCode quality, readability
Correctness CriticLogic errors, edge cases

Refinement Loop

sequenceDiagram
    participant G as Generator
    participant C1 as Critic 1
    participant C2 as Critic 2
    participant R as Refiner

    G->>C1: Initial output
    G->>C2: Initial output
    C1-->>R: Critique (severity)
    C2-->>R: Critique (severity)

    alt Severity > threshold
        R->>G: Refinement request
        G->>C1: Refined output
        Note over G,R: Loop until convergence
    end

Convergence Criteria

  • Maximum severity < 0.3
  • OR maximum iterations reached
  • OR no improvement in 2 rounds

Free-MAD Scoring

Anti-conformity scoring to preserve minority opinions (arXiv:2509.11035).

interface FreeMadScore {
  agentId: string;
  baseScore: number;
  conformityPenalty: number;
  persistenceBonus: number;
  finalScore: number;
}

Scoring Algorithm

finalScore = baseScore - (conformityPenalty × conformityWeight) + (persistenceBonus × persistenceWeight)
ComponentCalculationPurpose
conformityPenaltyChanged vote to match majorityDiscourage groupthink
persistenceBonusMaintained minority positionReward independent thinking

Self-Refine Protocol

Single-agent iterative improvement (arXiv:2303.17651).

Loop Structure

Generate → Evaluate → Refine → Evaluate → ... → Converge

Convergence Detection

Uses Jaccard similarity between iterations:

const similarity = jaccardSimilarity(previousOutput, currentOutput);
const converged = similarity >= 0.95; // 95% threshold

Self-Debug Protocol

Automated error detection and repair (arXiv:2304.05128).

Debug Loop

Execute → Detect Error → Explain → Fix → Verify → ...

Supported Languages

LanguageError ParsingExample Patterns
TypeScriptTSC errorsTS\d+:, error TS
ESLintLint errorserror, warning
Node.jsRuntime errorsTypeError, ReferenceError
PythonExceptionsTraceback, Error
GoCompile errorscannot, undefined
RustCargo errorserror[E\d+]

Decision Criteria Guide

FactorConsiderationRecommended Protocol
SpeedFast decision neededSimple Majority, Self-Refine
CorrectnessHigh accuracy requiredAegean, Reflexion, Multi-Round
RobustnessExpect failures/attacksCP-WBFT, Aegean
TransparencyNeed detailed reasoningReflexion, Free-MAD
AutonomySingle agentSelf-Refine, Self-Debug
LearningTeam improves over timeCP-WBFT, Proof-of-Learning

Voting Thresholds

Decision TypeProtocolThresholdRationale
Reversible changesSimple Votingmajority (>50%)Speed over consensus
ImplementationTRINITYVerifier approvalRole-based validation
ArchitectureAegeansupermajorityByzantine fault tolerance
Security-criticalConstitutionalunanimousPrinciple-based safety
IrreversibleAegean + Const.supermajority +Maximum safety guarantees

Usage Example

import { CollaborationSession, AdaptiveProtocolSelector } from 'nexus-agents';

// Adaptive selection (automatic)
const selector = new AdaptiveProtocolSelector();
const protocol = selector.selectProtocol(taskConfig);
// → reasoning tasks: parallel/voting (+13.2%)
// → knowledge tasks: consensus (+2.8%)

// Explicit protocol selection
const session = new CollaborationSession({
  pattern: 'aegean',
  quorum: 0.67,
  maxRounds: 3,
});

// Byzantine-fault-tolerant voting
const weighted = new WeightedVoting({
  minTrustScore: 0.3,
  quorumThreshold: 0.67,
  weightDecay: 0.9,
  weightRecovery: 1.05,
});

Source Files

FilePurpose
src/consensus/voting-protocol.tsMulti-round voting
src/consensus/weighted-voting.tsCP-WBFT implementation
src/agents/collaboration/aegean-protocol.tsAegean consensus
src/agents/collaboration/reflexion-protocol.tsMulti-agent reflexion
src/agents/collaboration/self-refine-protocol.tsSelf-refine loop
src/agents/collaboration/self-debug-protocol.tsSelf-debug repair
src/agents/collaboration/free-mad-scoring.tsAnti-conformity scoring
src/agents/collaboration/constitutional-critic.tsConstitutional AI
src/agents/collaboration/trinity-coordinator.tsTRINITY roles
src/agents/collaboration/adaptive-protocol-selector.tsAuto-selection

Research Sources

ProtocolPaperKey Metrics
Aegean ConsensusarXiv:2512.2018420x latency, 4.4x tokens
CP-WBFTarXiv:2511.1040085.7% fault tolerance
Multi-Agent ReflexionarXiv:2512.20845Avoids thought degeneration
Free-MADarXiv:2509.11035Anti-groupthink robustness
Self-RefinearXiv:2303.1765120% average improvement
ReflexionarXiv:2303.1136691% HumanEval
Task-Aware SelectionarXiv:2502.19130+13.2% reasoning
Constitutional AIarXiv:2212.08073Scales without human labelers