A thousand starlings, one flock. A thousand agent opinions, one trustworthy number.
Landing: oracles.modelmarket.dev · Ecosystem: modeldev.modelmarket.dev · Oracle family: oracles Murmuration is an oracle in the family that turns a noisy crowd of agent-submitted estimates into a single, breakdown-resistant consensus value. A naive average can be hijacked by one adversarial or faulty submission; Murmuration cannot. It combines three classical robust location estimators with a DeGroot distributed-consensus simulation on a complete graph that provably converges to the arithmetic mean — the mathematical analogue of a starling murmuration tightening into one cluster.
Every answer ships with a signed AIMarket v2 receipt, so consuming agents can verify the result was produced by this oracle without trusting it.
flowchart TD
subgraph Swarm["Agent swarm"]
A1["agent 1<br/>estimate"]
A2["agent 2<br/>estimate"]
A3["agent 3<br/>estimate"]
AX["… (one adversarial)"]
end
Swarm -->|"values[]"| INV["/ai-market/v2/invoke<br/>murmuration.aggregate@v1"]
INV --> R["Robust estimators<br/>median · trimmed mean · Tukey biweight"]
INV --> D["DeGroot consensus<br/>x ← W·x on complete graph"]
R --> OUT["consensus envelope<br/>+ signed receipt"]
D --> OUT
OUT -->|"verifiable result"| CONSUMER["consuming agent"]
subgraph Family["Oracle family (shared oracle-core)"]
CH["Chronos · VDF"]
ME["Murmuration · consensus"]
PL["Platon · dynamics"]
end
INV -. "same AIMarket v2 surface" .- Family
Murmuration sits beside Chronos (verifiable delay / ordering) and Platon
(dynamical-systems oracle) — all three are built on the same oracle-core and
expose an identical signed AIMarket v2 surface (/.well-known/ai-market.json,
/ai-market/v2/manifest, /ai-market/v2/invoke).
- Median — 50% breakdown point; the single most robust statistic.
- Trimmed mean — drop the lowest/highest
trimfraction, average the rest; a tunable robustness/efficiency dial. - Tukey biweight location — a redescending M-estimator solved by iteratively
reweighted least squares: points beyond
cscaled MADs from the centre get exactly zero weight, so far outliers cannot influence the fit at all. - DeGroot consensus — iterate
x ← W·xwith the row-stochastic complete-graph averaging matrixW = (1/n)·11ᵀ. Each step broadcasts the current mean to every agent; the spread collapses and the process converges to the arithmetic mean. We return the converged value and the iteration count.
Full derivations live in docs/en.md ·
docs/ru.md · docs/es.md.
| Capability | What agents buy | Price |
|---|---|---|
murmuration.aggregate@v1 |
A single robust consensus number from a list of submitted estimates — median, trimmed mean, Tukey biweight, and the DeGroot-converged value (with iteration count). Outlier- and Byzantine-resistant. | $0.002 / call |
Input { "values": [float, …] (≥1), "trim": float = 0.1 }
Output { "n", "median", "trimmed_mean", "biweight", "converged_value", "iterations" }
- Oracle-of-oracles price feed. A buyer agent queries five independent price oracles, then calls Murmuration to fuse them into one quote that a single manipulated or stale feed cannot move.
- Byzantine-resistant model ensembling. Several model agents each predict a probability; the biweight location discards the rogue prediction and returns a defensible consensus the downstream agent can act on.
- Decentralized sensor / measurement fusion. Field-deployed agents report a reading; the trimmed mean rejects malfunctioning sensors before the swarm acts.
- Reputation / scoring settlement. Many raters submit scores; the median and DeGroot value give a tamper-resistant settled score with an auditable receipt.
curl -s http://localhost:9302/ai-market/v2/invoke \
-H 'content-type: application/json' \
-d '{
"capability_id": "murmuration.aggregate@v1",
"input": { "values": [10.0, 10.1, 9.9, 10.2, 9.8, 10.05, 9.95, 10.15, 9.85, 10.0, 10000.0], "trim": 0.1 }
}' | python -m json.toolThe robust estimators (median, trimmed_mean, biweight) all return ~10.0 —
not dragged toward 10000 by the adversarial submission — wrapped in a signed
receipt + provenance. (converged_value is the DeGroot/arithmetic mean, which is
pulled by the outlier; compare it against the robust estimators to spot poisoning.)
Fetch the signed manifest with:
curl -s http://localhost:9302/ai-market/v2/manifest | python -m json.toolpip install ./core
pip install -e "./oracles/murmuration[dev]"
python -m murmuration.main # serves on :9302
# tests
cd oracles/murmuration && python -m pytest tests -qA live cosmic visual ships in frontend/index.html: a flock
of boids (points with velocity) on a dark starfield gradually converging into one
tight cluster — the converging centroid is the consensus value. Pure <canvas>
- vanilla JS, no build step. Just open the file in a browser.
MIT licensed · part of the oracle family on shared oracle-core.