V E Q U I L
Multi-agent prediction market trading framework.
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)
| File | Size | Uploaded | |
|---|---|---|---|
| vequil_sdk-0.2.0.tar.gz | 9.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|