mrkeyoor.com_
Thu 22 Oct 18:05 UTC
LLM Toolsevaluationupdated 22 Oct 2026

RAG-Anything review

RAG-Anything adds document parsing and image, table and equation processing to LightRAG. It is a Python framework for developers building retrieval applications, with separate parser and model choices.

Verdict

RAG-Anything merits a controlled pilot when answers depend on mixed document content and a Python team can own parser and model integration. Our measured checkout installed and built, but the suite reported 200 failed tests and pip-audit reported 44 known vulnerabilities. The visible async-runner errors limit what those failures establish about retrieval correctness. Investigate the failures and affected dependencies, then validate answers against representative figures and tables before accepting production documents. The later v1.4.3 release is not a retest of our checkout.

We ran it

Lab card: what happened when we ran RAG-AnythingScreenshot of RAG-Anything (arxiv.org/abs/2510.12323)
Install✓ · 40s198 packages · 1400 MB
Build✓ · 1s
Tests✗ · 10s518 passed · 200 failed of 718 (pytest)
Known vulns44(pip-audit)
Repo131 files~37,096 lines of source · 4.4 MB · 3 CI workflows · tests dir

Answers from our run

Does RAG-Anything build from source?

Dependencies installed in 40 seconds (198 packages), and the build succeeded in 1 seconds. We cloned commit 9a8133c into a clean Debian container with 3 CPUs and no project-specific setup.

Do RAG-Anything's tests pass?

No. The project's own test command finished in 10 seconds and reported 518 passed, 200 failed (pytest).

Does RAG-Anything have known vulnerabilities in its dependencies?

pip-audit flagged 44 known advisories in the dependency tree at the time of our run.

Who should not use RAG-Anything?

Teams requiring a passing source suite before adoption: our recorded pytest run reported 200 failures.

What are the alternatives to RAG-Anything?

LightRAG, Docling. RAG-Anything merits a controlled pilot when answers depend on mixed document content and a Python team can own parser and model integration.

Setup3/53/5 under the existing setup criteria: installation and build succeeded, but parser and model wiring remain necessary and the recorded suite reported 200 failures. The existing 5/5 threshold requires a verified document-to-answer path without unresolved setup checks.
Docs4/54/5 under the existing documentation criteria: the supplied README includes model-function examples, content-list insertion and parser restrictions. The existing 5/5 threshold requires full-workflow validation; the examples were read, not exercised as a complete application.
CommunityN/AA merged correction and release document maintenance activity, but the supplied evidence does not assess support responses across a representative issue sample.
MaturityN/ANo sustained ingestion or retrieval-quality workload was recorded. The failed suite and dependency findings do not establish long-term production reliability.

Who it’s for

Python developers whose document questions depend on figures, tables or equations alongside text.
Teams using LightRAG that need direct control over multimodal ingestion.
Builders with already parsed content who want to insert content lists.
Operators able to investigate test failures and dependency advisories before accepting production documents.

Who it’s NOT for

Teams requiring a passing source suite before adoption: our recorded pytest run reported 200 failures.
Operators unable to investigate the 44 known vulnerabilities reported in our installed environment.
HTML workflows that must use MinerU or PaddleOCR: v1.4.3 requires a parser with a native HTML entry point, which among built-in parsers means Docling.
Applications expecting to change parsers through each process_document_complete call.
Restricted machines without a plan for the parser models that the README says download automatically on first use.

Setup reality

Our sandbox installed RAG-Anything commit 9a8133c in 40 seconds, recording 198 dependencies and 1,400 MB on disk. The build succeeded in 1 second. Pytest failed with exit 1 after 10 seconds: 518 passed and 200 failed of 718. Pip-audit reported 44 known vulnerabilities. This was the October 20, 2026 run with 3 CPUs and 8 GB of RAM.

The README's document-processing example configures working storage, a parser, language-model and embedding functions, and a vision function. Its hosted model calls use an API key and optional base URL. Parser models download on first use, and the documented Office conversion route requires LibreOffice.

The visible test failures say async functions are not natively supported. The supplied log tail does not establish the cause of every failure or demonstrate incorrect retrieval answers. The sandbox image label does not verify actual Python or operating-system versions. Release v1.4.3, published after the measured run, was not the measured checkout.

When figures and tables determine the answer

RAG-Anything is worth evaluating when a document answer depends on a figure, table or equation that plain-text extraction loses. Built on LightRAG, it provides separate processors for those content types and accepts already parsed content lists. That gives a Python application control over ingestion, while leaving its owner responsible for parser selection, storage and model functions.

The README documents both complete document processing and direct content-list insertion. If an existing extractor already supplies the needed content, insertion offers a route that bypasses document parsing. These are documented capabilities; our sandbox did not establish the quality of a complete document-to-answer workflow.

What happened when we ran it

Our sandbox installed RAG-Anything commit 9a8133c in 40 seconds, recording 198 dependencies and 1,400 MB on disk. The build succeeded in 1 second. Pytest failed with exit 1 after 10 seconds, reporting 518 passed and 200 failed of 718. Pip-audit reported 44 known vulnerabilities in the installed environment.

The run took place on October 20, 2026, with 3 CPUs and 8 GB of RAM. The checkout contained 131 files, about 37,096 source lines and occupied 4.4 MB. The scan found 3 CI workflow files and a tests directory, with no Dockerfile. The recorded sandbox image was ghcr.io/astral-sh/uv:python3.12-bookworm; its label does not establish the actual runtime or operating-system version.

The visible failures in tests/test_vlm_query_flags.py say async functions are not natively supported. The listed cases cover retrieval-only queries, answer queries and bypass behavior. Those messages show that the runner could not execute the async functions in those cases. The supplied tail does not establish why support was unavailable, whether every failure had that cause, or whether retrieval returned incorrect answers.

The audit recorded 44 known vulnerabilities across 2 vulnerable packages. The supplied evidence does not identify the affected packages, their severity or whether application paths can reach the vulnerable behavior. Investigate those findings before deployment. A successful build does not resolve them, and no sandbox audit of v1.4.3 is supplied.

Parser and model configuration need separate checks

The README's application example supplies language-model, embedding and vision functions, along with a parser and working directory. Its hosted model calls use an API key and optional base URL. If documents must remain inside your infrastructure, inspect where each configured function sends content. Installing the Python package locally does not establish local model processing.

The README says parser models download automatically on first use. Its Office conversion route requires LibreOffice. Those requirements make a successful package installation an incomplete check of deployment readiness.

Parser selection happens when the RAGAnything instance is created, through RAGAnythingConfig or the documented PARSER environment variable. It cannot be switched through each process_document_complete call. A service that needs different parsers for different jobs must account for that instance boundary.

Setup receives 3/5 under this review's existing criteria: installation and build succeeded, but document-to-answer use still requires parser and model wiring, and the recorded suite failed. The existing 5/5 threshold requires a verified document-to-answer path without unresolved setup checks. Documentation receives 4/5 for concrete configuration examples and parser restrictions; the existing 5/5 threshold requires validating the instructions through the full workflow. These are bounded editorial judgments, not measured compatibility or reliability scores. Community support and long-term maturity remain unassessed.

What v1.4.3 changes for HTML

Release v1.4.3 was published on October 21, 2026, after our measured run. Its release notes say HTML is accepted only by parsers with a native HTML entry point. Among built-in parsers, that means Docling. The documented parse_document and process_document_complete paths reject HTML with MinerU or PaddleOCR before conversion. Docling must be installed separately, including when using raganything[all].

This matters for both upload handling and multimodal coverage. The release notes say the former LibreOffice conversion fetched remote URLs and embedded referenced local images in the parsed PDF. Recognition still uses the filename extension: HTML saved with an Office extension can still reach LibreOffice and trigger that behavior.

Docling's HTML backend does not fetch the page's images. It indexes their caption or alt text as text instead. Readers evaluating questions about HTML figures should account for that limit rather than assume the HTML route supplies image data for visual analysis.

These are upstream statements about v1.4.3. They do not establish that our measured test failures or dependency findings are resolved.

Choose the part of the pipeline you need

LightRAG documents multimodal content parsing and extraction via MinerU and Docling services. Teams already operating it should examine that integrated path before adding separate RAG-Anything orchestration. Direct RAG-Anything use is worth evaluating when the application needs its content-list insertion or direct processor control. No comparative speed or retrieval-quality test is supplied.

Docling provides a shared document representation and exports formats including Markdown, HTML and JSON. It documents local execution capabilities for sensitive data and air-gapped environments. Consider it directly when extraction is the missing part and retrieval is already handled. It is also a parser option within RAG-Anything.

GitHub records the last push as October 21, 2026. Release v1.4.3 includes the HTML-routing correction from merged pull request 418. Those records show corrective activity without proving that the measured gaps are resolved. Start with representative documents, investigate the failed suite and affected dependencies, and check answers against the figures and tables the application must understand.

Alternatives

ProjectWhat it isPick it when
LightRAG gh↗A graph-and-vector retrieval framework that documents multimodal parsing and extraction through MinerU and Docling services.Consider its integrated document path first when you already operate LightRAG. Compare that path with the direct ingestion control your application needs before adding separate RAG-Anything orchestration.
Docling gh↗A document converter with a shared document representation and Markdown, HTML and JSON export.Consider Docling directly when structured extraction is the missing part of an existing retrieval pipeline. Its README documents local execution capabilities for sensitive data and air-gapped environments; those capabilities were not tested in our sandbox.

What people are saying

  1. [velocity-scout] HKUDS/RAG-Anything

Sources

  1. RAG-Anything README
  2. RAG-Anything v1.4.3 release notes
  3. LightRAG README
  4. Docling README
  5. RAG-Anything repository facts
  6. HTML parser routing correction, pull request 418

More llm tools reviews

uzu · dsh-im · smg · dsh-context · dsh-purge · AIStudio2API · the whole board →