cascade.consensus()

Determine consensus across multiple model responses.

Usage

Source

cascade.consensus(
    responses, *, strategy=ConsensusStrategy.MAJORITY, unanimous_threshold=0.7
)

Compares the provided responses and selects a winner based on the chosen strategy. Also detects and reports disagreements.

Parameters

responses: list[ModelResponse]

List of model responses to compare. Must contain at least one response.

strategy: ConsensusStrategy = ConsensusStrategy.MAJORITY

The consensus strategy to use.

unanimous_threshold: float = 0.7
For the UNANIMOUS strategy, the minimum pairwise similarity required for consensus to be reached (default 0.7).

Returns

ConsensusResult
The consensus outcome including winner, agreement score, and disagreements.

Raises

ValueError
If responses is empty.

Examples

import talk_box as tb

responses = [
    tb.ModelResponse(model="anthropic:claude-sonnet-4-6", text="Python is a programming language."),
    tb.ModelResponse(model="openai:gpt-4o", text="Python is a high-level programming language."),
    tb.ModelResponse(model="google:gemini-2.5-flash", text="Python is an interpreted programming language."),
]

result = tb.consensus(responses, strategy=tb.ConsensusStrategy.MAJORITY)
result.winner           # "Python is a high-level programming language."
result.agreement_score  # ~0.75
result.consensus_reached  # True