Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
<p><strong>The Memory Layer for AI That Never Forgets</strong></p>
<p>Give every AI agent and LLM interface persistent, cross-platform memory out of the box.</p>


<img src="https://img.shields.io/badge/python-3.11+-blue?logo=python&logoColor=white" alt="Python 3.11+"/>
<img src="https://img.shields.io/badge/license-BSD--3--Clause-green" alt="BSD-3 License"/>
<img src="https://img.shields.io/badge/FastAPI-00C7B7?logo=fastapi&logoColor=white" alt="FastAPI"/>
Expand Down Expand Up @@ -134,12 +133,12 @@ Not all memory is the same, and treating it that way is why other solutions unde

### Agentic Retrieval

When you query XMem, retrieval is not a simple vector search. The LLM itself decides *what* to look up:
When you query XMem, retrieval is not a simple vector search. The LLM itself decides _what_ to look up:

1. **Tool Selection** - The retrieval LLM analyzes your query and calls the appropriate search tools (SearchProfile, SearchTemporal, SearchSummary, SearchSnippet), potentially multiple in parallel.
2. **Synthesis** - Results from all search tools are aggregated and the LLM generates a cited answer with source references.

This means asking *"What's my preferred tech stack and when did I last refactor the auth module?"* triggers both a profile lookup and a temporal search automatically.
This means asking _"What's my preferred tech stack and when did I last refactor the auth module?"_ triggers both a profile lookup and a temporal search automatically.

### Multi-LLM Orchestration with Fallback

Expand Down Expand Up @@ -304,6 +303,7 @@ The industry standard benchmark for long-term conversational memory. Tests wheth
> XMem matches Backboard.io across all categories, both scoring near-perfect on session recall and preference tracking. XMem outperforms Mastra by **9.2 points** and Supermemory by **11.8 points** overall.

### How We Benchmark

- **Evaluation**: LLM-as-Judge using Gemini with structured rubrics
- **Fairness**: All systems tested with identical conversation histories and queries

Expand All @@ -312,8 +312,8 @@ The industry standard benchmark for long-term conversational memory. Tests wheth
### 1. Start the XMem Server

```bash
git clone https://github.com/XortexLabs/xmem.git
cd xmem
git clone https://github.com/XortexAI/XMem.git
cd XMem
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

While updating the directory name to XMem here is correct, the 'Install the Chrome Extension' section (lines 331-333) is also missing a cd xmem-extension command after cloning. Users following these steps sequentially will still be inside the XMem directory, which will cause the npm install command in the next step to fail. It would be best to add the missing cd command to that section as well to ensure the Quickstart remains functional.


# Install (requires Python 3.11+)
pip install -e .
Expand All @@ -334,10 +334,8 @@ npm install && npm run build

Load `dist/` in Chrome via `chrome://extensions` &rarr; "Load unpacked". Point it to your server URL.


https://github.com/user-attachments/assets/605985c3-ef27-4096-a28c-b0b4cc6f8b8d


### 3. Index a Repository (Optional)

```bash
Expand All @@ -350,11 +348,13 @@ python -m src.scanner.runner \

> [!TIP]
> For a fully local setup with no cloud dependencies:
>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The example value for FALLBACK_ORDER in the tip ('["ollama"]') uses a JSON list format, which is inconsistent with the comma-separated format shown in the configuration table at line 370. While Pydantic-settings can often parse JSON strings for list types, using a simple comma-separated string (e.g., FALLBACK_ORDER=ollama) is more standard for .env files and matches the documentation elsewhere in this file. This inconsistency might lead to validation errors if the string is not parsed as expected by the validate_fallback_order check in src/config/settings.py.

> ```ini
> FALLBACK_ORDER='["ollama"]'
> EMBEDDING_PROVIDER=fastembed
> VECTOR_STORE_PROVIDER=chroma
> ```
>
> Then install local extras: `pip install -e ".[local]"`

## Configuration
Expand Down
Loading