LLM Council: Cost
Purpose
Cut the cost and latency of a multi-model pipeline that already exists — a
council, ensemble, debate, or plain "we call N models per request" setup —
without giving up the quality it was built for. The lever is almost never
"pick a cheaper model everywhere"; it's making the expensive path fire only
when it's actually earning its keep.
When to use / when NOT to use
Use this skill when the pipeline is already running and the complaint is
cost, latency, or token spend — including when the user never says "council"
("we call 4 models per request and the bill exploded", "cut multi-agent
orchestration cost").
Not for:
- Deciding whether to adopt a council at all → sibling
llm-council-when.
If the user is asking "is this worth it" rather than "make it cheaper",
route there instead.
- Choosing how to combine member outputs (voting, weighting, judge
aggregation) → sibling
llm-council-aggregation.
- Generic single-model cost cutting with no multi-model pipeline in play
("switch to a cheaper model", "our OpenAI bill is high") — that's a model
choice, not a routing/gating problem.
- Cloud infra cost (EC2, S3, hosting bill) or database query
optimization — unrelated domains that occasionally share the word "cost".
The core move: route first, council second
Put a cheap gate at the front door so the expensive path fires only on the
hard tail, not on every request. Escalation ladder, cheapest first:
- Semantic router — embedding similarity to known intents; escalate
below a similarity threshold.
- Learned router — trained to predict which queries need the strong
path. RouteLLM reports ~85% cost reduction while retaining ~95% of GPT-4
quality on MT-Bench (paper-reported, not vendor-reported — see
references/routing-and-caching.md#learned-routers). Real operational
tax: routers degrade on out-of-distribution traffic and need retraining
whenever the model pool changes.
- Pre-inference screening for Mixture-of-Agents — cheap pre-filtering
before the expensive fan-out. RouteMoA reports 89.8% cost / 63.6% latency
reduction in large-pool settings (author-reported; see reference).
Real routed traffic tends to skew cheap (roughly 80% cheap tier / 15-20% mid
/ 5% premium is a commonly observed anecdotal shape, not a law — measure your
own split).
Calibration is the trigger, not raw confidence
Never gate escalation on a model's raw self-reported confidence — it is
unreliable and can be inversely correlated with correctness on hard tasks.
Fit the escalation threshold on your own traffic's calibration curve
(ECE/Brier vs ground truth). A verified anchor: isotonic-regression
calibration of token-margin uncertainty cut inference cost 31% (95% CI
27-35%) while improving ECE from 0.12 to 0.03 on a 75k-query production NER
workload (UCCI; see reference).
For multi-member setups, peer disagreement is a better escalation signal
than any single member's self-report: run cheap models first, escalate only
when they disagree (2-then-3-judge pattern), rather than always paying for
every member.
Know your multipliers before you plan around them
Order-of-magnitude planning numbers only — re-measure on your own workload,
don't plan a budget off someone else's paper:
| Pattern |
Rough multiplier |
| Self-consistency |
~Nx tokens, ~1x latency |
| Mixture-of-Agents |
~3-6x |
| Debate |
~4-8x cost AND latency |
| Full council (2N+1 calls) |
~4.2x tokens (paper's own accounting) |
| Agents / multi-agent systems |
~4x / ~15x chat tokens (Anthropic, vendor-reported, as of mid-2026 — verify: anthropic.com/engineering/multi-agent-research-system) |
Cost compounds non-linearly on top of these: context re-ingestion across
turns, retries, and orchestration overhead can push real overhead well past
the naive per-call estimate. Measure cost-per-resolved-outcome, not
cost-per-query — a 3x per-query multiplier can still be a net win if it
meaningfully cuts a costly downstream error rate, and a net loss if it
doesn't.
Caching and batching
Structure council prompts with a shared static prefix (the question plus
rubric) first, per-member instructions after, so every member call hits the
cache:
- Anthropic prompt caching is opt-in via
cache_control: cache writes cost a
premium, cached reads are a small fraction of base input price (as of
mid-2026 — verify: docs.anthropic.com prompt caching).
- OpenAI caches automatically for prompts ≥1024 tokens, at roughly a 50%
discount on the cached prefix (as of mid-2026 — verify:
platform.openai.com).
- Batch APIs (~50% discount, as of mid-2026 — verify provider docs) fit
offline/eval workloads only. Batching low-traffic interactive calls just
adds wait with no cost win on a single request.
Session-aware routing
Don't re-route per turn inside an agent's tool-call loop. Mid-session model
switches break prompt-cache locality and can invalidate in-flight tool-call
sequences. Lock the model for the duration of an active loop; re-route only
at session or task boundaries.
Latency: budget tails, not averages
Fan-out wall-clock time is bounded by the slowest member — one tail-latency
member dominates the whole council's latency, regardless of how fast the
others respond. Budget P95/P99, not the mean. Use TTFT-based hedging
triggers rather than static timeouts, and cap hedge load (roughly a 10%
token-bucket) so hedging itself doesn't become a cost problem. Parallel
dispatch is a latency lever only — you still pay for every member's
tokens regardless of wall-clock time.
Cheap wins (roughly ordered by effort)
- Cap debate rounds with a statistical stopping rule instead of a fixed
count — one reported case converged in ~1 round vs a fixed 5, a 3.7x call
cut (see reference).
- Drop irrelevant specialist seats per task instead of always dispatching
a fixed roster.
- Prune samples past ~5 in self-consistency-style sampling — diminishing
returns; temperature matters more than sample count beyond that point.
- Consider Self-MoA: repeatedly sampling your single strongest model can
beat mixing weaker ones (+6.6pp AlpacaEval reported; see reference) — and
it erases the multi-vendor operational burden entirely.
- Distillation / internalized-debate approaches report matching explicit
debate at a fraction of the tokens — directional, single-paper evidence,
worth a pilot before a full migration.
Workflow
- Map the current pipeline's shape — how many models, what topology
(self-consistency, MoA, debate, full council), and which multiplier row
above it resembles. This tells you the ceiling on savings before you
start.
- Add a route-first gate sized to the traffic: semantic router for a
known intent set, a learned router if intents are open-ended, pre-filter
screening if the pattern is MoA-shaped.
- Calibrate the escalation threshold on the user's own traffic — never
ship a threshold based on raw self-reported confidence or a borrowed
default. For multi-member setups, prefer peer-disagreement escalation.
- Restructure prompts for caching: shared static prefix first, per-call
variation last, so every member/turn hits the cache.
- Check for mid-session re-routing inside any agentic tool-loop and
remove it; move re-routing to session/task boundaries only.
- Budget latency at P95/P99 and add TTFT-based hedging with a capped
hedge budget if tail latency (not cost) is the complaint.
- Apply the cheap-wins list relevant to the pipeline's topology.
- Re-measure: cost-per-resolved-outcome before/after, and flag which
cited numbers (vendor percentages especially) need re-verification on the
user's own workload before being trusted for planning.
Output spec
A complete answer:
- Names the route-first gate design appropriate to the traffic shape.
- States the calibration approach for the escalation threshold (not raw
self-report).
- Gives a concrete caching/prompt-structure change if member calls don't
already share a cached prefix.
- Flags any mid-session re-routing anti-pattern if an agentic loop is in
play.
- Distinguishes cost levers from latency-only levers (parallel dispatch, TTFT
hedging) so the user doesn't expect a latency fix to also cut spend.
- Frames savings as cost-per-resolved-outcome, and notes any cited
percentage/multiplier should be re-measured on the user's own workload
before being used to plan a budget.
Failure modes & gotchas
- Routing on raw self-reported confidence. It's unreliable and can be
inversely correlated with correctness on the hard tail — the exact traffic
the gate exists to catch.
- Treating a learned router as fire-and-forget. It degrades on
out-of-distribution traffic and needs retraining whenever the model pool
changes — budget for that as an ongoing cost, not a one-time setup.
- Re-routing mid-session inside a tool-call loop. Breaks cache locality
and can invalidate in-flight tool sequences; re-route at boundaries only.
- Conflating latency and cost fixes. Parallel dispatch and hedging help
wall-clock time; they do not reduce the tokens paid for. Don't sell a
latency fix as a cost fix.
- Trusting a single vendor/paper percentage as a planning number. Every
multiplier and discount cited here is order-of-magnitude and
version-gated for a reason — re-measure on the actual workload before it
goes into a budget.
- Batching interactive traffic. Batch API discounts only pay off for
offline/eval workloads; applying them to low-traffic interactive calls
just adds wait.
References
references/routing-and-caching.md — deeper routing, calibration,
caching, and latency detail with citations.
Siblings
llm-council-when — decides whether to adopt a council at all.
llm-council-architecture — designs the pipeline once a council is chosen.
llm-council-members — picks council composition and diversity.
llm-council-aggregation — combines member answers into one output.
llm-council-prompts — writes stage-specific prompts (debate, synthesis).
llm-council-failure-modes — defenses against conformity and collapse.
llm-council-harness — headless CLI implementation of a council.
1---2name: llm-council-cost3description: Cuts the token spend and latency of a multi-model pipeline - route-first gating so the council fires only on hard queries, confidence-based escalation, shared-prefix caching, batching, tail-latency budgets. Use when calling several models per request costs too much or takes too long, or to cache across member calls. Not for whether to adopt a council, or for aggregation.4---56# LLM Council: Cost78## Purpose910Cut the cost and latency of a multi-model pipeline that already exists — a11council, ensemble, debate, or plain "we call N models per request" setup —12without giving up the quality it was built for. The lever is almost never13"pick a cheaper model everywhere"; it's making the expensive path fire only14when it's actually earning its keep.1516## When to use / when NOT to use1718Use this skill when the pipeline is already running and the complaint is19cost, latency, or token spend — including when the user never says "council"20("we call 4 models per request and the bill exploded", "cut multi-agent21orchestration cost").2223Not for:2425- **Deciding whether to adopt a council at all** → sibling `llm-council-when`.26 If the user is asking "is this worth it" rather than "make it cheaper",27 route there instead.28- **Choosing how to combine member outputs** (voting, weighting, judge29 aggregation) → sibling `llm-council-aggregation`.30- **Generic single-model cost cutting** with no multi-model pipeline in play31 ("switch to a cheaper model", "our OpenAI bill is high") — that's a model32 choice, not a routing/gating problem.33- **Cloud infra cost** (EC2, S3, hosting bill) or **database query34 optimization** — unrelated domains that occasionally share the word "cost".3536## The core move: route first, council second3738Put a cheap gate at the front door so the expensive path fires only on the39hard tail, not on every request. Escalation ladder, cheapest first:40411. **Semantic router** — embedding similarity to known intents; escalate42 below a similarity threshold.432. **Learned router** — trained to predict which queries need the strong44 path. RouteLLM reports ~85% cost reduction while retaining ~95% of GPT-445 quality on MT-Bench (paper-reported, not vendor-reported — see46 `references/routing-and-caching.md#learned-routers`). Real operational47 tax: routers degrade on out-of-distribution traffic and need retraining48 whenever the model pool changes.493. **Pre-inference screening for Mixture-of-Agents** — cheap pre-filtering50 before the expensive fan-out. RouteMoA reports 89.8% cost / 63.6% latency51 reduction in large-pool settings (author-reported; see reference).5253Real routed traffic tends to skew cheap (roughly 80% cheap tier / 15-20% mid54/ 5% premium is a commonly observed anecdotal shape, not a law — measure your55own split).5657## Calibration is the trigger, not raw confidence5859Never gate escalation on a model's raw self-reported confidence — it is60unreliable and can be *inversely* correlated with correctness on hard tasks.61Fit the escalation threshold on your own traffic's calibration curve62(ECE/Brier vs ground truth). A verified anchor: isotonic-regression63calibration of token-margin uncertainty cut inference cost 31% (95% CI6427-35%) while improving ECE from 0.12 to 0.03 on a 75k-query production NER65workload (UCCI; see reference).6667For multi-member setups, peer disagreement is a better escalation signal68than any single member's self-report: run cheap models first, escalate only69when they disagree (2-then-3-judge pattern), rather than always paying for70every member.7172## Know your multipliers before you plan around them7374Order-of-magnitude planning numbers only — re-measure on your own workload,75don't plan a budget off someone else's paper:7677| Pattern | Rough multiplier |78| --- | --- |79| Self-consistency | ~Nx tokens, ~1x latency |80| Mixture-of-Agents | ~3-6x |81| Debate | ~4-8x cost AND latency |82| Full council (2N+1 calls) | ~4.2x tokens (paper's own accounting) |83| Agents / multi-agent systems | ~4x / ~15x chat tokens (Anthropic, vendor-reported, as of mid-2026 — verify: anthropic.com/engineering/multi-agent-research-system) |8485Cost compounds non-linearly on top of these: context re-ingestion across86turns, retries, and orchestration overhead can push real overhead well past87the naive per-call estimate. **Measure cost-per-resolved-outcome, not88cost-per-query** — a 3x per-query multiplier can still be a net win if it89meaningfully cuts a costly downstream error rate, and a net loss if it90doesn't.9192## Caching and batching9394Structure council prompts with a shared static prefix (the question plus95rubric) first, per-member instructions after, so every member call hits the96cache:9798- Anthropic prompt caching is opt-in via `cache_control`: cache writes cost a99 premium, cached reads are a small fraction of base input price (as of100 mid-2026 — verify: docs.anthropic.com prompt caching).101- OpenAI caches automatically for prompts ≥1024 tokens, at roughly a 50%102 discount on the cached prefix (as of mid-2026 — verify:103 platform.openai.com).104- Batch APIs (~50% discount, as of mid-2026 — verify provider docs) fit105 offline/eval workloads only. Batching low-traffic interactive calls just106 adds wait with no cost win on a single request.107108## Session-aware routing109110Don't re-route per turn inside an agent's tool-call loop. Mid-session model111switches break prompt-cache locality and can invalidate in-flight tool-call112sequences. Lock the model for the duration of an active loop; re-route only113at session or task boundaries.114115## Latency: budget tails, not averages116117Fan-out wall-clock time is bounded by the slowest member — one tail-latency118member dominates the whole council's latency, regardless of how fast the119others respond. Budget P95/P99, not the mean. Use TTFT-based hedging120triggers rather than static timeouts, and cap hedge load (roughly a 10%121token-bucket) so hedging itself doesn't become a cost problem. Parallel122dispatch is a **latency lever only** — you still pay for every member's123tokens regardless of wall-clock time.124125## Cheap wins (roughly ordered by effort)126127- **Cap debate rounds** with a statistical stopping rule instead of a fixed128 count — one reported case converged in ~1 round vs a fixed 5, a 3.7x call129 cut (see reference).130- **Drop irrelevant specialist seats per task** instead of always dispatching131 a fixed roster.132- **Prune samples past ~5** in self-consistency-style sampling — diminishing133 returns; temperature matters more than sample count beyond that point.134- **Consider Self-MoA**: repeatedly sampling your single strongest model can135 beat mixing weaker ones (+6.6pp AlpacaEval reported; see reference) — and136 it erases the multi-vendor operational burden entirely.137- **Distillation / internalized-debate** approaches report matching explicit138 debate at a fraction of the tokens — directional, single-paper evidence,139 worth a pilot before a full migration.140141## Workflow1421431. **Map the current pipeline's shape** — how many models, what topology144 (self-consistency, MoA, debate, full council), and which multiplier row145 above it resembles. This tells you the ceiling on savings before you146 start.1472. **Add a route-first gate** sized to the traffic: semantic router for a148 known intent set, a learned router if intents are open-ended, pre-filter149 screening if the pattern is MoA-shaped.1503. **Calibrate the escalation threshold on the user's own traffic** — never151 ship a threshold based on raw self-reported confidence or a borrowed152 default. For multi-member setups, prefer peer-disagreement escalation.1534. **Restructure prompts for caching**: shared static prefix first, per-call154 variation last, so every member/turn hits the cache.1555. **Check for mid-session re-routing** inside any agentic tool-loop and156 remove it; move re-routing to session/task boundaries only.1576. **Budget latency at P95/P99** and add TTFT-based hedging with a capped158 hedge budget if tail latency (not cost) is the complaint.1597. **Apply the cheap-wins list** relevant to the pipeline's topology.1608. **Re-measure**: cost-per-resolved-outcome before/after, and flag which161 cited numbers (vendor percentages especially) need re-verification on the162 user's own workload before being trusted for planning.163164## Output spec165166A complete answer:167168- Names the route-first gate design appropriate to the traffic shape.169- States the calibration approach for the escalation threshold (not raw170 self-report).171- Gives a concrete caching/prompt-structure change if member calls don't172 already share a cached prefix.173- Flags any mid-session re-routing anti-pattern if an agentic loop is in174 play.175- Distinguishes cost levers from latency-only levers (parallel dispatch, TTFT176 hedging) so the user doesn't expect a latency fix to also cut spend.177- Frames savings as cost-per-resolved-outcome, and notes any cited178 percentage/multiplier should be re-measured on the user's own workload179 before being used to plan a budget.180181## Failure modes & gotchas182183- **Routing on raw self-reported confidence.** It's unreliable and can be184 inversely correlated with correctness on the hard tail — the exact traffic185 the gate exists to catch.186- **Treating a learned router as fire-and-forget.** It degrades on187 out-of-distribution traffic and needs retraining whenever the model pool188 changes — budget for that as an ongoing cost, not a one-time setup.189- **Re-routing mid-session inside a tool-call loop.** Breaks cache locality190 and can invalidate in-flight tool sequences; re-route at boundaries only.191- **Conflating latency and cost fixes.** Parallel dispatch and hedging help192 wall-clock time; they do not reduce the tokens paid for. Don't sell a193 latency fix as a cost fix.194- **Trusting a single vendor/paper percentage as a planning number.** Every195 multiplier and discount cited here is order-of-magnitude and196 version-gated for a reason — re-measure on the actual workload before it197 goes into a budget.198- **Batching interactive traffic.** Batch API discounts only pay off for199 offline/eval workloads; applying them to low-traffic interactive calls200 just adds wait.201202## References203204- `references/routing-and-caching.md` — deeper routing, calibration,205 caching, and latency detail with citations.206207## Siblings208209- `llm-council-when` — decides whether to adopt a council at all.210- `llm-council-architecture` — designs the pipeline once a council is chosen.211- `llm-council-members` — picks council composition and diversity.212- `llm-council-aggregation` — combines member answers into one output.213- `llm-council-prompts` — writes stage-specific prompts (debate, synthesis).214- `llm-council-failure-modes` — defenses against conformity and collapse.215- `llm-council-harness` — headless CLI implementation of a council.