Use caseFinancial operations

Agents that reconcile against the number that was true then

Close gets restated. Forecasts get revised. An agent that reads only the current figure will answer last quarter's question with this quarter's number, confidently.

01 What breaks

Restatement erases the question

Finance systems are designed to hold the correct number. The work is mostly about the difference between two numbers, one of which no longer exists.

01

The ledger is corrected in place

An adjustment lands and the prior figure is gone. Asked why the forecast moved, the agent can see where it is and not where it was — which is the only part of the question that mattered.

02

Two systems, one metric, different answers

Billing and the warehouse disagree by a rounding rule nobody wrote down. Both are cited as the source of truth, in different threads, by different agents.

03

The reason for an adjustment lives in a thread

The number is in the system. Why it was adjusted was explained once, in a message, and was never attached to the figure it explains.

02 What it’s made of

Mostly valid time. Then three others.

Every application built on CortexDB is a different mixture of the same five memory jobs. That mixture is what makes this a different piece of software from the one next to it, even though the infrastructure underneath is identical.

Dominant · Valid time

Every memory carries when it was true and when you learned it

A revision is recorded as a revision — the prior value, the new one, and the moment the change became effective. Variance analysis stops being archaeology and becomes a query.

  • Ask what the figure was on a date.
  • Revisions keep their provenance instead of replacing it.
  • A restated period stays answerable in both versions.
Episodic memory

The last three times this variance appeared

What was investigated, what it turned out to be, and what was changed as a result.

Decision context

A similarly named metric is not this metric

Selection weighs which definition and which system, not which label is closest.

Shared memory

One set of numbers across the fleet

The FP&A agent and the collections agent reconcile against the same record rather than two.

That is four of the five. The fifth — persistent memory, where an individual's preferences and corrections survive — leads for assistant and commerce agents instead. Same engine, different mixture.

03 What feeds it

The explanation is never in the same place as the number

The figure is in a system of record. The reason it moved is in a thread, a doc, or a comment on a ticket.

01 Wire the sources

Vendor connectors ship as extras on the connector package.

Install
pip install 'cortexdb-connectors[slack,notion]'

02 Write the adjustment with the reason attached

The number already exists in the ledger. What is being stored is the thing the ledger has no field for.

Store an experience
curl -X POST http://localhost:3141/v1/experience \
  -H 'Content-Type: application/json' \
  -d '{
    "scope": "ws:finance/close",
    "modality": "observation",
    "content": {
      "kind": "text",
      "text": "Q2 services revenue restated down 412k: two enterprise contracts recognised on signature rather than on delivery milestones. Prior figure stands for the originally published cut."
    },
    "context": { "observed_at": "2026-08-27T09:14:00Z" },
    "idempotency_key": "close:2026-q2:restatement-02"
  }'

03 Recall the version the question is about

The pack carries both the current figure and the record of what it replaced, so a variance answer can cite the change rather than assert it.

Recall it
from cortexdb.v1 import V1Client

client = V1Client(api_url="http://localhost:3141", actor="agent:fpa")

pack = client.recall(
    scope="ws:finance/close",
    query=variance_question,
    view="holistic",
    include=["facts", "beliefs", "events"],
    budgets={"max_tokens": 1000},
)

reply = llm.respond(variance_question, context=pack["context_block"])

pip install cortexdbai or npm i cortexdbai — both ship the same client. Full endpoint reference in the docs.

04 Where it runs

Unreleased financials are material non-public information

Pre-close figures, restatements in progress and the reasoning behind them. For a public company, this is the corpus where an accidental disclosure is a regulatory event rather than an embarrassment.

CortexDB is a single container. It runs on your own hardware, inside your VPC, or air-gapped — with the embedding and generation calls pointed at a local model if nothing may leave at all.

Run it
docker run -d --name cortexdb -p 3141:3141 -v cortexdb-data:/data cortexdb/cortexdb:latest

Deployment options, model routing and the enterprise notes are on the download page.

05 The rest
Try it

Bring the workflow that gets it wrong.

One command starts a local instance with its own volume. The changelog carries every release behind it.