checking service…

One model tells you what you want to hear.
Two will argue.

Send a question to two frontier models independently, then make each review the other's answer — and its own. You get the disagreements, the retractions, and a durable record of the exchange.

Entry · design consultation · both models, same prompt

First position

“Pick a known counterexample — the exact 3×3 matrix that disproved the Bessis–Moussa–Villani conjecture in 2013.”

fluent · specific · dated · wrong

Correcting entry

BMV was proved true by Herbert Stahl. There is no counterexample to rediscover.

Caught on the next call. Cost of catching it: one extra round. Cost of missing it: a search hunting something that cannot exist.

The problem

Confidently wrong is the expensive failure

A single model returns a fluent, plausible, well-formatted answer whether or not it is correct. Nothing in the output distinguishes the two cases. You find out downstream, after you have built on it.

Step one

Independent

Neither model sees the other's answer before writing its own. Contaminate that and you get agreement instead of review.

Step two

Adversarial

Each model is then shown both answers, labelled, and asked where it was wrong. Self-correction is the highest-signal section it produces.

Step three

Disagreement

Where they agree, you can move. Where they split, you know exactly which claim to check before building on it.

How it works

Three modes, escalating rigour

Pick by how expensive it would be to be wrong.

ModeCallsTypicalUse when
fanout21–4 min Two independent answers, and you will read both.
synthesis32–6 min One answer, with conflicts ruled on and flagged.
debate44–10 min The answer matters. Each model audits the other — and itself.

What debate returns

  1. A Where it was wrong itself
  2. B Where the other is wrong
  3. C The genuine disagreements, with a ruling
  4. D The merged recommendation
  5. E What both of them missed

Section E earns its keep

Asking two models what they both failed to raise reliably surfaces the point neither volunteered. In our own use it produced the design insight this project now runs on.

Proof of process

Review you can show someone later

A verbal “we checked it with AI” is not evidence. Every consultation is written down: the exact prompt, both independent answers, every critique, model identifiers, token counts, and timestamps to the millisecond — durable across restarts and redeploys.

Attributable

Which model, which version, what it actually said — not a summary of what someone remembers it saying.

Timestamped

Submitted, started, finished, duration. The record shows when the review happened relative to the decision.

Reviewable

Retrievable by ID for as long as you retain it. The dissent is preserved, not just the conclusion.

That record is the product as much as the answer is. It turns “we considered the alternatives” into something a reviewer, an auditor, or your future self can actually inspect.

Integration

A small API you can hold in your head

Submit, poll or subscribe, read. Consultations are asynchronous because a high-effort review takes minutes, not milliseconds.

# submit — returns immediately with a job id
curl -X POST https://council.smartledger.app/v1/consult \
  -H "Authorization: Bearer $COUNCIL_TOKEN" \
  -H 'content-type: application/json' \
  -d '{"mode":"debate","prompt":"Shard by tenant or by region?"}'

# {"job_id":"04961d7b-…","state":"queued","poll":"/v1/jobs/04961d7b-…"}

curl https://council.smartledger.app/v1/jobs/04961d7b-… \
  -H "Authorization: Bearer $COUNCIL_TOKEN"

Nothing fails silently

If reasoning consumes the whole token budget and the model emits no text, the call fails loudly with the reason — instead of handing you an empty answer that looks like a result.

One vendor down ≠ request down

A failing provider gets an error field; the other model's answer still comes back.

Comparable token counts

Providers disagree on whether reasoning belongs in the output count. We normalise it, so cost is actually addable.

Full reference — every endpoint, job states, WebSocket events, token budgeting and the operations runbook: API guidance →

Access

Pricing

Currently in private deployment. Indicative while we onboard early teams.

Evaluation

Free / limited
  • 50 consultations per month
  • fanout mode
  • 7-day record retention
  • Shared rate limit
Start evaluating
Most teams

Team

Usage + platform fee
  • All three modes
  • 30-day record retention
  • WebSocket streaming
  • Normalised cost reporting
  • Bring your own provider keys
Request access

Audit

Custom
  • Indefinite retention
  • Exportable review records
  • Dedicated deployment
  • Additional model vendors
  • Data residency options
Talk to us

Provider inference is billed through at cost — a debate makes four upstream calls, and reasoning tokens usually dominate. Bring your own keys on Team and above and you pay your providers directly.