Memory & Knowledge
Usejarvis maintains a persistent knowledge vault stored in SQLite. After every response, it automatically extracts entities, facts, relationships, and commitments from the conversation and stores them. Relevant knowledge is injected into the system prompt of future conversations to help reuse context about you, your projects and your preferences. Extraction and retrieval are selective and can miss or misinterpret information.
How Memory Works
Section titled “How Memory Works”The memory system operates in two directions: writing (extraction) and reading (retrieval).
Writing: Automatic Extraction
Section titled “Writing: Automatic Extraction”After every response the primary agent generates, an extraction process runs fire-and-forget in the background:
- The completed exchange (user message plus agent response) is sent to the LLM with an extraction prompt
- The LLM identifies entities, facts about them, relationships between them, and commitments with due dates
- Everything is written into the vault’s knowledge graph
- The extraction does not delay or block your next message
Usejarvis attempts to extract useful knowledge from completed conversations. Goal completions are also extracted into the vault. Extraction is the write path; there are no agent-facing “store memory” tools.
Reading: Retrieval and Injection
Section titled “Reading: Retrieval and Injection”When you send a message, before generating a response:
- Usejarvis extracts search terms from your message
- Terms are matched against entity names and against fact predicates and objects in the vault
- Matched entities (up to 10 per turn) are expanded with all their facts and relationships and assembled into a knowledge context block
- This block is injected into the system prompt for the current turn
Messages that refer to yourself (“I”, “my”, “me”) additionally pull in your stored user profile entity, to improve retrieval of personal context when that profile exists.
The Knowledge Graph
Section titled “The Knowledge Graph”The vault is a graph, not a flat notes table:
| Table | Contents |
|---|---|
entities | Typed nodes: person, project, tool, place, concept, event |
facts | Subject/predicate/object rows about an entity, with confidence |
relationships | Typed edges between entities |
commitments | Things you said you would do, with due dates and priority |
observations | Awareness-derived observations |
vectors | Embeddings for semantic similarity (being wired into retrieval) |
So “Vieri works at usejarvis and prefers concise answers” is stored as a person entity with facts attached, not as a free-text note.
Explicit Memory
Section titled “Explicit Memory”You can always tell Usejarvis to remember something. The extraction pass treats direct statements (“remember that…”, “my API key rotation day is Monday”) as high-priority material for the vault.
Inspecting the Vault
Section titled “Inspecting the Vault”The Memory room in the dashboard shows entities and their facts. Directly:
sqlite3 ~/.jarvis/jarvis.db "SELECT * FROM entities LIMIT 20"sqlite3 ~/.jarvis/jarvis.db "SELECT * FROM facts LIMIT 20"Privacy
Section titled “Privacy”The vault lives on the machine running the brain, commonly in ~/.jarvis/jarvis.db. For self-hosting, that is your chosen machine or server. On a hosted plan, the brain and its stored knowledge run on the hosting servers.
Extraction uses the configured model provider; retrieved facts can become part of the context sent with a model request. Self-hosting alone does not make external model or speech providers local. See privacy and data flows.
What persistent memory does not guarantee
Section titled “What persistent memory does not guarantee”Persistent means knowledge can survive a conversation or restart. It does not mean every fact is extracted, every source is current or every relevant fact is retrieved on each turn. Corrections in a new conversation may need to be checked in the Memory room. For a critical task, supply the source explicitly and inspect the output.
Inspect, correct and remove
Section titled “Inspect, correct and remove”Start in the dashboard Memory room to inspect the entities and facts available to the brain. Check names, values and source context before relying on a remembered claim. Use the controls supported by your installed version to manage entries; deleting a memory entry does not retract content already sent to a model provider or remove copies in conversation history.
For a hosted data correction, export or deletion request, use the process in your rights and controls. Self-hosters manage their brain’s database and backups. Deleting the entire database also removes other runtime state; it is not a targeted memory correction.