Spectron is built around a single design question:
Can someone watch the substrate in real time and verify that the agent is operating on the right information – not infer it from output quality alone?
That requires structured facts, first-class provenance, non-destructive belief history, explicit uncertainty, and graph-resident traces that make retrieval and reconciliation auditable. It is the same standard you apply informally when someone says they used to have a cat: you keep the old fact in mind, date it, and do not treat it as current – Spectron makes that distinction queryable.
Structured facts, not opaque blobs
Turns and document passages are reconciled into entities, attributes, and relations stored in SurrealDB – not only as embedded chunks. Discrete records are what make the rest of the guarantees possible: you can query “what is the current role?” deterministically, enumerate everything known about an entity, and detect duplicates structurally.
Provenance is a field, not a log line
Fact-bearing records carry a source object (Provenance and traceability):
source.kind–turn,document,reflect,elaboration,consolidation, …source.ref– originating turn, document, or trace identifiersource.span– character positions for quoting the originating message or passagesource.trust– default weight for how authoritative that source stream is (curated document versus casual turn, and so on)source.derived_from– lineage for reflections, elaborations, consolidations, collective promotion
Calibration stores attribute.confidence (reconciler posterior) separately from source.trust. A low-confidence extraction cannot silently supersede a higher-confidence belief; it becomes uncertainty instead. See Surface, models, and security for the model-hook story.
Model-derived facts are first-class — and visibly probabilistic
Facts minted by reflection, elaboration, or consolidation are stored with their own source.kind, a source.derived_from link to the inputs they were synthesised from, and a lower default trust than a human turn or an authoritative document. A probabilistic upstream remains visible at every hop in the chain — it is not laundered into ground truth because it became input to a later stage.
Walking “why did this change?”
Supersession chains answer what changed between two points in time. decision_trace nodes answer why the reconciler moved: what it considered, what it superseded, and which source triggered the update. Compare two traces to see whether a revision came from new inputs, different retrieval, or model variance with the same inputs recorded in the trace metadata.
Three ways memory stops being “current”
Supersession (“this replaced that”), decay with reinforcement (“this faded from relevance”), and forget (“remove from the agent’s working set”) are intentionally separate. See Supersession, decay, and forget.
One reconciler, explicit uncertainty
Document facts and turn facts meet in the same graph and pass through the same supersession-and-uncertainty logic. Cross-provenance contradictions become uncertainty records instead of silent overwrites — not last-write-wins. Same-stream updates supersede with valid_until on the prior record. When confidence is below the calibration floor, Spectron refuses to do away with a stronger existing belief and surfaces uncertainty instead.
Concurrent writers hit the same reconciler in one ACID transaction per write, so conflicts are recorded where the facts live — not reconciled eventually by a background job that leaves stale reads in between.
Tri-temporal, not “delete and forget”
Spectron tracks three clocks – system (MVCC), known (as_of over supersession), and valid (real-world valid_from / valid_until). Aging and supersession replace naive deletion; forget exists when operators or users require explicit removal. See Tri-temporal model.
Traces make behaviour inspectable
Every ranked read can emit a retrieval_trace; every reconciliation emits a decision_trace; /chat and /reflect emit response_trace. They are nodes with edges to the entities and attributes they touched – so you can walk “this answer used these retrievals → which considered these records → which decisions superseded what.” See Traces and memory evolution.
Authoritative versus experiential streams
Curated knowledge and conversational knowledge are distinguished by source.kind and trust policy, not by hiding one half in a separate database you cannot join transactionally. When user assertions disagree with curated documents, reconciliation preserves curated truth and surfaces the clash (Unified substrate and authority).
Observable today
Operators can use HTTP and CLI surfaces (spectron entities …, spectron sessions …, spectron recall …, spectron inspect trace:…) plus direct SurrealDB access on self-hosted stacks to read live state and historical belief – the same substrate the ranker uses. A fuller inspectability list is in Surface, models, and security.
Together, these properties mean “is the agent correct?” has a defensible answer: you can point to records, spans, traces, and time axes – not only to a model transcript.