COMPARE · COMPARISON: AGENT MEMORY

XERJ vs ReMe (Alibaba Tongyi Lab): a tested comparison

AUTHOR · XERJ documentation team · REVIEWED BY · XERJ engineering team · PUBLISHED · 2026-10-31 · UPDATED · 2026-10-31
SHORT ANSWER · UPDATED 2026-10-31

XERJ or ReMe? In our test both found the right memory in the top 5 for 93.3% of questions with hybrid search on. ReMe's default setup is faster but keyword only, and embeddings need extra config. Pick ReMe for Markdown memory files you can read and edit. Pick XERJ for one binary with semantic recall built in.

Key number: ReMe is published by the EconML team of Alibaba Tongyi Lab. Its embeddings are off by default; BM25 search runs with no LLM or API key. (as of 2026-10-31 · source: github.com/agentscope-ai/ReMe)

TL;DR ReMe, from Alibaba's Tongyi Lab, keeps agent memory as Markdown files and indexes them in the background. XERJ is one binary that indexes each memory as it is written. On our 75 question test, both reached 93.3% top 5 recall with hybrid search. XERJ ran in neural mode. ReMe's default is faster and keyword only.

Diagram

Where a memory goes in ReMe and in XERJ

ReMe

  1. WriteMarkdown fileA note lands in the daily/ folder of the workspace.
  2. WatchFile watcherA background loop sees the change and chunks the file.
  3. IndexBM25, vectors if onEmbeddings are off by default.
  4. SearchRRF, then linksHits are fused and expanded along wikilinks.

XERJ

  1. WritePOST /_memory/nsThe text is indexed in the same request.
  2. IndexBM25 and vectorsOne index per namespace. MiniLM is built in.
  3. RecallBM25, semantic or hybridOptional recency weight favors newer memories.
ReMe's flow is from its docs/en/memory_search.md. In our run ReMe took 6.0 seconds after the last write before that memory was searchable, because the watcher indexes in the background. XERJ memories were searchable after one refresh call.
PASTE THIS TO YOUR AI AGENT — IT DOES THE REST Act as a coding agent. Read https://xerj.org/llms.txt, install XERJ, start a local node with --embed-mode neural, store eight facts about this project with POST /_memory/project, then recall each one with a reworded question using hybrid recall and tell me how many came back in the top 5.
RUN THIS XERJ COMMAND curl -fsSL https://xerj.org/get | sh Install the single XERJ binary.
RUN THIS XERJ COMMAND xerj --embed-mode neural Start a local node with the built-in MiniLM embedder.
RUN THIS XERJ COMMAND curl -s -XPOST 'http://127.0.0.1:9200/_memory/project/_recall' -H 'content-type: application/json' -d '{"query":"which database do we use","hybrid":true,"k":5}' Hybrid recall: BM25 and vectors fused by RRF.

Tested side by side

Same 85 memories, same 75 questions, same MiniLM model for embeddings. Top 5 is the share of questions where the right memory came back in the first five.

ReMe 0.4.2.1XERJ v1.0.0-rc.100
Top 5, default settings70.7% (BM25)73.3% (BM25)
Top 5, reworded questions, default20%24%
Top 5, hybrid with MiniLM93.3%93.3%
Top 5, reworded, hybrid80%84%
Top 5, semantic onlyNot tested94.7%
New value first, changed facts20% default, 13.3% hybrid13.3%; 93.3% with recency weight
Median write, default2.7 ms, searchable after about 6 s11.3 ms, searchable after one refresh call
Median query, default1.4 ms3.8 ms
Median query, hybrid12.0 ms6.5 ms
LLM calls per write in this test00
Python packages to install138 (reme-ai[as])0, one binary
Memory formatMarkdown files with wikilinksIndex per namespace, JSON over HTTP
LicenseApache 2.0Apache 2.0

Question by question

Pick a question type to see which memories each setup found. A check means the right memory was in the top 5.

Try it: every question we asked

XERJ and ReMe, question by question

QuestionAnswerXERJ BM25XERJ hybridReMe defaultReMe hybrid
Does Dana prefer pnpm or npm?pnpm1111
What is the main database for Lark?PostgreSQL1111
What is Dana allergic to?peanuts1111
Which region does the staging cluster run in?eu-west-31111
What is Lark's frontend written in?Svelte1111
Where does error tracking for Lark go?Sentry1111
What is Dana's cat named?Biscuit1111
How fast must the test suite finish?12 minutes1111
What does the billing service use for card payments?Stripe1111
What is the Lark mobile app built with?Flutter1111
What is the Lark design system called?Pebble1111
Where are Lark's public docs hosted?Mintlify1111
What is the analytics warehouse?ClickHouse1111
What is the support inbox address?[email protected]1111
Which day does Dana's daughter Mia have swim practice?Wednesdays1111
What is the load balancer in front of Lark?HAProxy1111
What do background jobs run on?Sidekiq1111
What is Dana's GitHub handle?dana-codes1111
What is the Redis cache TTL?300 seconds1111
What is the Slack channel for incidents?lark-fire1111
Where are secrets stored?Vault1111
What is transactional email sent through?Postmark1111
What is the monorepo built with?Turborepo1111
When do database backups run?02:001111
What is Lark's mascot?Hugo1111
Which package manager should I use for JS work?pnpmmiss2miss2
Does she have any food intolerance I should know about before ordering lunch?peanutsmiss1miss1
Who is the boss Dana answers to?Tomas3missmiss5
Which UI framework powers the web client?Sveltemissmissmissmiss
Where do crash reports and exceptions end up?Sentrymiss1miss1
What is the name of her pet?Biscuitmiss1miss2
How does Dana take her coffee?oat milkmiss3missmiss
Which company handles credit card charges?Stripe1111
What computer does she use at the office?ThinkPadmiss5miss2
Which toolkit was used for the iOS and Android client?Fluttermiss2miss1
What style should git log entries follow?imperativemiss5miss5
Which language does Dana like coding in most?Rust1111
Is there a legal rule about where user records may be kept?inside the EUmiss1miss1
What sport does Dana's kid do midweek?swimmiss2missmiss
How long should a call with Dana be?25 minutesmiss5miss3
Does Dana eat meat?vegetarian1121
Which human languages does the product UI support?Portuguesemiss5miss3
Where do we keep passwords and API tokens?Vaultmiss2miss4
What exercise does she do at the weekend?10kmiss4miss2
Which tool maps the JavaScript backends to SQL tables?Prismamissmissmissmiss
How quickly should a pull request get feedback?same daymissmissmissmiss
What bird represents the brand?heronmiss3miss1
Which city is home to Dana's sibling?Portomiss3miss1
How slow may search get for the slowest one in twenty requests?200 ms1152
Under which open source terms is the code published?MPL-2.01111
What port does the Lark API listen on in production?94432, old first2, old first2, old first2, old first
Which day does Dana's team deploy to production?Tuesdays1111
Who is Dana's manager?Tomasmissmissmiss4, old first
What code editor does Dana use?Zed2, old first2, old first2, old first2, old first
Where does the Lark CI pipeline run?GitHub Actions2, old first2, old first2, old first2, old first
What is Lark's search feature backed by?Typesense2, old first2, old first2, old first2, old first
Where are feature flags managed?Unleash2, old first2, old first2, old first2, old first
How long are application logs retained?90 days4, old first3, old first4, old first2, old first
What timezone does Dana work on?Berlin3, old first2, old firstmiss2, old first
When do auth JWTs expire?60 minutes1111
What do Lark's Python services use for dependency management?uv2, old first2, old first2, old first2, old first
When is the Lark 2.0 launch?April 22, old first2, old first12, old first
Which floor is Dana's desk on?3rd floor2, old first2, old first2, old first2, old first
What is the Lark API rate limit per key?12002, old first2, old first2, old first2, old first
Which Kubernetes version runs in production?1.332, old first2, old first2, old first2, old first
What is the staging database for Lark?MySQL1111
Which package manager does Dana's brother prefer?yarn2224
What port does the internal admin API listen on?70011111
Which day does the marketing website deploy?Fridays1111
What is Priya's cat named?Pixel1111
How long are search query logs retained?7 days1111
What is the mobile app's rate limit?100 requests1111
What does the data team use for local analysis?DuckDB1111
What was Dana's old personal laptop?MacBook1111
Which street is Mia's school on?Rua das Flores1111
Runs in your browser and sends nothing. Each cell is the rank of the first returned memory that holds the answer, or miss if none of the top 5 does. "old first" means the old value of a changed fact ranked above the new one. From out/per_question.csv in benchmarks/agent-memory.

When to pick ReMe

When to pick XERJ

Limits on the XERJ side

See the full AI agent memory benchmark for all seven projects.

Try it with XERJ

Use the Copy the prompt button and paste it into your coding agent. It installs XERJ, stores eight facts and checks how many reworded questions find them.

Sources checked

All checked on 2026-10-31.

FAQ

Is ReMe from Alibaba?

Yes. ReMe lives in the agentscope-ai GitHub organization, and its package lists the EconML team of Alibaba Tongyi Lab as authors. It is Apache 2.0.

Does ReMe need an LLM?

Not for basic use. Writing files, BM25 search and wikilinks run with no LLM key. Auto Memory, which turns sessions into memory cards, and memory evolution do call an LLM.

Which one recalled more in your test?

With default settings, XERJ BM25 found 73.3% in the top 5 and ReMe 70.7%. With MiniLM embeddings, both hybrid modes found 93.3%. XERJ semantic recall found 94.7%.

Which one is faster?

ReMe's default setup: 1.4 ms per query and 2.7 ms per write, against 3.8 ms and 11.3 ms for XERJ BM25. ReMe indexes in the background, so a new memory took about 6 seconds to become searchable. XERJ hybrid queries took 6.5 ms and ReMe hybrid 12.0 ms.

How did you turn on ReMe embeddings?

The default config points at DashScope's text-embedding-v4. We followed ReMe's README to enable the embedding components and pointed them at a local MiniLM endpoint, so both tools used the same model.

Evidence

Related