Vibeleaderboard
Index / agent
Visit github.com
Category
AI Agents
Rank
Pricing
Open Source
Type
AGENT
Builder
karpathy
Date

About

Andrej Karpathy's experiment: an ensemble of LLMs debating your hardest questions and arriving at a synthesized answer.

What it does

LLM Council is a local chat application that sends one prompt to several models through OpenRouter. It displays their separate answers, asks the models to assess anonymized peers, calculates aggregate placements, then has a designated chairman produce the response you read last.

Why it's ranked here

Its strongest case is transparency: users can inspect individual answers, raw peer evaluations, parsed placements, and the final synthesis. Parallel requests keep each collection phase practical. However, the author explicitly describes it as an unsupported experiment, so the architecture is more useful for exploration and adaptation than dependable production deployment.

What's good

Anonymized peer assessment is a concrete attempt to reduce favoritism toward named providers. Failed model requests are omitted while successful answers continue through the process. The interface exposes intermediate work instead of hiding it behind the final answer, making disagreements and parsing errors easier to spot.

Tradeoffs

Every message requires repeated paid OpenRouter requests across sequential stages, so the design adds cost and waiting compared with asking one model. Models are configured in code, conversations use local JSON files, and evaluation metadata is not persisted. The author promises no support or future improvement.

How to use it well

Use it for exploratory questions where comparing reasoning, disagreements, and peer judgments matters, including assisted reading or model evaluation. Inspect the source answers and evaluations before trusting the synthesis. It does not replace a maintained hosted service, durable analytics system, or production conversation platform.

Technical notes+

backend/main.py defines the FastAPI service, conversation endpoints, and an SSE streaming route on port 8001. backend/council.py runs parallel first responses, anonymizes them as lettered labels, parses free-text rankings with regular expressions, averages recorded positions, and sends all responses plus evaluations to the chairman. backend/openrouter.py uses async httpx requests and converts request failures to None. backend/storage.py writes one JSON document per conversation under data/conversations/, but ranking metadata returned by the API is not saved. frontend/src/api.js targets the fixed local backend URL and parses streamed events. backend/config.py hardcodes council members, the chairman, provider endpoint, and storage directory.

Observed

Languages
Python backend with JavaScript and JSX frontend
Install surface
uv manages Python dependencies; npm manages frontend dependencies
Interface
Local React and Vite web application backed by a FastAPI HTTP API
Provider requirement
Requires an OpenRouter API key and provider credits
Storage
Conversations are stored as local JSON files
Runtime requirement
Python 3.10 or newer

Read from README.md, pyproject.toml, main.py, backend/main.py, backend/config.py, backend/council.py, backend/storage.py, backend/__init__.py, backend/openrouter.py, frontend/vite.config.js, frontend/eslint.config.js, frontend/src/api.js, uv.lock, start.sh, CLAUDE.md.

What it can do

  • Facilitate multi-LLM debate on complex questions

    Difficult or complex question from userMultiple LLM perspectives and arguments

  • Synthesize consensus answer from LLM ensemble

    Debate outputs from multiple LLMsSingle synthesized answer or conclusion

  • Compare different LLM reasoning approaches

    Question or problem statementSide-by-side comparison of LLM reasoning methods

  • Generate diverse perspectives on controversial topics

    Contentious or multi-faceted questionMultiple viewpoints and reasoning chains

  • Validate answers through cross-LLM verification

    Initial answer from one LLMVerified or challenged answer with supporting evidence

Tags

llmensemblemulti-agentkarpathydebate

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.