← Back to archive

Repo of the Day

infiniflow/ragflow: RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs

Published: Sep 1, 2026

Open repository ↗

RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs - infiniflow/ragflow

Summary

RAGFlow is an Apache-2.0 open-source Retrieval-Augmented Generation engine written in Go that fuses RAG pipelines with agent capabilities to supply LLMs with grounded context. It ingests heterogeneous documents, parses and chunks them with template-based rules, and exposes retrieval, reranking, and reasoning through both a web UI and APIs.

What it is useful for

RAGFlow is useful when engineers need a self-hosted system that turns messy private corpora into LLM-ready context. It supports ingestion from Word, Slides, Excel, TXT, scanned images, structured data, and web pages (including sitemap-based website ingestion added in the 2026-09-10 release). Document parsing is handled by DeepDoc, which runs in-process for layout analysis, OCR, and table recognition.

Beyond single-shot retrieval, the project provides:

  • Template-based chunking with visual, explainable splits that can be inspected in the UI.
  • Knowledge Compilation, introduced in 2026-08-19, which generates structured artifacts (Wikis, Graphs, Trees, PageIndex, Mind Maps, Timelines, Skills) from a document or dataset.
  • Agentic Retrieval with configurable Low, Medium, High, and Ultra thinking modes for multi-step question decomposition and evidence verification.
  • Grounded citations that link each answer back to the source chunks.

A Go-native service architecture runs API, Admin, Ingestor, and Syncer from a single ragflow_server binary, with MCP and a Sandbox Executor as optional components. Documented limitations include CPU-only DeepDoc inference in the 1.0 open-source release and additional resource needs when running local models.

How engineers can use it

For most teams, the documented Docker path is the starting point. Prerequisites are Docker ≥ 24.0.0, Docker Compose ≥ v2.26.1, about 4 CPU cores, 16 GB RAM, and 50 GB of disk. If using Elasticsearch (rather than Infinity) as the document engine, the README requires setting vm.max_map_count to at least 262144 on the host, and gVisor is required only for the Self-Managed container Sandbox.

The documented startup sequence is:

git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
git checkout v1.0.0-rc1
docker compose -f docker-compose.yml up -d
curl -f http://localhost/api/v1/system/healthz

An HTTP 200 from the healthz endpoint signals readiness. After signing in through the web UI, engineers add their LLM, embedding, and reranker providers on the model provider page.

Engineers who want to run the Go services from source need Go 1.27, Clang 20, LLD 20, CMake ≥ 4.0, PCRE2 development files, and CGO-enabled native libraries. The README documents running ./bin/ragflow_server in --migrate, --admin, --ingestor, --syncer, and --api modes across separate terminals, with RAGFLOW_DEV_MODE=true limited to development. Full configuration options and SDK usage are in the project documentation at ragflow.io/docs/dev.