RAG-Anything es un framework open source en Python para chatear con tus PDFs y documentos de Office sin perder sus imágenes, tablas ni ecuaciones. En lugar de aplanar el archivo a texto plano, separa cada elemento, lo describe con un modelo de lenguaje o de visión y lo conecta todo en un grafo de conocimiento que puedes consultar en lenguaje natural. Lo desarrolla HKUDS, el laboratorio de la Universidad de Hong Kong detrás de LightRAG, tiene licencia MIT y supera las 24.100 estrellas en GitHub.
¿Qué es RAG-Anything?
RAG-Anything es un pipeline de RAG multimodal (multimodal RAG) construido sobre LightRAG. Cubre todo el recorrido, desde la ingesta del documento hasta la respuesta, en cuatro etapas:
- Parsing. Un parser divide el archivo en bloques de texto, imágenes, tablas y ecuaciones, y registra la página de la que viene cada uno.
- Análisis por tipo. Cada elemento pasa por su propio procesador. Un modelo de visión escribe descripciones de las imágenes teniendo en cuenta el contexto, las tablas se interpretan como datos estructurados y las ecuaciones se procesan en LaTeX.
- Grafo de conocimiento. Los elementos se convierten en entidades relacionadas con el texto que los rodea. Una cadena de relaciones
belongs_toconserva la jerarquía de secciones del documento. - Recuperación híbrida. Las consultas combinan búsqueda vectorial con recorrido del grafo, así que una respuesta puede traer un párrafo junto con el gráfico que lo explica. Es la idea detrás del
knowledge graph RAGograph RAG, extendida a contenido que no es texto.
Acepta PDFs, documentos de Office (DOC, DOCX, PPT, PPTX, XLS, XLSX), imágenes (JPG, PNG, BMP, TIFF, GIF, WebP) y archivos de texto (TXT, MD). Las versiones recientes también aceptan audio y video, que vemos más abajo.
¿Por qué el RAG tradicional falla con PDFs que tienen tablas y gráficos?
Porque un pipeline de RAG típico extrae la capa de texto del PDF, la corta en fragmentos y genera embeddings de esos fragmentos. Todo lo que no es texto corrido se pierde por el camino:
- Un gráfico de barras desaparece.
- Una tabla se convierte en una lista de números sin los encabezados de sus columnas.
- Una fórmula queda como caracteres rotos.
En documentación técnica, reportes financieros y papers de investigación, la respuesta suele estar justo ahí.
RAG-Anything trata esos elementos como contenido de primera clase. Un gráfico lo describe un modelo de visión y se guarda como una entidad vinculada al párrafo que lo menciona. Una tabla conserva su estructura y su leyenda.
El enfoque está descrito en el reporte técnico de los autores en arXiv (2510.12323, octubre de 2025). Según los propios autores, supera a los métodos existentes en benchmarks multimodales, con las mayores ventajas en documentos largos. Son resultados reportados por el equipo que creó la herramienta, y el reporte es un preprint.
¿Qué diferencia hay entre LightRAG y RAG-Anything?
LightRAG es el motor y RAG-Anything es la capa multimodal que va encima. LightRAG aporta la indexación basada en grafos, el almacenamiento y los modos de consulta. RAG-Anything suma los parsers, los procesadores por tipo de contenido y las relaciones entre texto, imágenes, tablas y ecuaciones dentro del grafo.
Los dos proyectos están muy conectados:
- Si ya tienes una base de conocimiento en LightRAG, puedes pasar esa instancia a RAG-Anything. Hereda el directorio de trabajo, la función del LLM y la de embeddings, y puedes agregar documentos multimodales al mismo almacenamiento.
- Desde junio de 2026, el propio LightRAG habilita RAG multimodal mediante una integración nativa de RAG-Anything.
Regla práctica: si tus documentos son casi todo prosa, con LightRAG te alcanza. Si las respuestas están en figuras, tablas o fórmulas, necesitas la capa de RAG-Anything.
¿RAG-Anything o MarkItDown?
Depende de si necesitas un sistema de RAG completo o solo convertir documentos para dárselos a un modelo. MarkItDown es una utilidad ligera de Microsoft que convierte PDFs, Office, imágenes, audio, HTML y EPUB a Markdown, conservando títulos, listas, tablas y enlaces. Está pensada para alimentar LLMs, pero solo convierte: no indexa ni recupera nada.
| MarkItDown | RAG-Anything | |
|---|---|---|
| Qué produce | Un archivo Markdown | Un grafo de conocimiento consultable |
| Imágenes | EXIF y OCR; descripciones con LLM opcionales para PPTX e imágenes | Descripción con modelo de visión de cada imagen, vinculada al texto |
| Búsqueda y respuestas | No incluye | Recuperación híbrida vectorial y de grafo |
| Modelos necesarios | Ninguno para la conversión básica | LLM, modelo de visión y embeddings |
| Instalación | pip install 'markitdown[all]' |
pip install raganything |
Si vas a pegar un documento en el contexto de Claude Code o de tu agente, MarkItDown es la herramienta más directa. Si tienes una carpeta con cientos de documentos y quieres hacerles preguntas cuyas respuestas están en gráficos y tablas, RAG-Anything es la opción.
¿Cómo se instala RAG-Anything?
Se instala desde PyPI y requiere Python 3.9 o superior:
pip install raganything
# Extras opcionales para más formatos
pip install 'raganything[all]'
pip install 'raganything[image]' # BMP, TIFF, GIF, WebP
pip install 'raganything[text]' # TXT, MD
Si prefieres trabajar desde el código fuente, el proyecto usa uv:
git clone https://github.com/HKUDS/RAG-Anything.git
cd RAG-Anything
uv sync
uv sync --all-extras # todas las funciones opcionales
Hay dos cosas que pip no instala por ti:
- LibreOffice es obligatorio para procesar documentos de Office. En macOS es
brew install --cask libreoffice, en Ubuntu/Debiansudo apt-get install libreoffice, y en Windows, el instalador del sitio oficial. - Los modelos de MinerU se descargan automáticamente la primera vez que procesas un documento.
Para comprobar que el parser está listo:
mineru --version
¿MinerU, Docling o PaddleOCR: qué parser conviene usar?
Empieza con MinerU, que es el parser por defecto, salvo que tu corpus sea casi todo Office: en ese caso prueba Docling. RAG-Anything soporta tres parsers y eliges uno con el argumento parser o la variable de entorno PARSER:
| Parser | Ideal para |
|---|---|
| MinerU (por defecto) | PDFs, imágenes y Office; OCR y extracción de tablas sólidos; aceleración por GPU |
| Docling | Documentos de Office y HTML; conserva mejor la estructura del documento |
| PaddleOCR | Trabajo intensivo de OCR sobre PDFs escaneados e imágenes; convierte Office/TXT/MD a PDF primero |
PaddleOCR necesita su propio extra (pip install 'raganything[paddleocr]') y además una versión de paddlepaddle para tu plataforma, que se instala siguiendo su guía oficial.
El método de parsing puede ser auto, ocr o txt. MinerU también acepta opciones como device (cpu, cuda, mps), un rango de páginas y lang para el OCR.
¿Cómo chatear con tus PDFs usando RAG-Anything?
Configuras tres funciones de modelo (un LLM, un modelo de visión y una función de embeddings), procesas el archivo y lo consultas. Las llamadas principales son estas:
config = RAGAnythingConfig(
working_dir="./rag_storage",
parser="mineru",
parse_method="auto",
enable_image_processing=True,
enable_table_processing=True,
enable_equation_processing=True,
)
rag = RAGAnything(
config=config,
llm_model_func=llm_model_func,
vision_model_func=vision_model_func,
embedding_func=embedding_func,
)
await rag.process_document_complete(
file_path="path/to/your/document.pdf",
output_dir="./output",
parse_method="auto",
)
result = await rag.aquery(
"What are the main findings shown in the figures and tables?",
mode="hybrid",
)
Las definiciones completas de las tres funciones de modelo están en el README. El ejemplo oficial las conecta a la API de OpenAI, y el parámetro base_url te permite apuntarlas a cualquier endpoint compatible.
Hay tres formas de consultar:
- Consultas de texto, con los modos de LightRAG:
hybrid,local,globalynaive. - Consultas mejoradas con VLM, que se activan solas cuando hay un modelo de visión configurado. Si el contexto recuperado incluye imágenes, se envían las imágenes mismas al modelo de visión, no solo sus descripciones.
- Consultas multimodales (
aquery_with_multimodal), que te permiten incluir una tabla o una ecuación en LaTeX dentro de la propia pregunta.
Para procesar una carpeta completa, process_folder_complete recibe una lista de extensiones, un flag recursive y max_workers.
Si ya procesaste tus documentos con otra herramienta, insert_content_list acepta contenido ya parseado y se salta el parsing por completo.
El repositorio incluye un script de punta a punta listo para usar:
python examples/raganything_example.py path/to/document.pdf --api-key YOUR_API_KEY --parser mineru
¿RAG-Anything puede procesar audio y video?
Sí, desde las versiones 1.4.x (septiembre de 2026). Las dos funciones son opcionales.
- Audio (.mp3, .wav, .flac, .m4a, .ogg)
- Instala con
pip install 'raganything[audio]'y activaenable_audio_processing=True. - La transcripción se hace en local con faster-whisper, usando el modelo que indiques en
WHISPER_MODEL(por defecto,base).
- Instala con
- Video (.mp4, .mov, .webm, .avi, .mkv)
- Instala con
pip install 'raganything[video]', que además necesitaffmpegen tu PATH, y activaenable_video_processing=True. - El pipeline detecta escenas con SceneDetect, describe los fotogramas clave con el modelo de visión, transcribe la pista de audio y lo une todo por marca de tiempo.
- Instala con
Los archivos multimedia entran en la misma base de conocimiento que tus documentos. Así, una sola pregunta puede apoyarse a la vez en la especificación en PDF y en la grabación de una revisión de diseño.
¿RAG-Anything es gratis?
El framework es gratuito y tiene licencia MIT, pero ejecutarlo no necesariamente lo es, porque llama a tres modelos: un LLM, un modelo de visión para las imágenes y un modelo de embeddings. Si usas APIs alojadas, pagas por tokens al indexar, ya que cada imagen y cada tabla pasa por un modelo, y otra vez al consultar.
Algunas partes corren en local sin costo de API:
- Los modelos de los parsers (MinerU, Docling, PaddleOCR).
- La transcripción de audio con faster-whisper.
- Los scripts de prueba de parsing incluidos (
office_document_test.py,image_format_test.py,text_format_test.py), que ejercitan el parser sin API key.
Por eso son una buena forma de comprobar qué tan bien se parsean tus documentos antes de gastar en la indexación.
¿Y tú? ¿Qué documentos te gustaría poder consultar con un RAG multimodal en tu trabajo?
- MinerU
- Docling
- PaddleOCR
- Prefiero otra opción (cuéntanos cuál)
Comenta abajo o, si este artículo te llegó por correo, responde directamente al email: tu respuesta se publica aquí.
Relacionado: Building the Entire RAG Ecosystem and Optimizing Every Component
