SAG2

Lighter to deploy. Faster to index. Better at finding evidence.

First page of SAG2: Embedding-Free Multi-Hop Retrieval with BM25 and JEV
arXiv:2610.22588

Index the text, then retrieve the facts you need

SAG2 builds on SAG's approach to connecting documents. It indexes the original text by keywords, removing LLM processing and embeddings from preparation. When a question arrives, it finds useful passages and follows their terms to retrieve more evidence.

Lighter: one database file
Keep text and indexes in a SQLite file, without a separate database server or vector store.
Faster: no models needed for indexing
Build a keyword index directly from the text. In the paper's experiment, indexing 11,656 passages took 2.36 seconds, with no LLM or embedding calls.
More accurate: connect source passages
Use what has already been found to retrieve more of the facts a complex answer needs. Compare results on three public benchmarks below.
86.62%Evidence found in the top tenMuSiQue · Recall@10
81.10%Enterprise document recall511,962 documents · Recall@10
2.36 sTime to index 11,656 passagesMuSiQue · No indexing model calls

Results from the papers. Benchmarks, metrics and test conditions are explained below.

01 / HOW IT WORKS

Take a term from a passage and search again

SAG2 indexes the original text. At query time, BM25 retrieves passages, JEV selects useful evidence, and terms from that evidence drive another search.

SEARCH–JUDGE–EXPAND1 / 5
How long is Nora's warranty?
PREPARATION

Source text + keyword index → one SQLite file

Local text indexing, with no model calls
BM25JEVTERMS
New terms return to BM25 for another search
READY TO SEARCHNoraFrom the original question
PASSAGE A · PRODUCTPENDING

Nora support follows policy R-17.

PASSAGE B · DESIGNPENDING

Nora packaging comes in two colors.

Related passages have not been searched yet
CONTEXT FOR JEV

Question + selected passage A → inform the next judgment

Evidence recovered: Nora → R-17 → two years

Index the original text

Store source passages and term occurrences in SQLite. Build the full-text index locally, with no model calls.

A fictional example illustrating the retrieval process. Select any step to inspect it; autoplay stops after one pass.

VIDEO / SAG2

SAG2 explained

See how embedding-free indexing, BM25, JEV and successive searches work together.

Video and resources on GitHub
Play on demand · Full screen available

02 / BENCHMARKS

Find more supporting facts on three public benchmarks

Recall@5 measures the required evidence found in the first five results; Recall@10 looks at the first ten. Recovering more of those facts gives an agent a more complete basis for its answer.

MuSiQueRecall@10 · Higher is better

+3.25 points vs SAG

SAG2
86.62%
SAG
83.37%
NV-Embed-v2
77.27%
GritLM-7B
75.19%
HippoRAG 2
73.76%
GTE-Qwen2-7B
70.80%
BGE-Large-EN-v1.5
64.08%
BM25
54.41%
Contriever
53.58%

1,000 fixed development questions per benchmark; MuSiQue was also used during development. Values follow the SAG2 paper. SAG and SAG2 use different models and implementations, so these compare the complete systems.

Full benchmark dataRecall@10
SAG2 paper · Recall@10 (%)
MethodMuSiQue2WikiMultiHopQAHotpotQA
BM2554.4171.5086.90
Contriever53.5865.2082.75
BGE-Large-EN-v1.564.0873.7593.35
GTE-Qwen2-7B70.8078.6393.55
GritLM-7B75.1979.4097.20
NV-Embed-v277.2780.7597.70
HippoRAG 273.7693.4097.15
SAG83.3793.5797.70
SAG286.6297.4399.00
Source: paper, Table 1

03 / ABLATION STUDY

The design choices that help find more evidence

Use the same 1,000 MuSiQue questions to test fewer search rounds and judgments made without the passages already found.

MuSiQue · Recall@10

Full SAG2 · two expansions86.62%
One expansion83.36%
No shared context76.25%
No expansion · BM25 + JEV67.93%
+15.43 points

One more search round finds more evidence

Initial retrieval reaches 67.93% Recall@10. One additional search round raises it to 83.36%, and two reach 86.62%.

+10.37 points

Use known facts to assess new passages

Judging new passages without the facts already found lowers Recall@10 from 86.62% to 76.25%.

Source: Figure 4 and §5.3

04 / SCALE & PREPARATION

Fast to index, tested on half a million documents

Preparation builds a keyword index directly from the text, without LLMs or embedding models. Below are the indexing measurements and retrieval results on more than half a million documents.

01 / INDEXING COST

Measured indexing cost on MuSiQue

2.36s

To index 11,656 source passages by keyword

Source passages
11,656
Database file
25.87 MiB
Indexing model calls
0

Timing comes from the paper's experiment; it varies with hardware and the documents being indexed.

02 / RETRIEVAL AT SCALE

EnterpriseRAG-Bench

81.10%

Required documents found in the top ten · Recall@10

BM25 68.40%Vector 46.00%

511,962 synthetic documents model company emails, messages, meetings and other records. 470 questions identify the documents needed. Baselines come from the dataset paper with different compute budgets; this measures document retrieval, not generated answers.

Source: paper, Tables 2–3

05 / DEPLOYMENT

Deployment and use

Reproduction and configuration

Local deployment

Keep source text and keyword indexes in one SQLite file. Indexing needs no LLM or embedding model calls.

Retrieval and answers

JEV judges passages during semantic retrieval; useful passages drive further searches. Connect your own model to generate answers.

Validate before use

The paper uses fixed test sets. Measure retrieval quality and online speed on your own documents and hardware.

06 / RELATED PRODUCT

SAG Wiki

A local knowledge base powered by SAG2. Choose a folder to search supported documents, notes and code, then ask questions and check the cited source passages.

  1. Choose a folder

    Add supported documents, notes and code

    01
  2. Search or ask

    Retrieve the relevant passages with SAG2

    02
  3. Check citations

    Return from the answer to the original passages

    03