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.

