LLTM

Live Memory Playground: watch long-term memory form and change.

Natural language → two-stage LLM extraction → temporal memory → t4 answers and source evidence. Unavailable models produce an error, never a rule-based substitute.

While the backend wakes: watch a recorded real run

A recorded run of the Chinese fact-update preset, using real models on a local backend and fictional dialogue. Waiting is sped up; no audio. This is not current service status and uses no visitor model quota.

Recorded outcome: TensorFlow changes to PyTorch. Historical queries return TensorFlow before the update and PyTorch after it.

Transcript and recording details
Recording provenance and usage

Interact with long-term memory

Connecting…

Presets start a fresh demo namespace and delete the current one. You can also enter your own natural language.

Visitors share model quota. Resume an interrupted preset from its unfinished step; wait for the countdown after a rate limit, or watch the recording above.

Conversation 1

Empty means today. This is when the conversation happened, not when a fact did.

    Writes and questions send relevant text to the backend model. API keys stay on the server. A new conversation retains long-term memory without sending the old on-screen transcript.

    Memory Inspector · facts and timeline

    • Save a message to inspect extracted facts here.

    Evidence behind this answer

    Ask a question to inspect the sources of selected memories.

    Historical state by date · as_of

    Facts in force on a date · as_of

    • Pick a date to see the facts in force at the end of that day. Reads stored intervals only; no model call.
    Memories this answer did not use

    Memories this answer did not use

    • Shown after a question.
    Answer request prompts, including raw evidence and fallback

    HOW IT WORKS

    Memory tracks change. Source text preserves detail.

    Write long-term memory from past conversations, then retrieve relevant facts and source text for later questions.

    WRITE

    1. Past conversationsSource text + session date
    2. Two-stage extractionExtract facts, then structure them
    3. Deduplication + timelineAdd, replace, terminate, coexist
    4. User-scoped storageSQLite / FTS5 + NumPy; memory + source text

    READ

    1. A later questionCaller owns the current conversation
    2. Retrieve this user’s evidenceRelevant memory + selective source turns
    3. t4 answer contextFact state, source hydration + time notes
    4. Answer + evidence traceInspect the memory and source text used

    Conditional path: the answerer requests source text or finds no evidence → search this user’s archived turns → answer again only if text is found; otherwise retain the verdict or return unknown.

    Boxes show logical responsibilities. as_of reads stored validity intervals without a model call; natural-language history questions use the answer path. Extraction, update linking and answers can still fail; source references are not verified citations.
    Read the architecture and implementation limits →

    BENCHMARK EVIDENCE

    Concurrent regression and historical benchmarks, separately.

    —
    Tested methodAccuracy

    —

    Historical one-shot test report →

    Loading results… data full report

    BUILT FOR LONG-TERM MEMORY

    Keep facts, time and provenance together.

    Queryable historical state

    Separate session dates from event dates and preserve validity intervals, so past fact states remain queryable after updates.

    Inspectable answer evidence

    Inspect selected memories, source turns in the first prompt and conditional recovery. Provenance helps diagnose errors; it does not guarantee a correct answer.

    User isolation + tool access

    Memory and source reads stay within the user namespace. Integrate through REST, MCP, Python or CLI; the caller manages current conversation context.

    Python engineering tests
    —
    Line coverage
    —
    CI platforms
    —

    —

    Project report, known failures and negative results →