LLM Council Aggregation
Purpose
Combines multiple LLM outputs or judge verdicts into one final answer, score,
or ranking — robustly. This is the aggregation step of a multi-model system:
given N model responses or N judge verdicts on the same item(s), decide how
they get turned into one result without either (a) treating naive majority
vote as automatically safe, or (b) throwing away disagreement that was
actually useful signal.
Core thesis: judge/model agreement is not ground truth. Frontier models
share training data and alignment recipes, so their errors correlate — a
panel can carry far less independent signal than its member count suggests,
and judges can agree with each other while being collectively wrong relative
to humans. Measure this on your own eval set before trusting any aggregation
scheme; never assume it.
When to use
Use when the user wants to:
- Combine N model outputs into one final answer (majority vote, weighted
vote, synthesis).
- Aggregate or reconcile verdicts/scores/rankings from an LLM judge panel or
jury.
- Decide how to handle disagreement between judges or council members.
- Choose between mean, weighted vote, geometric median, or a synthesized
write-up for combining outputs.
- Set up pairwise LLM comparisons and worry about position bias.
Trigger even when the user never says "council" — e.g. "I have 5 model
outputs for each item, what's the best way to pick the winner?", "we ran the
same prompt through 3 models, how do we decide on one final answer?", "can we
just average the judge scores?".
When NOT to use
- Pipeline topology/stage design ("how should the council's stages flow",
"what's the architecture for our multi-model system") — sibling
llm-council-architecture, not this skill.
- Whether to use a council at all ("should we even use multiple models
for this", "is one model good enough") — sibling
llm-council-when.
- Member selection ("which models should sit on the panel", "how many
judges do we need") — sibling
llm-council-architecture/member-choice
scope, not aggregation.
- Writing the stage prompts ("write the judge prompt", "draft the
synthesizer's prompt") — sibling
llm-council-prompts.
- Single-judge model evaluation ("evaluate my model's accuracy against
this benchmark" with one judge, no panel/aggregation question) — generic
eval setup, out of scope.
- Statistics homework unrelated to combining model/judge outputs (e.g.
"what's the variance formula for a small sample") — out of scope.
- Database aggregation queries (SQL
GROUP BY/SUM/HAVING) — unrelated
meaning of "aggregate."
Workflow
Name the failure mode before picking a method. State up front: naive
voting is capped by correlated errors, not by the number of judges. Ask (or
infer) whether the user has already measured co-failure/agreement on their
own data — if not, that's the first gap to flag, not a method choice.
Full evidence: references/aggregation-methods.md#why-naive-voting-fails.
Match the situation to a method using
references/aggregation-methods.md#method-selection-table:
- Classification with a validation set → weight votes by each model's
validation-set macro-F1, never by self-reported confidence.
- Reasoning/math → trace-level synthesis (aggregate reasoning traces, not
just final answers).
- Subjective quality evaluation → a council of judges, synthesized —
more separable and human-consistent than one judge; a small diverse
panel can beat one top-tier judge at much lower cost.
- Cost-constrained → conditional escalation: 2 judges by default, invoke a
3rd only when they disagree.
- Suspected corrupted/miscalibrated judges → geometric median instead of
mean (breakdown point ~50%).
- Ranking with judges of unequal reliability → judge-aware Bradley-Terry,
which infers per-judge reliability jointly with the ranking.
If pairwise comparison is in play, apply the discipline in
references/aggregation-methods.md#pairwise-discipline: both orders,
count a win only when both agree (else tie), and reserve full pairwise for
a calibration set once you're at scale — production defaults to pointwise.
Pick a confidence/weighting tier deliberately, per
references/aggregation-methods.md#confidence-and-calibration: simple
mean (equal judges only) < stated-confidence weighting (ONLY if calibrated)
< historical-reliability weighting (best, needs upkeep). If the user
proposes weighting by self-reported confidence, ask whether it's been
calibrated against human labels — if not, warn it can add nothing over
plain majority, or be actively counterproductive on hard items. Point to
the calibration loop (200–500 verdicts vs. human labels, Cohen's kappa per
pair, Krippendorff's alpha panel-wide, target ≥0.6, quarterly re-run).
Apply judge hygiene from
references/aggregation-methods.md#judge-bias-and-hygiene: judge from a
different model family than the generator, separate the judge role from
the synthesizer role, require citing evidence before scoring, add a
do-not-reward-length clause, temperature 0, and still expect
self-inconsistency across runs on high-stakes items (repeat trials).
Design the synthesis step to preserve disagreement, not collapse it —
see references/aggregation-methods.md#disagreement-as-the-product. A
correct synthesis states where members agree, surfaces and explains
disagreement (steelman both sides), draws from all responses rather than
only the top-ranked one, flags remaining uncertainty, and routes
high-disagreement/low-confidence items to a human instead of forcing a
synthetic consensus.
Default the rating scale to 0–5 for judge scoring unless the user has
a reason to deviate — validate it against a human-labeled sample rather
than assuming it's settled (single-study evidence; see
references/aggregation-methods.md#scale-choice).
Output spec
A complete answer names: which method fits the user's situation (from the
selection table) and why, the specific correlated-error/co-failure risk for
their setup, the confidence/weighting tier they should use and what
calibration it requires, any pairwise-bias controls needed, and how the
synthesis step should preserve rather than collapse disagreement. Point to
references/aggregation-methods.md for full detail and citations rather than
inlining every paper's numbers.
Failure modes to name explicitly
- Naive majority/average vote presented as automatically reliable — name
the correlated-error ceiling (effective vote count can be far below panel
size) before endorsing any vote scheme.
- Judge agreement treated as human alignment — judges converging on each
other is not evidence they match human judgment on subjective rubrics.
- Uncalibrated confidence weighting — self-reported confidence with no
calibration check adds nothing over plain majority, and can be inversely
correlated with correctness on hard tasks.
- Consensus-collapsed synthesis — a blended "average" write-up can
discard most of the good, non-majority ideas a single council member
produced; treat disagreement as content to preserve, not noise to average
out.
- Same-family judge and generator — self-preference bias inflates scores
for outputs from the judge's own model family.
Gotchas
- Don't recommend more judges as a fix for unreliability without first
asking whether errors are correlated — more correlated judges can add cost
without adding independent signal.
- Pairwise comparison is O(n²); don't default to full pairwise at scale —
pointwise plus periodic pairwise calibration is the production default.
- A "council" that always resolves to the majority-vote answer with no
escalation path or human-in-the-loop for high-disagreement cases has quietly
reintroduced the naive-voting failure mode this skill exists to avoid.
- Cite only the named papers/sources in
references/aggregation-methods.md.
Siblings
llm-council-when — whether to use a council at all for a given task.
llm-council-architecture — pipeline topology and stage design.
llm-council-members — which models/judges to include and how many.
llm-council-prompts — writing the prompts for each stage.
llm-council-cost — budgeting and cost tradeoffs across council designs.
llm-council-failure-modes — broader council failure modes beyond
aggregation.
llm-council-harness — running/orchestrating the council end to end.
References
references/aggregation-methods.md — method-selection table, pairwise
discipline, confidence/calibration tiers, judge-bias hygiene, disagreement
synthesis, scale choice, and full citations.
1---2name: llm-council-aggregation3description: Aggregates several model outputs or judge verdicts into one final answer - majority voting and its correlated-error limits, reliability weighting, side-swapped pairwise comparison, judge-synthesizer separation, surfacing dissent. Use once the models have already run, to aggregate their outputs or rankings into one final answer, pick a winner, run a judge panel, or resolve disagreeing verdicts. Not for topology or cost.4---56# LLM Council Aggregation78## Purpose910Combines multiple LLM outputs or judge verdicts into one final answer, score,11or ranking — robustly. This is the aggregation step of a multi-model system:12given N model responses or N judge verdicts on the same item(s), decide how13they get turned into one result without either (a) treating naive majority14vote as automatically safe, or (b) throwing away disagreement that was15actually useful signal.1617**Core thesis: judge/model agreement is not ground truth.** Frontier models18share training data and alignment recipes, so their errors correlate — a19panel can carry far less independent signal than its member count suggests,20and judges can agree with each other while being collectively wrong relative21to humans. Measure this on your own eval set before trusting any aggregation22scheme; never assume it.2324## When to use2526Use when the user wants to:27- Combine N model outputs into one final answer (majority vote, weighted28 vote, synthesis).29- Aggregate or reconcile verdicts/scores/rankings from an LLM judge panel or30 jury.31- Decide how to handle disagreement between judges or council members.32- Choose between mean, weighted vote, geometric median, or a synthesized33 write-up for combining outputs.34- Set up pairwise LLM comparisons and worry about position bias.3536Trigger even when the user never says "council" — e.g. "I have 5 model37outputs for each item, what's the best way to pick the winner?", "we ran the38same prompt through 3 models, how do we decide on one final answer?", "can we39just average the judge scores?".4041## When NOT to use4243- **Pipeline topology/stage design** ("how should the council's stages flow",44 "what's the architecture for our multi-model system") — sibling45 `llm-council-architecture`, not this skill.46- **Whether to use a council at all** ("should we even use multiple models47 for this", "is one model good enough") — sibling `llm-council-when`.48- **Member selection** ("which models should sit on the panel", "how many49 judges do we need") — sibling `llm-council-architecture`/member-choice50 scope, not aggregation.51- **Writing the stage prompts** ("write the judge prompt", "draft the52 synthesizer's prompt") — sibling `llm-council-prompts`.53- **Single-judge model evaluation** ("evaluate my model's accuracy against54 this benchmark" with one judge, no panel/aggregation question) — generic55 eval setup, out of scope.56- **Statistics homework** unrelated to combining model/judge outputs (e.g.57 "what's the variance formula for a small sample") — out of scope.58- **Database aggregation queries** (SQL `GROUP BY`/`SUM`/`HAVING`) — unrelated59 meaning of "aggregate."6061## Workflow62631. **Name the failure mode before picking a method.** State up front: naive64 voting is capped by correlated errors, not by the number of judges. Ask (or65 infer) whether the user has already measured co-failure/agreement on their66 own data — if not, that's the first gap to flag, not a method choice.67 Full evidence: `references/aggregation-methods.md#why-naive-voting-fails`.68692. **Match the situation to a method** using70 `references/aggregation-methods.md#method-selection-table`:71 - Classification with a validation set → weight votes by each model's72 validation-set macro-F1, never by self-reported confidence.73 - Reasoning/math → trace-level synthesis (aggregate reasoning traces, not74 just final answers).75 - Subjective quality evaluation → a council of judges, synthesized —76 more separable and human-consistent than one judge; a small diverse77 panel can beat one top-tier judge at much lower cost.78 - Cost-constrained → conditional escalation: 2 judges by default, invoke a79 3rd only when they disagree.80 - Suspected corrupted/miscalibrated judges → geometric median instead of81 mean (breakdown point ~50%).82 - Ranking with judges of unequal reliability → judge-aware Bradley-Terry,83 which infers per-judge reliability jointly with the ranking.84853. **If pairwise comparison is in play**, apply the discipline in86 `references/aggregation-methods.md#pairwise-discipline`: both orders,87 count a win only when both agree (else tie), and reserve full pairwise for88 a calibration set once you're at scale — production defaults to pointwise.89904. **Pick a confidence/weighting tier deliberately**, per91 `references/aggregation-methods.md#confidence-and-calibration`: simple92 mean (equal judges only) < stated-confidence weighting (ONLY if calibrated)93 < historical-reliability weighting (best, needs upkeep). If the user94 proposes weighting by self-reported confidence, ask whether it's been95 calibrated against human labels — if not, warn it can add nothing over96 plain majority, or be actively counterproductive on hard items. Point to97 the calibration loop (200–500 verdicts vs. human labels, Cohen's kappa per98 pair, Krippendorff's alpha panel-wide, target ≥0.6, quarterly re-run).991005. **Apply judge hygiene** from101 `references/aggregation-methods.md#judge-bias-and-hygiene`: judge from a102 different model family than the generator, separate the judge role from103 the synthesizer role, require citing evidence before scoring, add a104 do-not-reward-length clause, temperature 0, and still expect105 self-inconsistency across runs on high-stakes items (repeat trials).1061076. **Design the synthesis step to preserve disagreement, not collapse it** —108 see `references/aggregation-methods.md#disagreement-as-the-product`. A109 correct synthesis states where members agree, surfaces and explains110 disagreement (steelman both sides), draws from all responses rather than111 only the top-ranked one, flags remaining uncertainty, and routes112 high-disagreement/low-confidence items to a human instead of forcing a113 synthetic consensus.1141157. **Default the rating scale to 0–5** for judge scoring unless the user has116 a reason to deviate — validate it against a human-labeled sample rather117 than assuming it's settled (single-study evidence; see118 `references/aggregation-methods.md#scale-choice`).119120## Output spec121122A complete answer names: which method fits the user's situation (from the123selection table) and why, the specific correlated-error/co-failure risk for124their setup, the confidence/weighting tier they should use and what125calibration it requires, any pairwise-bias controls needed, and how the126synthesis step should preserve rather than collapse disagreement. Point to127`references/aggregation-methods.md` for full detail and citations rather than128inlining every paper's numbers.129130## Failure modes to name explicitly131132- **Naive majority/average vote presented as automatically reliable** — name133 the correlated-error ceiling (effective vote count can be far below panel134 size) before endorsing any vote scheme.135- **Judge agreement treated as human alignment** — judges converging on each136 other is not evidence they match human judgment on subjective rubrics.137- **Uncalibrated confidence weighting** — self-reported confidence with no138 calibration check adds nothing over plain majority, and can be inversely139 correlated with correctness on hard tasks.140- **Consensus-collapsed synthesis** — a blended "average" write-up can141 discard most of the good, non-majority ideas a single council member142 produced; treat disagreement as content to preserve, not noise to average143 out.144- **Same-family judge and generator** — self-preference bias inflates scores145 for outputs from the judge's own model family.146147## Gotchas148149- Don't recommend more judges as a fix for unreliability without first150 asking whether errors are correlated — more correlated judges can add cost151 without adding independent signal.152- Pairwise comparison is O(n²); don't default to full pairwise at scale —153 pointwise plus periodic pairwise calibration is the production default.154- A "council" that always resolves to the majority-vote answer with no155 escalation path or human-in-the-loop for high-disagreement cases has quietly156 reintroduced the naive-voting failure mode this skill exists to avoid.157- Cite only the named papers/sources in `references/aggregation-methods.md`.158159## Siblings160161- `llm-council-when` — whether to use a council at all for a given task.162- `llm-council-architecture` — pipeline topology and stage design.163- `llm-council-members` — which models/judges to include and how many.164- `llm-council-prompts` — writing the prompts for each stage.165- `llm-council-cost` — budgeting and cost tradeoffs across council designs.166- `llm-council-failure-modes` — broader council failure modes beyond167 aggregation.168- `llm-council-harness` — running/orchestrating the council end to end.169170## References171172- `references/aggregation-methods.md` — method-selection table, pairwise173 discipline, confidence/calibration tiers, judge-bias hygiene, disagreement174 synthesis, scale choice, and full citations.