Formal uncertainty reasoning engine. Auditable verdicts from conflicting sources.
Built by Upside Down Research
SummerEyes is a reasoning engine that analyzes claims from multiple sources to detect contradictions, assess confidence, evaluate timelines, and identify what evidence is missing. It produces auditable verdicts using formal mathematics: source weighting, temporal decay, opinion fusion, and conflict resolution.
The engine is available as an MCP tool for AI agents and as a REST API.
POST https://api.summereyes.vip/mcp/v1x-api-key headersubmit_investigationPOST https://api.summereyes.vip/api/v1/investigations/analyzex-api-key headerapplication/jsonEach source (actor) gets an effective credibility score based on:
base_reliability (0.01–0.99) — overall trustworthinesssource_type — expected reliability range (Regulator > Expert > Analyst > Journalist > Insider > Institutional > Anonymous > SocialMedia > Troll)competence — per-predicate topic expertise (0–1), multiplied with reliabilityGuidelines for base_reliability:
Credibility floor: When effective reliability (base_reliability x competence) falls below ~0.15, the claim is acknowledged but its evidence counts are zeroed in fusion.
Older claims lose weight automatically. The decay rate is computed from:
Corroboration resets the clock: Independent corroboration (different citation chain) fully resets temporal decay. Dependent-source corroboration provides partial refresh controlled by dependent_refresh_factor (default 0.5).
Supersession: When a newer claim replaces an older one (via supersedes_claim_id), the older claim's epistemic status is automatically set to "superseded" and decays 4x faster.
Claims are fused in three levels:
The result is a three-part opinion: belief + disbelief + uncertainty = 1.0
When claims contradict each other, the engine:
Scope handling: Claims with different scope values on the same predicate (e.g., "global" vs "US" revenue) are NOT treated as contradictions.
Numeric proximity: Financial values within 5% of each other are not treated as contradictions.
The submit_investigation tool accepts the following JSON structure:
{
"research_question": "string (required) — The main question driving the investigation",
"domain": "string (optional) — Finance | News | Technology | Geopolitics | Medicine | Science | Legal | General",
"decay_half_life_days": "number (optional) — Explicit temporal half-life override in days",
"dependent_refresh_factor": "number (optional, 0.0-1.0, default 0.5) — Controls dependent-source corroboration refresh",
"summary_mode": "boolean (optional, default false) — Compact output: top findings, contested claims, evidence gaps",
"actors": [
{
"id": "string (required)",
"name": "string (required)",
"source_type": "string (required) — Analyst | Journalist | Expert | Insider | Regulator | Institutional | Anonymous | SocialMedia | Troll",
"base_reliability": "number (optional, 0.01-0.99) — Clamped to range. Inconsistent values produce warnings",
"competence": "object (optional) — Map of predicate name to expertise score (0-1)",
"default_competence": "number (optional, 0-1, default 1.0) — Fallback for unlisted predicates"
}
],
"subjects": [
{
"id": "string (required)",
"name": "string (required)",
"subject_type": "string (required) — Freeform label (e.g., Company, Person, Financial Instrument)"
}
],
"claims": [
{
"id": "string (required)",
"actor_id": "string (required) — Must match an actor id",
"subject_id": "string (optional) — Must match a subject id (omit for meta-claims)",
"target_claim_id": "string (optional) — For meta-claims about other claims",
"predicate": "string (required) — What aspect this claim is about (e.g., revenue, solvency)",
"value": "string (required) — The claimed value (e.g., fabricated, legitimate, 100M)",
"content": "string (required) — Full text of the claim",
"valence": "string (required) — Supports | Refutes | Neutral — CRITICAL for contradiction detection",
"claim_type": "string (optional) — Factual | Predictive | Evaluative | Causal | Procedural | Attribution | Methodological",
"assertion_time": "string (optional, ISO 8601) — When the claim was made. Always provide this",
"event_start_time": "string (optional, ISO 8601) — Start of the event window. Must be before event_end_time",
"event_end_time": "string (optional, ISO 8601) — End of the event window",
"decay_half_life_days": "number (optional) — Per-claim half-life override",
"epistemic_status": "string (optional) — conjecture | hypothesis | theory | law | superseded | retracted",
"scope": "string (optional) — Disambiguates same-predicate claims (e.g., global, US, nominal)",
"supersedes_claim_id": "string (optional) — ID of claim this one replaces",
"corroboration_events": [
{
"time": "string (required, ISO 8601)",
"actor_id": "string (required) — Must differ from the claim's actor_id",
"description": "string (optional)"
}
],
"relationships": [
{
"relationship_type": "string (required) — complements | refines | qualifies | supersedes | challenges_methodology",
"target_claim_id": "string (required)"
}
]
}
],
"evidence": [
{
"id": "string (required)",
"claim_id": "string (required) — Must match a claim id",
"content": "string (required) — Description of the evidence",
"valence": "string (required) — Supports | Refutes | Neutral",
"weight": "number (optional, default 1.0) — Evidence strength multiplier"
}
]
}
Only research_question, actors, subjects, and claims are required at the top level. Within each claim, id, actor_id, predicate, value, content, and valence are required.
Per-subject verdicts:
belief (0–1): evidence supporting the dominant interpretationdisbelief (0–1): evidence opposing ituncertainty (0–1): how much is unknownexpected_probability (0–1): single bottom-line number (posterior)truth_status: True | False | Both | Neither (four-valued logic)All claims sorted by net evidence strength (belief - disbelief). Five-level gradient:
Per subject+predicate pair, a full argumentation analysis with interpretation trees. Each InterpretationTree shows:
coherence_score (0–1): how well accepted claims hang together as a narrativePer-claim breakdown:
belief, disbelief, uncertaintytemporal_decay_factor (1.0 = fresh, 0.5 = half-life reached)epistemic_status and suggested_epistemic_statusfreshness_score (0–1 composite)below_credibility_floor (when the actor's effective reliability is too low)Per-subject evidence gaps ordered by potential impact:
potential_shift: how much one additional confirming evidence would change the probabilityis_contested: whether multiple interpretations existdiscriminating_claims: claims in some but not all interpretations — targeting these best resolves disagreementsuggestion: human-readable recommendation for what to investigate nextstale_claims: claims past their half-liferecently_corroborated: claims with recent independent confirmationsupersession_chains: claim evolution historyoverall_freshness (0–1): average freshness across all claimsInput validation issues: source-type/reliability mismatches, self-corroboration, pre-assertion corroboration. These are soft warnings — the engine never hard-rejects input. Address them to improve analysis quality.
Moriarty Enterprises Ltd is a London-based consulting firm run by Professor James Moriarty. It also manages the Reichenbach Investment Fund. Multiple sources have raised concerns about fabricated revenue and fund insolvency.
Research question: "Is Moriarty Enterprises engaged in financial fraud?"
{
"research_question": "Is Moriarty Enterprises engaged in financial fraud?",
"domain": "Finance",
"dependent_refresh_factor": 0.5,
"actors": [
{ "id": "holmes", "name": "Sherlock Holmes", "source_type": "Expert", "base_reliability": 0.92 },
{ "id": "watson", "name": "Dr. John Watson", "source_type": "Journalist", "base_reliability": 0.75 },
{ "id": "lestrade", "name": "Inspector Lestrade", "source_type": "Regulator", "base_reliability": 0.80 },
{ "id": "adler", "name": "Irene Adler", "source_type": "Insider", "base_reliability": 0.65 },
{ "id": "moriarty", "name": "Prof. James Moriarty", "source_type": "Institutional", "base_reliability": 0.30 },
{ "id": "times", "name": "The Times of London", "source_type": "Journalist", "base_reliability": 0.70 },
{ "id": "telegraph", "name": "The Daily Telegraph", "source_type": "Journalist", "base_reliability": 0.65 }
],
"subjects": [
{ "id": "moriarty-ent", "name": "Moriarty Enterprises Ltd", "subject_type": "Company" },
{ "id": "reichenbach-fund", "name": "Reichenbach Investment Fund", "subject_type": "Financial Instrument" }
],
"claims": [
{
"id": "c1", "actor_id": "holmes", "subject_id": "moriarty-ent",
"predicate": "revenue", "value": "fabricated",
"content": "After examining the ledgers obtained from the Diogenes Club, the reported revenue of Moriarty Enterprises bears no correlation to actual client payments.",
"valence": "Supports", "claim_type": "Factual", "epistemic_status": "theory",
"assertion_time": "2026-02-15T10:00:00Z",
"corroboration_events": [
{ "time": "2026-02-16T14:00:00Z", "actor_id": "watson" },
{ "time": "2026-02-28T06:00:00Z", "actor_id": "times" }
]
}
],
"evidence": [
{ "id": "e1", "claim_id": "c1", "content": "Ledger photocopies from the Diogenes Club", "valence": "Supports", "weight": 1.2 }
]
}
See /llms-full.txt for the complete worked example with all 11 claims and 4 evidence items.
Subject: Moriarty Enterprises — revenue
High belief that revenue is fabricated. Holmes (Expert, 0.92) and Watson (Journalist, 0.75) both support this. Lestrade (Regulator, 0.80) confirms an active investigation. Moriarty's denial carries little weight at 0.30. Truth status: Both.
Subject: Reichenbach Fund — solvency
Very high belief the fund is insolvent. Adler (Insider, 0.65) provides firsthand testimony. Holmes (Expert, 0.92) corroborates with court-ordered bank records. Lestrade confirms the fund is frozen. Truth status: Both.