Skip to main content

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.

Metadata

Release files for vequil-sdk 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 vequil-sdk 0.2.0
File Size Uploaded
vequil_sdk-0.2.0.tar.gz 9.3 MB Details

Built distribution (wheel)

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

Total release size: 9.4 MB

Release files / vequil_sdk-0.2.0.tar.gz

Download URL vequil_sdk-0.2.0.tar.gz
Size 9.3 MB
Tags Source
SHA-256 checksum
How to use checksums
03055d170e12d9c5d3a19e7bc6a6c2d237d8a49d2f67e5883eb0b5f94eb6b2a7
BLAKE2b-256 checksum
How to use checksums
5ba36cdfadc83be645f07e435f579f12784da400f05c7885d7e59e92a786bd76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

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

Download URL vequil_sdk-0.2.0-py3-none-any.whl
Size 31.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57a3465a7bc1dd91ff369882849e53853b9589aeb7dcfd246f3c85c3f2769c84
BLAKE2b-256 checksum
How to use checksums
ce23e2db7f76f70f7f43001bea28862f120888c005a19d65b7b176a23511b412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

This release

0.2.0 This release

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