Lore

Recall analytics

Read what was recalled, shown, and actually used, per agent and per query.

Recall analytics show what recall found, what it showed, and what the agent actually used. Use them to find memories that are noisy, memories that never appear when they should, and runtimes that need attention.

Where to find them

  • Loremem Cloud: the Overview page shows Recall analytics, the Channel overview, and Recent queries.
  • Self-hosted: the Recall page (/recall) shows the same analytics, with filters for the number of days and the source (channel).

Both views cover the last 14 days by default.

The four headline numbers

NumberWhat it countsWhat to look for
MergedCandidates ranked across all recall runs in the windowThe size of the candidate pool. Shown is always a subset of Merged.
ShownCandidates injected into promptsEach query shows no more than your item limit (3 by default). Compare Shown with Queries.
QueriesRecall runs in the windowOne for each prompt that recall handled
UsedShown memories that the agent opened with the query's identifiersAbove zero, and growing with real work. It can never exceed Shown, because only shown memories count as used.

There is no universal target. A healthy picture usually looks like this: most queries show fewer memories than the item limit, a steady share of what is shown gets used, and separation (described below) is clearly positive. Compare a channel with its own past, and compare channels with each other.

The channel table

A channel is a runtime, such as Claude Code or Codex. The Channel overview shows one row per channel.

ColumnMeaning
ShownMemories shown to this runtime in the window
UsedShown memories that this runtime's agents opened
Memory created, Memory updated, Memory deletedChanges made through this runtime in the window. A busy runtime that never creates or updates memory may not be saving lessons.
Used p25The score below which a quarter of used memories fall
Unused p75The score below which three quarters of shown memories that were not used fall
SeparationUsed p25 minus Unused p75

In plain words: line up the scores of the memories a channel's agents used, from low to high. Used p25 is the score at the first quarter of that list. Do the same for shown memories the agents did not use, and take the score at the third quarter. Separation is the difference between the two.

  • A positive separation means that even the weaker used memories score clearly above most of the memories the agent ignored. Recall ranks what the agent needed above what it did not.
  • A separation near zero or negative means the scores do not tell useful memories from ignored ones. Reduce the noise first. Do not treat it as a reason to lower the threshold.

Note

The three score columns are rough until a channel has a meaningful number of used and shown memories. Lore only treats a sample as ready for analysis with at least 3 used and 5 shown candidates. Separation is a relative measure. Compare channels, and watch it over time, rather than aiming for a fixed number.

Recent queries

The Recent queries table lists the latest recall runs, with the query text, the channel, the duration, how many memories were shown and used, and when the run happened. Select a query's text to open its detail. The table pages through older runs.

The query detail

The query detail shows the request and its identifiers, and the stages of the recall pipeline. Select a stage to see only the candidates it produced.

StageWhat it contains
QueryThe input and totals for this recall request
ExactMatches on paths, glossary terms, and query terms
GlossaryCandidates found through glossary semantic similarity
SemanticCandidates found through memory-view embeddings (gist and question)
LexicalCandidates found through full-text and text matching
MergedAll stages merged into one ranking
ShownRanked candidates that passed display selection

Each candidate row shows:

ColumnMeaning
EntryThe memory's URI
ViewThe view that matched, if the match came through a view
PreThe score from the stage that found the candidate
FinalThe score after all stages are merged and bonuses are added. This is the score used for ranking and display.
RankThe candidate's position in the merged ranking
DisplayedWhether the candidate took a display slot
StatusUsed (shown and opened), Shown (injected but not opened), or Withheld (ranked but not injected)
CuesThe terms that matched

Act on what you see

What you seeWhat it usually meansWhat to do
Shown is high, Used is lowRecall injects memories the agent ignores. That is noise.Raise recall.display.min_display_score, or lower recall.display.max_display_items. Sharpen the disclosures so memories match fewer unrelated prompts.
A needed memory is never shownIts disclosure and glossary do not match how the work is describedRewrite the disclosure as one concrete situation. Add the words from the prompt to the glossary. Run the query again.
A needed memory is withheld with a score just under the thresholdIt is close to the cutoffImprove the memory first. Lower the minimum score only if correct memories keep falling just below it.
One channel has many shown memories and none usedIts agents are not opening memories with the identifiersCheck that the runtime passes session_id and query_id when it opens a node.
Separation is near zero or negativeScores do not tell used memories from ignored onesReduce the noise first, then check again.
Chinese prompts score weakly in Exact and LexicalChinese word segmentation is missingSee Chinese recall.

Note

Change one thing at a time, then compare the next few days of analytics with the period before the change.