Probabilistic claims with confidence + supports — list, why, build.

Beliefs

Beliefs are probabilistic claims about the world: a stance, a confidence in [0,1], a confidence interval, and a supports graph that you can walk to ask "why do you think that?" They're revisable as new evidence arrives.

Stability: beta — confidence math and stance enum may extend before becoming stable.


GET /v1/beliefs

Capability: scope.read.local

GET /v1/beliefs
  ?scope=org:acme/dept:eng
  &about=ent_acme_corp
  &min_confidence=0.6
  &as_of=2026-05-15T00:00:00Z
  &limit=50

Response

{
  "items": [
    {
      "belief_id": "belief_01HX...",
      "scope":     "org:acme/dept:eng",
      "about":     { "id": "ent_acme_corp", "name": "Acme Corp" },
      "stance":    "likely_true",
      "claim":     "Acme is likely to renew at Q3 boundary",
      "confidence": 0.62,
      "confidence_interval": [0.48, 0.74],
      "supports":  ["fact_01HX...", "ep_01HX..."],
      "valid_from":     "2026-05-13T15:42:09Z",
      "valid_to":       null,
      "recorded_from":  "2026-05-13T15:42:09Z",
      "recorded_to":    null,
      "last_revised_at":"2026-05-15T08:01:00Z"
    }
  ]
}

stance{ supports, likely_true, uncertain, likely_false, contradicts }.


GET /v1/beliefs/why

The "why do you think that?" endpoint. Walks the support graph and renders a narrative explanation.

GET /v1/beliefs/why?belief_id=belief_01HX...

Response

{
  "belief": { /* Belief record */ },
  "support_graph": {
    "nodes": [
      { "id": "fact_01HX...",   "type": "fact",    "weight": 0.34, "summary": "Acme signed Q3 renewal" },
      { "id": "ep_01HX...",     "type": "episode", "weight": 0.22, "summary": "POC extended in April" },
      { "id": "evt_01HX...",    "type": "event",   "summary": "..." }
    ],
    "edges": [
      { "from": "fact_01HX...",   "to": "evt_01HX...", "relation": "extracted_from" },
      { "from": "ep_01HX...",     "to": "evt_01HX...", "relation": "contains" },
      { "from": "belief_01HX...", "to": "fact_01HX...", "relation": "supported_by" }
    ]
  },
  "narrative": "I think Acme is likely to renew because on May 13 they upgraded to 200 seats (fact_01HX), and this followed a positive POC episode (ep_01HX) in April. The signal weight is 0.62 with CI [0.48, 0.74].",
  "narrative_model": "claude-haiku-4-5"
}

POST /v1/beliefs/build

Capability: scope.write

Force a belief-build pass over a scope (normally runs async).

{ "scope": "org:acme/dept:eng" }