kb-bench

Self-hosted AI knowledge base platforms, ranked

Six platforms installed on a clean host from their own published images, pointed at the same embedding model, fed the same 11 public documents and asked the same 29 questions.

The ranking in one line

Dify scores highest — best overall: ingested everything and retrieved the most answers. But the composite covers only what this run measured, and no platform won every dimension: which one is right depends on the job, and four different platforms win one.

Ranking

# Platform Score Verdict Best for
1 Dify 1.16.1 7.7 Best overall: ingested everything and retrieved the most answers Internal documentation search
2 Open WebUI 0.11.0 7.7 Lightest platform that ingested everything, with thin knowledge controls Chat first, retrieval second
3 RAGFlow 0.26.4 6.1 Only permissive licence, and complete ingestion — at four times the memory Resale and redistribution
4 FastGPT 4.15.8 5.8 Best fidelity: kept 97% of exact figures, but slowest and dropped large files Contracts and statements
5 AnythingLLM 1.16.0 5.7 Smallest footprint by far, but failed on five of eleven documents Small documents, small host
Flowise 3.0.6 n/a Current release does not start, and the API cannot be automated Not recommended

Scored out of 10 on the four dimensions this run measured: retrieval accuracy 35%, ingestion completeness 25%, parsing fidelity 25%, memory footprint 15%. Parsing is multiplied by the share of the corpus a platform actually ingested, so a high rate earned by skipping the hard documents does not bank. Memory is scored on a log scale because it behaves like a threshold rather than a linear cost. Flowise is unranked because its current release does not start.

What this score does not include: workflow orchestration, integration breadth and licence terms are part of the methodology but were assessed by reading rather than measured in this run, so folding them into a composite would put a number on something that has none behind it. They are covered on each platform's page instead — and they matter: the platform ranked third here is the only one whose licence permits reselling a hosted deployment, and the one ranked highest treats retrieval as a feature of a chat product rather than as the product. The weighting is a judgement and the raw rows are published so you can apply your own.

The measurements behind the ranking

Platform Ingested Parsing Retrieval Chunks Peak memory Ready Corpus time
dify 11/11 82% 66% 1,149 2,572.7 MB 39 s 30 s/doc
openwebui 11/11 61% 62% 1,281 912.9 MB 18 s 54 s/doc
ragflow 11/11 80% 45% 393 10,326 MB 511 s 86 s/doc
fastgpt 8/11 97% 41% 340 3,227 MB 239 s 45 s/doc
anythingllm 6/11 100% 41% 74 394.2 MB 146 s 30 s/doc

A tilde marks a figure the platform's API cannot report exactly — two expose no way to list stored chunks, so their parsing is approximated by exhaustive retrieval and can only under-report. An asterisk marks a rate covering only part of the corpus: the highest parsing figure here belongs to the platform that ingested the fewest documents.

Which one for which job

No platform won every dimension, and the one at the top is the wrong choice for at least two of these:

Internal documentation

Mixed formats, recall matters most — Dify

Contracts and statements

A figure must survive exactly — FastGPT

A small VPS

Under a gigabyte, small documents — AnythingLLM

Provisioned by CI

Everything scriptable, no browser — FastGPT

The finding that inverts the ranking

The platform that preserved the most facts retrieved the fewest of them. FastGPT kept 97% of the figures planted in the corpus and answered 41% of the questions. The explanation is chunk size, and it lines up almost exactly:

PlatformChunks storedRetrieval accuracy
openwebui 1,281 62%
dify 1,149 66%
ragflow 393 45%
fastgpt 340 41%
anythingllm 74 41%

Given identical documents, Dify stored more than three times as many pieces as FastGPT. Smaller passages rank better against specific questions; larger ones keep more context intact but bury the answer where retrieval never surfaces it. Preserving a fact and being able to find it again are different properties, and most comparisons measure neither.

How this was measured

Deployed, not read about

Every figure came from a running install, not a requirements page.

No model judges anything

Facts planted in real documents, then searched for as exact strings.

Failures published

Documents that would not ingest are in the data, not filtered out.

Reproducible

The harness is open source and rebuilds the same corpus.