Skip to main content

Multi-agent prediction market trading framework. Deploy autonomous agent teams to trade prediction markets.

Project description

V E Q U I L

Multi-agent prediction market trading framework.

Build PyPI Python 3.11+ License Website Product Hunt


Install

pip install vequil

Quick Start

from vequil import Pipeline

pipeline = Pipeline(bankroll=500.0)
result = await pipeline.evaluate(
    "Will Liverpool win?",
    odds=0.65,
    model_prob=0.78,
)

print(result.recommendation)   # STRONG — edge=13.0%, kelly=20.0%
print(result.position_size_usdc)  # $100.00

CLI

# Scan top Polymarket markets by volume
vequil scan --limit 10

# Evaluate a specific opportunity
vequil evaluate "Will Liverpool win?" --odds 0.65 --model-prob 0.78

# Run a live demo (pulls real Polymarket data)
vequil demo

With Analyst Team (LLM debate)

import os
os.environ["ANTHROPIC_API_KEY"] = "sk-..."

from vequil import Pipeline

pipeline = Pipeline(bankroll=500.0, enable_analysts=True)
result = await pipeline.evaluate("Will Arsenal win?", odds=0.72)

# LLM analysts evaluate in parallel, bull/bear researchers debate
print(result.research.consensus_signal)  # "bullish"
print(result.research.bullish_case)
print(result.research.bearish_case)

What is Vequil?

Vequil is a multi-agent prediction market trading framework. Deploy autonomous agent teams to evaluate and trade prediction market opportunities with deterministic signal rules and Kelly-constrained risk management.

No learned models in the execution path. Every decision logged and auditable.

Vequil the framework is what you install. Vequil the firm is how we use it.


Architecture

    ┌─────────────┐  ┌──────────────┐   ┌──────────────────┐
    │  Feed Agent  │  │ Sports Agent │   │   Analyst Team   │
    │  tick stream │  │ match events │   │   LLM analysts   │
    └──────┬──────┘  └──────┬───────┘   │  bull/bear debate │
           ▼                │           └────────┬─────────┘
    ┌──────────────┐        │            soft context only
    │Feature Agent │        │           (never overrides Kelly)
    │ vol, z-score │        │                    │
    └──────┬───────┘        │                    │
           ▼                ▼                    ▼
    ┌──────────────────────────────────────────────────┐
    │              DETERMINISTIC DECISION               │
    │  features → closed-form rule → probability shift  │
    │  NO learned model · NO curve fitting              │
    └──────────────────────┬───────────────────────────┘
                           ▼
    ┌──────────────────────────────────────────────────┐
    │                Scanner Agent                      │
    │  Polymarket CLOB → match opportunities → score    │
    └──────────────────────┬───────────────────────────┘
                           ▼
    ┌──────────────────────────────────────────────────┐
    │                  Risk Agent                       │
    │  Kelly criterion · position limits · breaker      │
    └──────────────────────┬───────────────────────────┘
                           ▼
    ┌──────────────────────────────────────────────────┐
    │              Execution Agent                      │
    │  paper / live modes · full order audit trail       │
    └──────────────────────────────────────────────────┘

Repository Structure

vequil/                        pip package (what you install)
├── __init__.py                public API
├── pipeline.py                Pipeline — the main evaluation API
├── cli.py                     CLI entry point (vequil scan/evaluate/demo)
├── core/
│   ├── models.py              frozen dataclasses — Tick, Signal, Order, etc.
│   ├── kelly.py               Kelly criterion with fractional cap
│   └── pricing.py             deterministic signal rule
└── agents/
    ├── analyst_team.py        LLM analysts + bull/bear researcher debate
    ├── feed_agent.py          dual exchange WebSocket feed
    ├── feature_agent.py       rolling features: vol, return, jump, z-score
    ├── sports_agent.py        live sports event feed
    ├── scanner_agent.py       Polymarket CLOB matching + edge scoring
    ├── risk_agent.py          position limits, drawdown circuit breaker
    └── execution_agent.py     paper/live orders, SQLite persistence

trading/                       internal orchestration
tests/                         22 tests, all passing
web/static/                    vequil.com

Risk Controls

Control Description
Kelly cap Fractional Kelly with configurable cap
Min edge Minimum edge threshold to enter
Max positions Concurrent position limit
Position cap Per-position dollar limit
Circuit breaker Halts trading on daily drawdown
Live gate Disabled until validated performance threshold

Environment Variables

Variable Required Description
ANTHROPIC_API_KEY No Enables LLM analyst team
API_FOOTBALL_KEY No Live sports event data
EXECUTION_MODE No paper (default) or live
BANKROLL_USDC No Starting bankroll (default: 500.0)

Contributing

We're hiring agent systems engineers, quantitative researchers, and LLM architects. See vequil.com/careers.


Deterministic execution. Kelly-constrained risk. Every trade auditable.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vequil_sdk-0.2.0.tar.gz (9.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vequil_sdk-0.2.0-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file vequil_sdk-0.2.0.tar.gz.

File metadata

  • Download URL: vequil_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 9.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for vequil_sdk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 03055d170e12d9c5d3a19e7bc6a6c2d237d8a49d2f67e5883eb0b5f94eb6b2a7
MD5 dbf986d219a9bf32219d3dc57f19db4f
BLAKE2b-256 5ba36cdfadc83be645f07e435f579f12784da400f05c7885d7e59e92a786bd76

See more details on using hashes here.

File details

Details for the file vequil_sdk-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: vequil_sdk-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for vequil_sdk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57a3465a7bc1dd91ff369882849e53853b9589aeb7dcfd246f3c85c3f2769c84
MD5 0db714554e5686c88b99b5f7cf3597fa
BLAKE2b-256 ce23e2db7f76f70f7f43001bea28862f120888c005a19d65b7b176a23511b412

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page