Skip to main content

AuctionSI

Let agents compete to solve the work.

AuctionSI is an open-source marketplace and auction framework for autonomous agents. Instead of a central orchestrator choosing which agent does a task, the task is announced to a market, capable agents bid, an auction mechanism picks the winner, and the work is contracted, executed, verified, settled and fed back into reputation.

Task → discovery → bids → auction → winner → contract → execution
     → verification → settlement → reputation

Agents can be Python functions, HTTP services, solvers, ML models, humans, LLMs or simulations. Nothing requires an LLM, an API key or a cloud service. Everything runs locally, and simulations are deterministic when seeded.

The auction mechanism, the winner-selection policy, the bidding strategy, the verifier, the settlement policy, the reputation system and the experiment are all plugins.

Install

pip install auctionsi           # Python 3.11+
pip install -e ".[dev]"        # from a clone, for development
pip install "auctionsi[plotly]"  # optional figures
pip install "auctionsi[api]"     # REST/WebSocket API and web dashboard
pip install "auctionsi[postgres]" # PostgreSQL store

Quick start

from auctionsi import Marketplace, PythonFunctionAgent, RecoveryPolicy, Task
from auctionsi.verification import ExactMatchVerifier

def right(task, contract):
    return {"answer": 42}

def wrong(task, contract):
    return {"answer": 41}

market = Marketplace(
    verifier=ExactMatchVerifier(42, key="answer"),
    recovery=RecoveryPolicy(next_best=1),
)
market.register(PythonFunctionAgent("agent-a", right, capabilities=["qa"], price=0.05))
market.register(PythonFunctionAgent("agent-b", wrong, capabilities=["qa"], price=0.07))
market.register(PythonFunctionAgent("agent-c", wrong, capabilities=["qa"], price=0.03))

result = market.submit_task(Task(task_id="task-001", task_type="qa", budget=0.10))
print(result.explain())                 # ranking with per-term score contributions
print("\n".join(result.trace()))        # every lifecycle event
assert result.winner == "agent-a"       # C was cheapest, failed verification, A took over

What is in v0.2

area contents
Mechanisms first-price (pay-as-bid), second-price (critical value), multi-winner (pay-as-bid or uniform), open descending with bid revisions, forward auctions with reserve prices, bundle (combinatorial) auctions with exact winner determination, capacity (multi-unit) procurement
Selection lowest price, highest quality, lowest latency, weighted score, risk-adjusted cost, reputation-adjusted cost, exploration bonus; every score is broken into named contributions
Bids multi-dimensional (price, latency, quality, cost, confidence, capacity, validity); validated with structured rejection reasons; optional HMAC signatures bound to agent, auction and task; bid and execution timeouts
Verification schema, exact match, tolerance, metric threshold, unit tests, composite, human approval; quality score always derived from checks
Settlement pay on pass (penalties, late penalties, bonuses), quality-proportional, partial payment; direction-aware for forward auctions
Reputation per agent and per task type: success, quality, timeliness, estimate calibration, violations; no/exponential/rolling decay; calibration reports (claimed vs delivered)
Recovery retry, fail over to backup bids, re-open the auction
Observability immutable events, traces, JSON logs, counters, SQLite or PostgreSQL persistence, deterministic replay
Simulation synthetic agents/tasks, 13 bid strategies including a learning (bandit) bidder, market dynamics, collusion/Sybil/misreporting, market metrics (HHI, Gini, surplus, efficiency, collusion screens...)
Experiments YAML configs, adversaries and mid-run changes in config, factorial sweeps, common random numbers, CIs, paired tests with Holm adjustment, run manifests, Markdown reports
Adapters Python function, HTTP, OpenAI-compatible (optional), human-in-the-loop
Interfaces CLI, REST/WebSocket API with API-key auth (auctionsi serve), web dashboard

Not in v0.2 (see the roadmap): distributed execution, agent protocol interoperability, a stable public API.

API and dashboard

pip install "auctionsi[api]"
auctionsi serve --port 8000                  # http://127.0.0.1:8000
AUCTIONSI_API_KEY=... auctionsi serve --host 0.0.0.0   # set a key beyond localhost (warns if unset)

The dashboard shows the market overview, agents with reputation, auctions with bids, scores and traces, live events, simulations, calibration and experiment results. The API exposes the same data plus staged auctions for external bidders (POST /api/auctions, /bids, /close); see docs/api.md.

Simulate and experiment

from auctionsi.experiments import compare_mechanisms
from auctionsi.mechanisms import FirstPriceReverseAuction, SecondPriceReverseAuction

result = compare_mechanisms(
    [FirstPriceReverseAuction(), SecondPriceReverseAuction()],
    environment={"agents": {"count": 20}, "tasks": {"count": 100}},
    replications=5,
    seed=42,
    metrics=["total_cost", "completion_rate"],
)
for c in result.comparisons():
    print(c.metric, c.treatment, round(c.mean_diff, 4), (round(c.ci_low, 4), round(c.ci_high, 4)))
auctionsi market simulate --agents 100 --tasks 1000 --seed 42
auctionsi experiment run research/experiments/mechanisms.yaml

Ten reproducible experiments (mechanisms, market size, reliability, reputation, reputation decay, strategies, learning bidders, concentration, collusion screens and a factorial sweep) with their reports are in research/. All results there come from synthetic markets and say so.

Examples

examples/: data-analysis (fail-over after deterministic checks), SQL (queries executed against a read-only test database), scheduling optimisation (constraint and objective checks), research reports (structure and citation checks), compute capacity (constraints and multi-winner uniform pricing), and a simulated collusion experiment. python scripts/run_examples.py runs them all.

Benchmarks

Measured on an Apple-silicon laptop, Python 3.12 (details and method in benchmarks/):

scenario agents tasks auctions/s bids/s peak MB
A 10 100 4,789 11,734 0
B 100 1,000 2,413 19,310 2
C 1,000 10,000 470 22,681 17

Documentation

docs/: concepts, architecture, mechanisms (with assumptions and limitations), selection, simulation and metrics, extending, CLI, API, and security.

Roadmap

  • v0.1 core marketplace
  • v0.2 (this release) forward, bundle and capacity auctions; learning bidders; factorial experiments, adversaries and mid-run changes in config; calibration; signed bids and timeouts; PostgreSQL; REST/WebSocket API and dashboard
  • next scoring auctions and reserve-price variants for reverse auctions, stronger collusion detection (per-auction screens), distributed execution, agent protocol interoperability
  • v1.0 stable public API

No dates are promised.

Contributing and licence

See CONTRIBUTING.md and CODE_OF_CONDUCT.md. MIT licensed (LICENSE, NOTICE).

Metadata

Release files for auctionsi 0.2.0

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

Source distribution (sdist)

Source distribution for auctionsi 0.2.0
File Size Uploaded
auctionsi-0.2.0.tar.gz 237.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for auctionsi 0.2.0
File Interpreter ABI Platform
auctionsi-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 467.5 kB

Release files / auctionsi-0.2.0.tar.gz

Download URL auctionsi-0.2.0.tar.gz
Size 237.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8111256cceb07be94726ab614a9ececf7db7106f50eb5a9928813362fd67c645
BLAKE2b-256 checksum
How to use checksums
6706018adecf3f803b58763900ffa531216563a5b0909d61a7a27cd5fa89200e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 3, 2026.

Transparency log

Release files / auctionsi-0.2.0-py3-none-any.whl

Download URL auctionsi-0.2.0-py3-none-any.whl
Size 229.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af18eb8b2988721eb0386a2752c4fb9792f46ba322308a26ee6f11d3d92a04d7
BLAKE2b-256 checksum
How to use checksums
4c00349b803f35b569da086fcee13b5ffb9936f4d9c792062d3a7b5dc9e19538
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

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