03 / Retrieval

Give the next action the right context.

Read a customer’s current preference, find the owner of a project, or trace how a case changed. Query accepted facts directly and bring in relationships, sources, or earlier values when the task needs them.

Project / atlasExample

The project’s status, owner, and connected team.

Current status
Active
Project owner
person:alice
Related team
team:platform
History
Previous status: planned
Illustrative record. Current facts, relationships, and historical values can be queried for different questions.

In practice

Ask what is true now, or what was true then.

Reads return accepted facts, not passages to reconcile. A proposal waiting for review stays out of the answer until someone approves it.

  1. 01memory_get

    Read the current record. A sales call proposed a new account owner, but that change is held for review, so it is not a current fact yet.

    Call
    {
      "entity": "customer:crm_1042",
      "profile": "compact-v2"
    }
    Result · shortened
    {
      "profile": "compact-v2",
      "scope": { "facts": "current", "history": "not_loaded" },
      "results": [
        {
          "status": "found",
          "entity": { "canonicalId": "customer:crm_1042", "entityType": "Customer" },
          "facts": [
            { "predicate": "city", "value": "Lisbon", "confidence": 0.97 },
            { "predicate": "plan", "value": "growth", "confidence": 0.9 }
          ]
        }
      ]
    }
  2. 02memory_get

    Ask what was true at 11:00. Berlin was the city then, and the result says when it stopped holding.

    Call
    {
      "entity": "customer:crm_1042",
      "profile": "compact-v2",
      "asOf": "2026-09-13T11:00:00Z"
    }
    Result · shortened
    {
      "scope": { "facts": "valid_time", "asOf": "2026-09-13T11:00:00Z" },
      "results": [
        {
          "status": "found",
          "facts": [
            {
              "predicate": "city",
              "value": "Berlin",
              "status": "superseded",
              "confidence": 0.9,
              "validUntil": "2026-09-13T11:45:00.000Z"
            },
            { "predicate": "plan", "value": "growth", "confidence": 0.9 }
          ]
        }
      ]
    }

Calls and results from the ConceptMem MCP tools on a new database, after the updates shown on the consolidation page.

Built into the workflow

Start with the record. Follow the context.

01

Find a known entity

Use a stable entity ID or an indexed field for exact lookup. Read current facts without reconstructing state from a conversation log.

02

Find connected context

Search text in current entities and facts. Follow typed relationships from a project to its owner or from an account to its related cases.

03

Look back when needed

Inspect mutations and their sources in the changelog. Use a point-in-time fact read to see which values were recorded as valid on a given date.

Measured on a public benchmark

The right conversation in the top five, for 463 of 470 questions.

LongMemEval-S asks questions about long chat histories. Each history was written through ConceptMem’s write path into its own database, then searched with the question. Lexical search alone, with no embedding or generative model, put an evidence session in its first five results for 98.5% of questions, and first for 91.1%.

Re-ranking those matches with an open embedding model, EmbeddingGemma 2 run locally, brought every evidence session into the top five for 91.9% of questions, up from 87.7%. Answering from those five sessions, Gemini 3.5 Flash Lite got 85.4% of all 500 questions right, and 83.0% from lexical search alone.

Methodology and per-question results
hit@5
98.5%an evidence session in the top five
hit@1
91.1%an evidence session ranked first
recall_all@5
87.7%every evidence session in the top five
nDCG@5
0.919how well the top five are ordered

The figures above measure evidence retrieval over the 470 non-abstention questions at session level. Answer accuracy covers all 500, read and graded by Gemini 3.5 Flash Lite under our prompts, not LongMemEval’s GPT-4o judge, so it does not compare with accuracies published elsewhere. This is an internal evaluation of an engine tuned on this benchmark, not an official leaderboard entry.

Request the context the task needs.

Select fields, relationships, and evidence, and use compact reads to keep the response focused. Export current records as JSON or Markdown for inspection and sharing.

Connect retrieval to your agent

Common questions

Retrieval, answered.

Didn’t find your answer?Ask the team Read the documentation
Is retrieval semantic or vector search?

Search uses text matching over current entities and facts. You can also use exact lookup and typed relationship traversal. An optional embedding re-ranking can reorder the text matches by meaning, but nothing is retrieved by vector: a record no query word matches is not found. A document retrieval system can supply source passages alongside ConceptMem’s structured records.

How do I ask what was true at a past date?

Use a point-in-time fact read. Facts record valid time, when a value was reported as true in the world, separately from when the database stored it. Historical reads use valid time, falling back to recording time for older facts that do not have it.

What is the difference between the changelog and history?

History is the set of superseded and retracted facts still attached to an entity. The changelog is the immutable record of mutations, with the provenance of each one. History answers what the value used to be; the changelog answers how it changed.

Can I take memory out of the system?

Yes. Export current records as JSON or Markdown. These are derived views; editing an export does not update the database. Submit an observation to propose a correction. Exports are not full restorable backups.

Do paged reads hold one snapshot across requests?

Each read request uses a consistent snapshot. Later pages or separate requests can reflect newer commits, so a sequence of pages is not one frozen view of the database.

Keep exploring

Explore how the record works.

Start with one shared record

Give your next agent
the current record.

Create a database on the free plan, connect an agent over MCP or REST, and propose your first update.