Recall

Case study

An AI agent that remembers what matters.

The problem

Most AI chat systems treat conversations independently and repeatedly require users to provide the same context.

The solution

Recall introduces controlled persistent memory that retrieves only context relevant to the current request — and hands the user full control over it.

How the agent works

  1. 01User requestThe message arrives at a server function — never straight to the model.
  2. 02Intent analysisThe controller decides whether stored context could change the answer.
  3. 03Memory decisionDurable facts get saved; one-off questions never do.
  4. 04Semantic retrievalThe request is embedded and ranked against the user's memories.
  5. 05Tool selectionThe model calls memory_search, create, update, delete or list.
  6. 06Context augmentationOnly memories above the relevance threshold enter the prompt.
  7. 07LLM responseThe answer is generated with that narrow, relevant context.
  8. 08Optional memory updateNew durable information is merged into existing memories.

Architecture

UserBrowser — no keys, no privileged access
request
Recall frontendTanStack Start · React
server function
Agent controllerAuth, validation, rate limiting, event log
LLMLovable AI Gateway
Memory retrievalIntent → ranked context
Tool layersearch · create · update · delete · list
embed + rank
Vector searchCosine similarity over embeddings
owner-scoped query
Memory databasePostgres with row-level security

Core AI capabilities

  • Agent orchestration
  • Tool calling
  • Persistent memory
  • Semantic retrieval
  • Context management
  • User-controlled memory
  • Secure multi-user architecture

Try the demo scenario

1Teach it something durableSend: "Remember that I prefer product recommendations under ₹10,000." The activity panel shows the memory decision → SAVE and the memory_create tool call.
2Start a fresh conversationClick New conversation — nothing from the first chat is in context.
3Ask something relatedSend: "Recommend a good keyboard for me." Activity shows memory_search → 1 relevant memory found → memory used, and the answer respects the budget.
4Audit and control itOpen Memories to edit, deactivate or delete anything the agent kept.
Run the scenario

Technology actually used

Frontend
React 19, TanStack Start & Router, TanStack Query, Tailwind CSS v4
Agent runtime
Server functions on the app's server runtime — no agent logic in the browser
Models
Lovable AI Gateway — Gemini 3.7 Flash for reasoning + tool calling, Gemini embeddings for retrieval
Retrieval
Embedding cosine similarity ranking with a 0.55 relevance threshold and a 0.90 duplicate-merge threshold
Database
Postgres (Lovable Cloud) with row-level security scoped to the authenticated user
Auth
Email/password and Google sign-in; isolated HTTP-only cookie sessions for guests
Observability
Structured agent_events rows — observable actions only, never model reasoning