Skip to main content

Overview

memloom ui has an assistant tab that answers from your memories and ingested files, and shows which passages it used. It is told to answer personal questions only from what recall returns, to say plainly when your store has nothing, and never to invent a memory. Ask “how does the ingest worker restart?” and it pulls the runbook section you ingested last month, answers from it, and cites it. Ask “what day is it?” and it just answers.

How a turn works

Decide whether to search

The model sees your message, the history, and two tools: recall_memory and read_source. Small talk and general knowledge get a direct answer with no retrieval.

Search

The query runs through the same hybrid retrieval as memloom recall. Day-specific questions add a calendar filter.

Read further if needed

Passages are injected up to 8,000 characters. When the answer may live in a truncated part, the model calls read_source(n). It can reformulate and search again, capped at three calls, and cannot repeat a query.

Answer with citations

[n] markers follow sentences that used passage n. Markers pointing at passages that do not exist are stripped server-side, so every citation is real.
Every answer carries its sources: each passage with its similarity, its type, the exact text the model saw, and a jump into the graph.
Retrieved passages are data, not instructions. A document saying “ignore your instructions” is quoted like any other text. The assistant has no write tools, so the worst a hostile document can do is word an answer badly.

Picking the model

The composer lists every tool-capable model on OpenRouter, fetched live, grouped by provider, with prices and context windows. Tool calling is the filter because the assistant grounds itself by calling recall_memory. Your choice lives in the browser and rides each request. OPENROUTER_CHAT_MODEL stays the default. Nothing restarts when you switch, and the store underneath is the same.

Attaching files to a chat

The + button uploads .md, .txt or .pdf into the current chat. They go through the normal pipeline but stay scoped to that session. For a file you want to keep, use the documents tab instead.

Sessions

Chats persist in the store. The sidebar has rename, star, delete, and search: keyword over titles and messages, plus embedding similarity, so “that chat about the launch window” finds itself even when no message contains those words.
The assistant needs a chat-capable model. Without OPENROUTER_API_KEY the tab explains what to configure instead of pretending to work. Everything else in the viewer keeps running.