The multi-agent system that runs everything else -- and the discipline that keeps it honest.
41agents
67tools
207souls
7528tests
5inference providers
Observe → Score → Discard → Surface
Most of what it sees, it throws away.
Each agent observes, scores against its standing goal, discards the overwhelming majority, and surfaces only what survives -- thousands of times a day, with no one watching. It is the loop many agents share; others do the work in the wall above.
OBSERVE
SCORE
SURFACE
Not chatbots waiting for a prompt
Everything one system does -- as a single wall.
Skim it as texture; hover or tap any tile for what that piece actually does. Five families -- Watch, Think, Make, Govern, Evolve.
Scan & surface
score, discard, surface
Scan & surface
The core loop: watch feeds, the corpus and the other agents, score against the standing goal, discard the noise, surface only survivors -- thousands of times a day.
the heartbeatcontinuous
Read prediction markets
market-implied odds
Read prediction markets
A no-LLM reader pulls live prediction-market positions into a desk note that rides the Observatory digest.
polymarket oracledaily
Track readership
reads to lenses
Track readership
Attributes anonymous Cloudflare analytics back to the lenses and personas that wrote each piece. Measurement only, no personal tracking.
Cloudflare RUMdaily
Watch the macro
regime from FRED
Watch the macro
Pulls DGS10, T10Y2Y, NFCI, and UNRATE from FRED each run to derive a coarse macro regime -- risk-on, neutral, or risk-off -- that rides the daily briefings.
FRED macrodaily
Watch smart money
insider + 13F flow
Watch smart money
Reads Finnhub Form-4 insider net direction and yfinance 13F holder-direction to produce a coarse accumulating/neutral/distributing tier alongside the momentum composite.
Finnhub / yfinanceper-run
Ingest market data
prices, ratios, factors
Ingest market data
Fetches price momentum, valuation ratios (pe/pb/fcf), and factor data from FMP and yfinance; falls back to a yfinance second pass when primary data returns a 402.
yfinance / FMPper-run
Cross-ref clinical trials
live trial registry
Cross-ref clinical trials
Queries ClinicalTrials.gov (via MCP + recognised search domain) as a live cross-reference for the medical / pharma signals -- e.g. the freq_pharma cluster -- during validation. A cross-reference, not a corpus-wide battery step.
ClinicalTrials.gov MCPper pharma signal
ENSO / climate data
cached climate indices
ENSO / climate data
Cached NOAA teleconnection indices (ONI / ENSO phase, AMO, NAO, PDO) that climate-adjacent Observatory signals draw on, re-fetched by the validators on a freshness window.
NOAA cachecached
FAO / agri data
cached food-price data
FAO / agri data
Cached FAO Food Price Index and USDA crop data that food-system and inflation signals cross-reference, re-fetched by the validators on a freshness window.
FAO / USDA cachecached
Notice convergence
near-threshold signals
Notice convergence
Scans dossiers daily for signals close to the next Whewell tier, surfacing them as a prioritised candidate queue so the operator can commission the right follow-up research.
observatory candidatesdaily
Detect drift
freshness gates
Detect drift
Age-gates validation data against configurable staleness thresholds and flags signals whose evidence base has not been refreshed within the expected cadence.
freshness gatescontinuous
Web search
on-demand retrieval
Web search
Issues structured web searches via Tavily on demand -- during research plans, validator runs, and cross-reference steps -- with results attributed in provenance logs.
Tavilyon-demand
Web fetch
direct source pull
Web fetch
Fetches full page content from a target URL when a search surface alone is insufficient; used by validators and the claim-verification step.
fetch MCPon-demand
VIX / vol series
cached vol data
VIX / vol series
A cached VIX / VIX3M / VVIX series the Observatory's market-timing signals draw on as a volatility-regime input, re-fetched by the validators.
cached vol datacached
COT positioning
cached CFTC data
COT positioning
A cached CFTC Commitments-of-Traders dataset (1986-present) that futures-positioning signals cross-reference; re-fetched by the validators, not polled live.
CFTC cachecached
Credit spreads
cached risk gauge
Credit spreads
Cached FRED credit-spread series the macro signals reference as a risk-appetite input, re-fetched on validator runs (distinct from the live FRED regime above).
FRED cachecached
Cycle inputs
cached cycle data
Cycle inputs
Cached labelled cycle-phase datasets (e.g. SILSO sunspot number, lunar-node tables) the Observatory's periodicity signals are anchored to.
cached datasetscached
Dedupe GUIDs
seen-before check
Dedupe GUIDs
Each agent maintains a seen_guids store so duplicate feed items, repeated commissions, and re-delivered events are filtered before any processing begins.
seen_guidscontinuous
Scout patents
IP landscape watch
Scout patents
A weekly patent-scout agent searches recent filings in configured technology domains and surfaces findings as structured research candidates.
patent-scout-001weekly
Probe coverage
source availability check
Probe coverage
Runs coverage probes against external data sources before committing to a design that depends on them -- a pre-build step that surfaced, for example, the unavailability of a free congressional-trades source.
pre-build probeper-source
Decompose queries
query to sub-problems
Decompose queries
Breaks an incoming research question into typed sub-queries routed to specialist analysts, with a contradiction-first path that maps disagreement before synthesis.
query_decomposerper-query
Run research plans
multi-step reasoning
Run research plans
Executes multi-step plans -- decompose, gather, cross-check, synthesise -- rather than answering in a single pass.
observatory_convergenceper-cycle
Synthesise domains
cross-domain merge
Synthesise domains
Merges outputs from parallel analyst lanes into a single coherent synthesis, deduplicated and attributed, with every source provenance rendered in the digest.
llm_synthesiseper-plan
Falsify signals
designed to kill
Falsify signals
Every candidate signal is run against a battery designed to falsify it; the ones that die are published on the kill list, not buried -- about one in six is killed outright.
falsification batteryper-candidate
Monte-carlo battery
bootstrap significance
Monte-carlo battery
Battery 1 runs a Monte Carlo permutation test to establish whether the observed effect survives chance at the configured alpha, with results stored flat in validator_results.json.
battery 1per-signal
Held-out battery
out-of-sample check
Held-out battery
Battery 2 tests signal persistence on a held-out time window not used during discovery, guarding against in-sample over-fit.
battery 2per-signal
Robustness battery
sensitivity analysis
Robustness battery
Batteries 3 and 4 probe robustness by varying key model assumptions and checking whether the effect survives plausible alternative specifications.
battery 3/4per-signal
Detect clustering
echo not confirmation
Detect clustering
Flags citations that cluster by domain, time window, or text similarity as narrative echo, not independent confirmation.
domain/time/Jaccardper-query
Verify claims
source-anchored check
Verify claims
Traces each factual claim back to a cited source, runs lexical and semantic matching against the retrieved text, and records the pass/fail verdict in a provenance log.
claim-verificationper-claim
Build dossiers
structured evidence file
Build dossiers
Assembles and maintains a dossier.json for each signal in the corpus, accumulating evidence layers, verdicts, battery results, and cross-references in a single queryable record.
dossier.jsonper-signal
Debate contradictions
adversarial reasoning
Debate contradictions
When the query decomposer detects conflicting sub-findings, a debate module stages the contradiction explicitly before the mediator synthesises a resolution.
disagreement_mapper-query
Mediate debates
resolve disagreements
Mediate debates
A mediator node weighs the debate output, names the strongest and weakest positions, and produces a reconciliation that the writer can use as a grounded foundation.
mediatorper-debate
RALPH cycles
iterative refinement
RALPH cycles
The RALPH engine runs configurable reflection-and-correction cycles on an initial answer, checking for factual drift and strengthening the evidence basis before final output.
RalphEngineper-run
Map mechanisms
cross-cluster links
Map mechanisms
A quarterly script maps mechanistic connections between signal clusters, surfacing tier-S convergence candidates where multiple independent lines point to the same underlying mechanism.
cross_cluster_mechanism_mapquarterly
Score & route
conditional dispatch
Score & route
A supervisor node scores the current state and selects the next graph branch -- debate, writer-critic, or output -- based on evidence quality and policy thresholds.
supervisorper-node
Rank candidates
momentum, value, catalyst
Rank candidates
The finance ranker screens a universe of equities on momentum, valuation, and catalyst factors, ranks by composite score, and deep-dives the top picks using enriched data.
finance_rankerper-run
Whewell ceiling
evidence-tier cap
Whewell ceiling
Enforces the Whewell verification ceiling: a signal's verdict tier is capped by the highest Whewell criterion it has actually satisfied, preventing inflation by narrative alone.
verdict capper-signal
Tier signals
A / B / C classification
Tier signals
Classifies each validated signal into a publication tier (static/attested, teaser-eligible, gated proprietary) that governs what content the pipeline can generate from it.
validation tiersper-signal
Embed & retrieve
semantic search
Embed & retrieve
FastEmbed runs locally to embed signals, personas, and story seeds; FAISS indexes enable cosine-similarity retrieval without any external embedding API call.
FastEmbed / FAISScontinuous
Detect bias
scoring-bias check
Detect bias
A lightweight check on every agent heartbeat flags when the recent scoring distribution shows signs of confirmation bias, surfacing the warning in structured logs.
scoring_biascontinuous
Recall across sessions
cross-thread grounding
Recall across sessions
Agents ground their planning in relevant history from prior conversations and prior runs, not just the current context window -- retrieved by meaning, not by keyword.
cross-thread memoryper-plan
Write digests
recurring briefings
Write digests
Composes and delivers recurring briefings -- markets Mon/Wed/Fri, platform health daily, the AI landscape -- each behind a leak-proof synthesis prompt.
portfolio/doctor agentsscheduled
Commission news
story to publication
Commission news
Picks the day's most significant story under a topic-diversity gate, commissions perspectives across dozens of personas and lenses, runs a quality gate, and publishes to Angles & Footnotes.
A&F runnerdaily
Run the debate
multi-voice argument
Run the debate
Stages a structured multi-persona debate on a news story, surfacing genuine disagreement across lenses before the mediator synthesises the final published piece.
debate moduleper-story
Publish papers
long-cycle research
Publish papers
The Institute publication pipeline takes Observatory signals through LLM drafting, an attribution gate, a per-paragraph operator review, and atomic Hugo publication to consiliences.com.
the Institutelong-cycle
Publish essays
Phronopolis output
Publish essays
Generates and publishes stand-alone analytical essays to Phronopolis, the operator's public-facing writing site, under the explicit --publish flag.
Phronopolison-demand
Gate teasers
B-tier public content
Gate teasers
The content pipeline generates Tier-B teaser posts -- free public previews of proprietary Tier-C research -- through the Institute's three-tier content flow.
content pipelineper-paper
Rank & brief
daily equity brief
Rank & brief
Screens a universe of equities, ranks on momentum/valuation/catalyst, deep-dives the top few, and ships a daily operational brief as an announced PDF, tracked against the S&P 500.
stock-rankerweekday
Keep a scoreboard
track record vs SPY
Keep a scoreboard
Maintains an active/archived lifecycle for every surfaced equity: entry and exit prices cached once, active picks re-priced daily, returns compared against SPY in the daily paper and the ops dashboard.
scoreboarddaily
Reception notes
weekly engagement desk-note
Reception notes
Aggregates the readership map by topic each week and delivers a structured Telegram desk-note summarising which subjects drew the most reader attention.
reception-001weekly
Generate images
on-demand illustration
Generate images
Calls the Google Imagen API to generate illustrative images for published content on demand, at roughly two cents per image.
Imagenon-demand
Generate charts
data visualisations
Generate charts
Renders data charts as static shortcodes embedded in Hugo pages, produced from signal data and updated on each site build.
chart shortcodeson-demand
Build dashboards
ops stats JSON
Build dashboards
Computes and writes a dashboard_stats.json payload at each site build, feeding the live platform metrics visible in the operator dashboard.
build_dashboard_statsper-build
Deliver to Telegram
live notifications
Deliver to Telegram
Routes digests, papers, approval requests, and alert findings to Telegram via a bot; every send primitive returns a typed result so silent-swallow failures are detectable.
bot + notifierlive
Maintain the sites
atomic Hugo publish
Maintain the sites
The publisher writes Hugo content files atomically, builds the static site, and manages the deploy pipeline for consiliences.com and the Angles & Footnotes newswire site.
publisher.pyper-publish
Trade-desk notes
daily structured note
Trade-desk notes
Produces a structured desk note combining the macro regime, smart-money tier, and equity ranking into a compact daily briefing that rides the Observatory digest.
desk notedaily
Author disclosure
attribution gate
Author disclosure
Enforces the four-sentence Author Disclosure for any Tier-A content attributed to the operator, checked by the audit gate before publication is permitted.
attribution gateper-paper
Compose OG cards
social meta images
Compose OG cards
Generates Open Graph image metadata for each published page so social sharing surfaces a consistent, informative preview card.
og-imageper-page
Cross-wing links
site nav sync
Cross-wing links
Synchronises the top-strip navigation links across all Consiliences-family sites at each build, keeping the cross-wing navigation consistent.
top-strip syncper-build
Build sitemaps
sitemap + llms.txt
Build sitemaps
Generates Hugo sitemaps and an llms.txt machine-readable index at each build, keeping crawlers and LLM agents oriented on the current site structure.
sitemap / llms.txtper-build
Notify on new
event-driven alerts
Notify on new
Maintains a notified.json dedup store so each distinct event -- new paper, new Observatory candidate, new commission -- generates exactly one Telegram notification.
notified.jsonevent
Render provenance
tool-level attribution
Render provenance
Renders the tool-call provenance chain in each digest, showing which data sources contributed to each synthesised claim rather than presenting conclusions without trail.
tool provenanceper-digest
Caption honestly
as-of timestamps
Caption honestly
Every rendered data view carries an as-of caption and a forward-test disclaimer so readers know exactly when the underlying data was last refreshed.
as-of captionper-render
Draft under review
Tier-A gated draft
Draft under review
Tier-A content attributed to the operator is always drafted with draft:true and requires per-paragraph HITL review before the operator promotes it to published.
tier-A gateper-draft
Bundle papers
PDF + Telegram delivery
Bundle papers
Renders completed research papers as announced PDFs and delivers them to Telegram via paper_notify, with weekday-gating and idempotency to prevent duplicate sends.
paper_notifyper-paper
Paint its own art
local SVG lab-notes
Paint its own art
A local two-stage pipeline -- an authored art-brief, then a painted SVG -- illustrates lab notes without calling any external image API.
SVG lab-note pipelineper-note
Route to the frontier
quality-gated escalation
Route to the frontier
Certain lens essays route to a frontier model when local output doesn't clear the quality bar -- decided by measured substance-score deltas, not a blanket preference for one model over another.
frontier-writer lanestory-gated
Sync a second brain
bidirectional vault loop
Sync a second brain
Pushes daily briefings into the operator's personal knowledge vault and reads back routed questions from a capture queue -- a two-way loop, not a one-way export.
obsidian_syncscheduled
Audit itself
agent integrity check
Audit itself
An auditor scores the integrity of the other agents and routes severity findings to the operator; it recommends suspension, it never silently suspends.
auditorcontinuous
Monitor Observatory
pipeline watchdog
Monitor Observatory
A dedicated monitor agent watches the Observatory research pipeline for stalls, missing output, and anomalous patterns, alerting the operator before issues compound.
obs-monitorcontinuous
Close findings
escalation-only closer
Close findings
The closer-consiliences agent scans findings for those close enough to resolution to escalate to the operator -- advisory only, with no autonomous write-back to signals.
closer-consiliencesescalate-only
Gate by trust
four-tier model
Gate by trust
Every agent sits at a trust tier -- supervised, semi-auto, monitored, autonomous -- and promotion between tiers is always a human decision.
trust gateper-action
Contain subprocess
hardened execution
Contain subprocess
Subprocess calls run through a hardened helper: shell-false, scrubbed environment, binary allow-list, hard timeout.
run_safealways
Air-gapped mode
egress kill-switch
Air-gapped mode
A two-layer air-gap zeroes cloud-API env vars and choke-points all egress paths; activating it cuts every cloud LLM and search call without touching agent logic.
airgapped.pyon-demand
Log everything
human-auditable trail
Log everything
Every agent lifecycle state change -- suspend, resume, remove -- appends a timestamped row to human_audit_log.jsonl so the full operator-action history is recoverable.
human_audit_logper-action
Govern cost
circuit breaker
Govern cost
A circuit breaker tracks per-call and rolling spend against configured ceilings; once tripped, further cloud-LLM calls are refused until the window resets.
circuit breakerper-call
Quality-gate lenses
substance before publish
Quality-gate lenses
Before any news piece is assembled, each perspective is judged on substance, voice, and engagement; those below the floor are dropped and the story is held if fewer than two survive.
lens_gateper-story
Gate publication
SP4 fabrication check
Gate publication
The SP4 gate checks each published paper for token-level fabrication before it reaches the public, surfacing findings in frontmatter so the operator's review is fully informed.
SP4 gateper-paper
Lock supply chain
hash-locked deps
Lock supply chain
All runtime dependencies are pinned in a hash-locked, OSV-audited requirements file; a CI gate refuses merges when the lock drifts from the installed venv.
oh312-hardenedper-change
Pattern-sweep
bug-class guard
Pattern-sweep
A pre-commit hook identifies bug-class patterns in staged hunks -- untimed subprocess calls, hardcoded empty lists, new API hosts -- and greps the repo for siblings before the commit lands.
pattern_sweepper-commit
Startup invariants
boot-time assertions
Startup invariants
On every init_app() call, 58 invariant checks assert that canonical helpers are in place, security defaults are unchanged, and the supply chain is clean.
invariants.pyper-boot
Grade itself against the frontier
drift catch
Grade itself against the frontier
A daily sample of local-model output is judged against a frontier model, catching local-model quality drift before it compounds across thousands of downstream calls.
ops_sentineldaily
Dedupe by state
condition-change alerting
Dedupe by state
Alert logic tracks whether a condition is already flagged rather than using cooldown timers, so each condition change produces exactly one alert and silence confirms resolution.
state trackingcontinuous
HITL approvals
human in the loop
HITL approvals
High-stakes actions -- trust promotions, autonomous directives, large commits -- are held in a pending_approvals store and require an explicit operator tap before execution.
pending_approvalsevent
Housekeeping checks
post-edit integrity
Housekeeping checks
After any signal edit, a housekeeping script verifies that verdict_canonical is consistent, required fields are present, and no CRITICAL integrity issues remain before the commit is staged.
housekeepingper-edit
Topic-diversity picker
anti-repetition gate
Topic-diversity picker
The A&F story picker enforces a topic-diversity window: exact-bucket repeats incur a penalty, same-group commissions stack penalties, and no topic dominates a 36-hour window.
A&F pickerdaily
Persona-rights gate
safe attribution only
Persona-rights gate
PUBLISHABLE_PERSONAS and INTERNAL_ONLY_PERSONAS constants control which voices may appear in public output; living or litigious figures never reach client-facing content.
persona constantsper-publish
Verify before done
effect confirmed, not called
Verify before done
A structural rule across the codebase: completion means the specific effect is confirmed absent or present -- disk write verified, DB row counted, state read back -- not merely that the function returned.
verification ruleper-task
Concurrency lock
single-runner semaphore
Concurrency lock
A process-level semaphore prevents concurrent heavy jobs from racing on shared resources; the scheduler, runner, and ad-hoc sessions all contend through the same lock.
runner semaphorealways
Improve its own code
platform building platform
Improve its own code
The system mines its own gaps, commissions a code fix for one, and files it as a proposal -- a human approves and applies it. The platform helping build the platform, behind a human gate.
F6 loophuman-gated
Mine its own gaps
self-diagnosis
Mine its own gaps
The gap-miner continuously scans the codebase for classes of known bug patterns, stale abstractions, and missing tests, writing structured gap records for the F6 commissioning loop.
gap-minercontinuous
Propose & apply
atomic change system
Propose & apply
Code changes land through a proposal system that validates, hash-checks, backs up, and applies atomically -- all files or none, with rollback on any error.
SwarmProposalatomic
Rewrite its soul
performance-driven voice
Rewrite its soul
When an agent's discard ratio crosses a threshold, a soul-reflection pass rewrites its cognitive fingerprint and goal weighting to correct for observed drift -- applied provisionally on probation, then graduated or reverted.
soul reflectionperformance-driven
Commission own fixes
gap to proposal
Commission own fixes
The F6 commissioner reads a gap record, selects an LLM model appropriate to the fix complexity, drafts a SwarmProposal, and files it for operator review -- no direct code write.
F6 commissionerper-gap
Promote with evidence
trust level up
Promote with evidence
Trust-promotion scripts bundle liveness evidence, safety metrics, and gap history into a proposal packet; a human reviews the packet and promotes -- or declines -- the agent.
trust-promotionon-demand
Self-heal on restart
persist and restore
Self-heal on restart
Cooldowns, approvals, digest buffers and dedup state persist to disk and flush on every heartbeat, so a restart loses only in-flight scoring.
persist + restorealways
Learn from feedback
closed feedback loops
Learn from feedback
Fifteen closed-loop pairs connect each measurement to an actuator -- cost to routing, discard ratio to soul rewrite, citation clustering to output flagging -- with ship status tracked in a contract file.
feedback loopscontinuous
Reconcile registry
agent lifecycle CLI
Reconcile registry
The agent_lifecycle CLI is the only permitted path for adding, suspending, resuming, or removing agents; every state change appends to the human audit log and a pre-commit hook enforces the invariant.
agent_lifecycleon-demand
Backoff failing models
per-model mute
Backoff failing models
When a gap's commissioned model fails a configurable number of times, the gap is muted for that model and the counter resets on model change, preventing runaway retries.
F6 muteper-gap
Serialize commits
scheduled auto-commit
Serialize commits
Applied proposals accumulate in a pending-commit ledger; a scheduled job commits and pushes them with explicit file paths every 15 minutes, keeping the main branch current without operator intervention.
pending_commitscheduled
Tune its own gates
measured rollout
Tune its own gates
Configuration knobs for gates, penalties, and thresholds are adjusted only after empirical measurement -- lens survival rates, over-fire rates, engagement distributions -- with rollback paths documented before any flip.
measured rolloutmeasured
Distill its own lessons
cross-session learnings
Distill its own lessons
A two-tier knowledge base mines its own history -- handoffs, bug fixes, decisions -- into reviewed, cross-session-recallable principles, gated by human approval before a lesson is promoted to canonical.
learnings KBweekly + on-demand
Measure its own improvement
not just active -- working
Measure its own improvement
Rather than assume a self-improvement loop is working because it's running, an effect ledger measures whether a commissioned fix actually reduced the defect class it targeted.
RSI effect ledgercontinuous
…and this still isn't everything.
The single rule that keeps autonomy legible
Agents climb. Only a human promotes.
Tier 0 supervised
2
Tier 1 semi-auto
2
Tier 2 monitored
8
⚠ Tier 2 → 3 is a human decision -- never automatic
Tier 3 autonomous
29
Live registry counts as of the latest build — every Tier 3 promotion was a manual operator decision, never automatic.
Built safe and legible before fast
The sandbox is the contract.
Every agent writes only to its own sandboxed working directory. Every consequential action it takes is written to an append-only audit log. Subprocess calls run through a hardened helper with a scrubbed environment and a binary allow-list, and an air-gapped mode can sever all egress. When safety and speed conflict, legibility wins.
Local-first sovereignty
5 cloud providers. One endpoint that decides.
The only mandatory language-model endpoint is a local server the operator controls. Cloud routing across 5 providers accelerates the work but is never authoritative; the system degrades to local-only without losing correctness. It is both a consumer of data -- around three dozen external integrations -- and a provider of it, exposing three Model Context Protocol surfaces.
The engine is the artefact. The operator is the consistency mechanism.
The platform was built by a single operator working with a fleet of agents, and it is not separable from that operator: the operator decides what the engine does, what it kills, and what ships. That pairing is not a limitation the work is apologising for -- it is the demonstration the work exists to make.