Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

rc-verdict

CI

Multi-agent collective decision-making via LLM expert panels.

rc-verdict assembles a panel of LLM "experts" — each wearing a distinct expertise hat with its own behavioral disposition — and drives them through a structured vote → debate → converge protocol mediated by a single overseer agent. Instead of trusting one model's first answer, you get a verdict with calibrated confidence, recorded dissent, and a fully auditable deliberation trace. It is a modular Python library (not a framework): plug in OpenAI, Anthropic, HuggingFace, Ollama — or the built-in MockBackend — and call it from any project.

📖 How the protocol works → docs/PROTOCOL.md


Installation

pip install rc-verdict                  # base package (includes MockBackend)
pip install "rc-verdict[openai]"        # or [anthropic], [huggingface], [ollama]
pip install "rc-verdict[dev]"           # development: testing, linting, coverage

Requires Python ≥ 3.11. Until the first PyPI release lands, install from source: pip install git+https://github.com/spidey99/rc-verdict


Quickstart

Run a full deliberation locally — no API keys needed:

import asyncio, json
from rc_verdict import Panel, VerdictConfig
from rc_verdict.backends.mock import MockBackend

vote = json.dumps({"position": "approve", "conviction": "high",
                   "evidence_quality": "high", "reasoning": "Analysis complete.",
                   "dissent_points": []})
config = VerdictConfig(default_backend="mock", min_panel_size=3, max_panel_size=3,
                       max_token_budget=50000, pool_experts_ratio=1.0)
panel = Panel(config, backend_factory=lambda provider="mock", **kw: MockBackend(responses=[vote] * 3))

result = asyncio.run(panel.deliberate("A caching PR with 92% test coverage.",
                                      "Should we merge this PR?"))
print(f"Decision: {result.decision}  Conviction: {result.confidence.conviction.value}")

With a real backend it is one call — experts are selected and generated for your question automatically:

from rc_verdict import deliberate

result = await deliberate("Should we open-source our ETL tool?")  # uses OPENAI_API_KEY
print(result.decision)
print(result.trace.to_markdown(verdict=result.verdict))  # full deliberation trace

See examples/ for more — custom experts, multi-backend routing, and more.


Core Architecture

┌─────────────────────────────────────────┐
│              CALLER / HOST APP          │
│  verdict = await panel.deliberate(input)│
└────────────────┬────────────────────────┘
                 │
        ┌────────▼────────┐
        │    OVERSEER     │  Mediates all rounds
        │  (single agent) │  Controls escalation
        └────────┬────────┘
                 │
     ┌───────────┼───────────┐
     │           │           │
 ┌───▼───┐  ┌───▼───┐  ┌───▼───┐
 │Expert │  │Expert │  │Expert │   3-7 panelists
 │  #1   │  │  #2   │  │  #3   │   Diverse hats
 │ "hat" │  │ "hat" │  │ "hat" │   + dispositions
 └───────┘  └───────┘  └───────┘

Protocol Flow

  1. Expert Selection — Overseer analyzes input context and selects relevant experts from:

    • A pool of pre-canned experts (YAML-defined domain specialists)
    • Dynamically generated experts — model-derived hats + dispositions tailored to the input
  2. Vote Round — Each expert independently casts a confidence-weighted vote

  3. Unanimity Check — All agree → verdict returned immediately (cheap path)

  4. Debate Round — If not unanimous:

    • Each expert's reasoning is shared with all others
    • Experts process peer reasoning and update positions
    • Overseer may inject clarifying questions
  5. Re-Vote — Experts vote again with updated reasoning

  6. Convergence — If still stuck after N rounds:

    • Elimination — Remove the expert with lowest confidence
    • Supermajority — Accept at ≥80% agreement threshold
    • Overseer Override — Synthesize a verdict from all reasoning
    • Deadlock — Return structured disagreement with all positions

Key Differentiators

Feature rc-verdict Typical MAD Why it matters
Expert pool (pre-canned + dynamic) ✅ ❌ Right experts for the problem
Escalation ladder (vote→debate→eliminate) ✅ ❌ Cheap when agreement is easy
Overseer-mediated rounds ✅ Partial Prevents drift, controls cost
Confidence-gated elimination ✅ ❌ Novel convergence mechanism
Modular library (not a framework) ✅ ❌ Call from any project
Heterogeneous model backends ✅ Rare Diversity > count (empirically proven)

Research Foundation

Design informed by 30+ papers (2023–2026) on multi-agent deliberation:

  • Debate-or-Vote (NeurIPS 2025): Voting alone captures most MAD gains; debate is a martingale without bias correction
  • Diversity of Thought (2024): Diverse model families outperform N copies of the same model
  • MARS (2025): Meta-reviewer pattern achieves MAD accuracy at 50% token cost
  • Demystifying MAD (Jan 2026): Confidence-modulated debate + diversity-aware initialization are the two interventions that actually work
  • MachineSoM (EMNLP 2023): LLM agents exhibit human-like social dynamics; personality traits affect collaboration

More Resources

  • examples/ -- Runnable scripts for common use cases
  • docs/PROTOCOL.md -- Protocol state machine and convergence strategies
  • docs/ -- Signal capture protocol and design documentation
  • LICENSE -- MIT

Status

🚧 Alpha — Core protocol working. All backends (OpenAI, Anthropic, HuggingFace, Ollama, Mock) implemented. See KICKOFF_PROMPT.md for the full implementation spec and RELEASE_CHECKLIST.md for the path to PyPI.

License

MIT

Metadata

Release files for rc-verdict 0.1.0a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rc-verdict 0.1.0a1
File Size Uploaded Provenance
rc_verdict-0.1.0a1.tar.gz 71.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for rc-verdict 0.1.0a1
File Interpreter ABI Platform
rc_verdict-0.1.0a1-py3-none-any.whl Python 3 none any Details

Total release size: 163.0 kB

Release files / rc_verdict-0.1.0a1.tar.gz

Download URL rc_verdict-0.1.0a1.tar.gz
Size 71.7 kB
Tags Source
SHA-256 checksum
How to use checksums
66e511342916eec1e03a9fca627baa7b4bf9868d131e76a1386722c731af98e2
BLAKE2b-256 checksum
How to use checksums
da33bb4119ca67316c0d6e46db4a96d1d14a5a5276b87818478a307ac394b7ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 13, 2026.

Transparency log

Release files / rc_verdict-0.1.0a1-py3-none-any.whl

Download URL rc_verdict-0.1.0a1-py3-none-any.whl
Size 91.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ddb722b07b8a0bb88e6f623c191adc1eb8d7e37adc0455c32bf8e44de2f3211
BLAKE2b-256 checksum
How to use checksums
928d1134f5f5fc7e25c78b1ad44077778901e5e600eda0eac5ed79b3b25d6408
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 13, 2026.

Transparency log

Security for rc-verdict 0.1.0a1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for rc_verdict-0.1.0a1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 13, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page