jev-recall
Filters an assistant's memories by relevance, not resemblance: one Jev yes/no per memory in a single request, kept above a threshold.
Overview
Jev Recall retrieves an AI assistant's memories by relevance rather than surface similarity. The README's example: a request to order an almond tart for a dinner party looks nothing like the memory that a guest has a severe tree-nut allergy, so embeddings miss it, while an LLM reranker would catch it but is too slow and costly to run every turn. Jev Recall puts every memory in one request's shared state with a short id and asks one yes/no question per memory, returning a probability for each.
Because results are thresholded rather than top-k, nothing is returned when nothing applies. Large stores are split across concurrent requests, and there are inline and shortlist modes (a multiple-choice ranking followed by verification of top candidates), plus an async API. A benchmark of 238 fictional memories and 18 requests where the relevant memory does not resemble the request compares BM25, dense retrieval, reranking, several Claude models and Jev modes. A live demo replays runs or runs live with your keys.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this memory relevant to the current request? | yes · no |
| Choice | Which memory is most relevant (shortlist mode)? | — |
How it works
- Put all memories with ids into one shared state
- Ask one Noul per memory referencing its id
- Keep memories above the threshold, best first
- Split large stores across concurrent requests
Strengths
- Catches relevant memories that do not resemble the query
- Threshold allows returning nothing
- Reports cost and latency per call
Caveats
- Memory text is sent to TypeSafe
- Benchmark is small and fictional
- Threshold needs tuning per application
Getting started
from jev_recall import Recall; Recall().filter(query, memories, threshold=0.5) with TYPESAFE_API_KEY set.At a glance
- Type
- Project
- Status
- beta
- Language
- Python
- Runtime
- Library
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Retrieve by relevance, not resemblance: filter an AI assistant's memories with TypeSafe's Jev
logicrw/awesome-jev-projectsRetrieve by relevance, not resemblance: filter an AI assistant's memories with TypeSafe's Jev.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
Whether each stored memory is relevant to the current request.
Why not embeddings?
The memories that change an answer often look nothing like the request.
Can it return no memories?
Yes. With a threshold, nothing is returned when nothing applies.
Related projects
Self-hosted memory MCP server on Cloudflare Workers where a Jev layer judges memory type, salience and durability and re-ranks recall.
MCP serverprototypeTypeScriptAgent memory system where Jev or local Laya controls memory organisation, query routing, retrieval budgets and stopping.
ProjectresearchPythonLocal long-term memory for coding agents with an optional Jev reranker that orders recalled memories.
ProjectproductionTypeScriptVolcengine's context database for agents, with a Jev rerank client that scores candidate documents with jev-latest as relevance.
LibraryproductionPythonMulti-user MCP 'agents' cloud' on Cloudflare Workers with an optional search stage that reranks candidates with Workers AI Jev scores.
MCP serverbetaTypeScriptZilliz's cross-agent Markdown memory with an optional Jev reranker that asks yes/no relevance questions about retrieved chunks.
LibraryproductionPython