Kuuli Technologies
English
LLMs11 de junio de 2026 · 7 min de lectura

¿El RAG recupera información desactualizada sin saberlo? Cómo gestionar la frescura del índice

Un vector store no tiene concepto de datos obsoletos — recupera chunks desactualizados con la misma confianza que chunks frescos. Estrategias para gestionar la frescura: reindexado manual, programado, CRAG y Self-RAG.

El problema que nadie menciona

Los tutoriales de RAG muestran cómo indexar documentos, generar embeddings y hacer búsqueda semántica. Casi ninguno menciona lo que ocurre cuando los documentos indexados cambian. La respuesta corta: nada. El vector store no lo sabe.

Un vector store almacena representaciones numéricas (embeddings) de fragmentos de texto. No tiene campos de fecha de expiración, no monitoriza cambios en los documentos fuente, no distingue entre un chunk indexado ayer y uno indexado hace tres años. Cuando llega una query, recupera los chunks semánticamente más similares — sin importar cuándo fueron indexados ni si el contenido sigue siendo válido.

El escenario concreto: indexas la documentación de tu API en enero. En marzo actualizas los endpoints. El vector store sigue devolviendo los chunks de enero con alta confianza — son semánticamente muy relevantes. El agente responde con la información antigua sin ninguna señal de que está desactualizada.

Por qué el vector store no expira ni se autoinvalida

Un vector store es, en esencia, una base de datos optimizada para búsqueda por similitud coseno o producto punto en espacios de alta dimensión. Las bases de datos no tienen opinión sobre la frescura de los datos que almacenan — eso es responsabilidad de quien las opera. Un vector store tampoco.

Algunos vector stores (como Pinecone, Weaviate o Qdrant) soportan metadatos por chunk, incluyendo campos de fecha. Puedes usarlos para añadir filtros en la búsqueda ("recupera solo chunks indexados en los últimos 30 días") o para detectar chunks potencialmente obsoletos. Pero esto requiere instrumentar el pipeline de indexación expresamente para ello — no ocurre de forma automática.

Indexación con metadatos de fecha (Langchain + FAISS/Pinecone)
from datetime import datetime

docs_with_metadata = [
    Document(
        page_content=chunk,
        metadata={
            "source": "api-docs-v2.md",
            "indexed_at": datetime.utcnow().isoformat(),
            "version": "2.1"
        }
    )
    for chunk in chunks
]

vectorstore.add_documents(docs_with_metadata)

Estrategias de gestión de frescura

Reindexado manual

Se activa

Cuando alguien lo recuerda

Adecuado para

Documentación estable, proyectos pequeños

Riesgo

Alto si se olvida; sin garantía de frescura

Reindexado programado

Se activa

Cron job (diario, semanal…)

Adecuado para

Docs con cambios periódicos predecibles

Riesgo

Datos obsoletos entre ejecuciones del cron

CRAG (Corrective RAG)

Se activa

Automático según confianza del retrieval

Adecuado para

Knowledge bases dinámicas, high-stakes

Riesgo

Mayor latencia; requiere acceso a web/fuente externa

Self-RAG

Se activa

El modelo decide si re-recuperar

Adecuado para

Tareas complejas donde la calidad de la respuesta varía mucho

Riesgo

Complejo de implementar; mayor coste en tokens

CRAG y Self-RAG: cuándo tiene sentido

CRAG (Corrective RAG) añade un paso de evaluación al pipeline estándar: antes de generar la respuesta, el sistema evalúa la confianza de los chunks recuperados. Si la confianza es baja (los chunks no parecen suficientemente relevantes), cae hacia una búsqueda web o una fuente externa más actualizada. Si es alta, procede con el RAG estándar.

Self-RAG va un paso más allá: el modelo genera la respuesta y luego se autocritica. Decide si la respuesta generada es suficientemente buena o si necesita re-recuperar información adicional antes de responder al usuario. Es un bucle de refinamiento automático.

Ambos patrones añaden latencia y coste. Para documentación estable (políticas de empresa, manuales técnicos con versiones controladas), el RAG naive con reindexado programado es suficiente. CRAG y Self-RAG tienen sentido cuando los datos cambian con frecuencia impredecible o cuando las consecuencias de responder con información desactualizada son significativas.

Regla de decisión: ¿con qué frecuencia cambia la documentación fuente? ¿Cuáles son las consecuencias de una respuesta con información obsoleta? Si la documentación es estable y las consecuencias son bajas, RAG naive + cron es suficiente. Si los datos cambian diariamente y las consecuencias son altas, evalúa CRAG o Self-RAG.

El takeaway

Un vector store no tiene concepto de datos obsoletos — recupera chunks desactualizados con la misma confianza que chunks frescos.
El índice no expira ni se autoinvalida: la gestión de frescura es responsabilidad del operador del sistema.
Reindexado manual: mínima complejidad, máxima dependencia de procesos manuales.
Reindexado programado (cron): buena opción para docs con ciclo de cambio predecible.
CRAG/Self-RAG: para knowledge bases dinámicas o high-stakes donde el coste de información obsoleta es alto.

¿Quieres aplicar esto en tu equipo?

En Kuuli Technologies llevamos estas metodologías a equipos reales. Escríbenos si quieres una sesión de trabajo o una consultoría sobre agentes IA y SDD.