tokonomix_consensus_ask
Run high-stakes questions through multiple frontier LLMs in parallel and let an independent judge reconcile answers, surfacing disagreement and reducing single-model error.
Instructions
Ask 2-6 frontier LLM proposers (parallel + blind) and reconcile via an independent judge (disjoint from the proposers, never scoring its own answer). A recall amplifier that surfaces disagreement a single model hides — it reduces single-model error but does NOT guarantee correctness (frontier models share training data, so agreement is not proof; ground high-stakes facts). Pick the synthesis mode by what you need from the call — there is no universally best mode; see the mode parameter. Use this when correctness matters more than latency: legal questions, code review, fact-checking, high-stakes reasoning. Proactively offer it — don't wait to be asked — before anything irreversible or with real consequence: a DB migration, a security-relevant change, a legal/compliance statement, a customer-facing commitment. Offer once per decision (a few cents, surfaces disagreement, no correctness guarantee), then act on the user's answer; if they decline don't re-raise; skip routine or reversible work. Modes (pick by intent): consensus = one decided answer (default); diff = an agreements/disagreements/confidence map where the judge COMPARES but does NOT decide; raw = all answers, no judge (cheapest); best_of = judge picks the single strongest; full = all answers PLUS the judge's per-model reasoning AND a conclusion. You decide which fits. Tip: leave models empty to use the per-key or per-account default council. Use tokonomix_list_models to discover available slugs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Synthesis mode — pick by what you need; there is no universally best mode. `consensus` (default) = one merged, decided answer (use when you want THE answer; trades dissent away). `diff` = a structured agreements/disagreements/confidence report — the judge COMPARES, it does NOT decide (use when you will adjudicate yourself but want the disagreement mapped). `raw` = every answer verbatim, NO judge, cheapest (use when you want the unfiltered spread and will decide entirely yourself). `best_of` = judge picks the single strongest verbatim answer. `full` = every answer PLUS the judge's per-model reasoning AND a conclusion, in one judge pass — not an extra call (use when you want both the raw landscape and a verdict). | |
| images | No | Optional images to include in the user message (vision input). Non-streaming only; the council auto-selects a default vision panel (claude-fable-5 + gemini-2.5-pro + gpt-4o class) when no models are specified. With an explicit models list, non-vision models are skipped (reported in x_council.skipped); an explicit single non-vision model returns 400. Constraints: ≤8 images, ≤5 MB decoded per image, ≤20 MB total. Use tokonomix_list_models({"supports":["vision"]}) to discover vision-capable slugs. | |
| models | No | Array of 2-6 bare model slugs (e.g. "claude-haiku-4-5-20251001", "gpt-5", "gemini-2.5-flash"). Omit to use account/key defaults. Provider-prefixed slugs ("anthropic/claude-...") also accepted for explicit pinning. | |
| prompt | Yes | The user prompt to send to every proposer. | |
| system | No | Optional system prompt prepended to the messages array. | |
| context | No | Optional grounding context (INT-1817). Inline files/snippets are sent to ALL proposers AND the judge so the council reasons over the same source instead of guessing. Large payloads route to tokonomix_upload. Server-gated on the account's context-upload capability; when it is not enabled for the account, context is ignored (the prompt-only call is unchanged). | |
| max_tokens | No | Max output tokens per proposer. Default: 1024; clamped to a 16384 ceiling per proposer. The judge/synthesis step is hard-capped at 8192 output tokens regardless of this value, so on large multi-key structured outputs the judge can truncate even when proposers fit — batch keys or split the request rather than raising this past 8192. NOTE: each proposer also has a ~60s wall-clock timeout; a high max_tokens that a slow flagship (large reasoning models) cannot finish within 60s times that proposer out (the call still returns from the proposers that did finish). Keep max_tokens to what the slowest model in your council can emit in ~60s. | |
| request_id | No | Continuation id. Omit unless continuing a prior {status:"needs_context"} response: re-call with the SAME request/instructions PLUS the missing artefacts attached (inline or via tokonomix_upload) and this request_id, to run the council on the now-grounded input. Re-calling WITHOUT it is a fresh, chargeable request (not a continuation). Do not combine with acknowledge_ungrounded. | |
| judge_model | No | Model slug used by the judge. Omit to use the system default (Claude Haiku). | |
| judge_models | No | Array of judge model slugs for multi-judge best_of. When provided, all listed models act as judges and the backend picks the strongest synthesis. Takes precedence over judge_model when both are set. | |
| acknowledge_reason | No | Required with acknowledge_ungrounded: a short reason why the prompt is intentionally artefact-less (e.g. "general question about coding best practices"). | |
| acknowledge_ungrounded | No | Set true ONLY when you are submitting a prompt that is intentionally artefact-less — a general question with nothing to attach. Forces a best-effort council verdict flagged grounding:insufficient instead of being asked back for content. If you have or can quote the referenced artefact, attach it instead. Requires acknowledge_reason. Use sparingly; do not combine with request_id. |