Multi-agent collaboration through pairwise comparisons
Project description
Arbitron ⚖️
Arbitron is an agentic pairwise comparison engine. Multiple agents, each with unique value systems, evaluate items head-to-head and produce a set of pairwise comparisons that can be used to derive item's ranks and weights.
- Why pairwise? It's easier to compare two items than to assign absolute scores.
- Why multi-agent? Different models with different perspectives (system prompts) lead to more balanced, less biased outcomes.
✨ Features
- 🎯 Arbitrary Sets. Evaluate text, code, products, ideas
- 🤖 Customizable Agents. Specify custom personas, tools, providers
- 🛡️ Bias Reduction. Ensemble decision-making
- 🧩 Remixable — Join data with human labels and apply personalized heuristics
🚀 Quickstart
Running your first Arbitron "contest" is easy!
pip install arbitron
Setup your favorite LLM provider's API keys in the environment (e.g: OPENAI_API_KEY) and then run the following code.
import arbitron
movies = [
arbitron.Item(id="arrival"),
arbitron.Item(id="blade_runner"),
arbitron.Item(id="interstellar"),
arbitron.Item(id="inception"),
arbitron.Item(id="the_dark_knight"),
arbitron.Item(id="dune"),
arbitron.Item(id="the_matrix"),
arbitron.Item(id="2001_space_odyssey"),
arbitron.Item(id="the_fifth_element"),
arbitron.Item(id="the_martian"),
]
agents = [
arbitron.Agent(
id="SciFi Purist",
prompt="Compare based on scientific accuracy and hard sci-fi concepts.",
model="openai:gpt-5-nano",
),
arbitron.Agent(
id="Nolan Fan",
prompt="Compare based on complex narratives and emotional depth.",
model="openai:gpt-5-nano",
),
arbitron.Agent(
id="Critics Choice",
prompt="Compare based on artistic merit and cinematic excellence.",
model="openai:gpt-5-nano",
),
]
description = "Rank the movies based on their soundtrack quality."
comparisons = arbitron.run(description, agents, movies)
print(comparisons)
🏛️ License
MIT License - see LICENSE file for details.
🙌 Acknowledgments
- DeepGov and their use of AI for Democratic Capital Allocation and Governance.
- Daniel Kronovet for his many writings on the power of pairwise comparisons.
Margur veit það sem einn veit ekki. Many know what one does not know.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arbitron-0.5.0.tar.gz.
File metadata
- Download URL: arbitron-0.5.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04827c1e9e7d8bf7bc5d5864f874a5caf285ff9db417357412d2200017603471
|
|
| MD5 |
c14ccc25546fd73ae681f750eb362984
|
|
| BLAKE2b-256 |
18613bfbacbff8dcaacfed035e6bf476bf1d63d84e655a1e87944598b191c76a
|
File details
Details for the file arbitron-0.5.0-py3-none-any.whl.
File metadata
- Download URL: arbitron-0.5.0-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1588c1baeaa7f25594467b2f289ce87d9852f1227c52452b3a425c4a0ca2146c
|
|
| MD5 |
8c87545040bd17e981091359e6219a9f
|
|
| BLAKE2b-256 |
a5fef49ee500c2d7679b16ad1ed0af95bd2f3e5354236b675ad34428c6e6fe17
|