Cómo mantener actualizadas las bases de conocimiento RAG con datos web
TL;DR
La frescura de los datos RAG es una política de actualización para documentos fuente, incrustaciones y registros de índices, no simplemente un horario de rastreo.
Compara el contenido principal normalizado, no el HTML sin procesar, antes de pagar por dividir e incrustar una página nuevamente.
Asigna a cada fragmento una URL fuente estable y una versión para que las páginas cambiadas y eliminadas puedan reemplazar los vectores antiguos de forma limpia.
Nstdata Crawl puede recuperar páginas públicas como Markdown; tu aplicación se encarga de la detección de cambios, incrustaciones, almacenamiento de vectores y evaluación de respuestas.
Registra fallas de recopilación por separado de eliminaciones genuinas para que un tiempo de espera no pueda borrar una fuente de conocimiento válida.
Por qué las bases de conocimiento RAG se vuelven obsoletas
Para una capa de recopilación práctica, revisa Nstdata Crawl junto con el flujo de trabajo a continuación.
El artículo original de RAG describe la generación con una memoria de recuperación externa. La generación aumentada por recuperación puede citar material obsoleto cuando su índice describe una versión anterior de una página. Una página de precios puede cambiar mientras que los fragmentos antiguos siguen siendo buscables; un artículo de ayuda puede desaparecer mientras sus vectores siguen respondiendo preguntas. El modelo puede estar comportándose de manera consistente con los datos que se le proporcionaron, por lo que la corrección pertenece a la tubería de ingestión.
Un objetivo de frescura necesita dos relojes. La edad de la colección es el tiempo desde que la página fue verificada con éxito por última vez. La edad del índice es el tiempo desde que los fragmentos correspondientes fueron escritos en el almacén de recuperación. Pueden divergir cuando la extracción tiene éxito pero la incrustación o el indexado fallan. Realiza un seguimiento de ambos. Para más información sobre cómo transformar páginas en texto legible, consulta y .
Cómo funciona la frescura de los datos web en una tubería RAG
La tubería es descubrimiento de fuente → recuperación de página → Markdown de contenido principal → normalización → detección de cambios → fragmentación → incrustación → actualización de vectores → evaluación de recuperación. El descubrimiento de fuentes puede provenir de un sitemap, una lista de URLs aprobadas o un rastreo de sitio limitado. Cada etapa necesita su propio estado de error y política de reintento.
URLs de fuentes públicas -> Nstdata Crawl -> Markdown -> hash de contenido
| sin cambios: mantener índice
| cambios: fragmentar -> incrustar -> actualizar
| eliminados: verificar -> eliminar vectores
almacén de vectores -> recuperador -> respuesta con citas
Nstdata Crawl cubre recuperación y extracción. Su documentación de Crawl actual muestra la salida de Markdown a través de su SDK de Python. No crea incrustaciones, no opera una base de datos de vectores, no decide si una página ha cambiado, ni juzga si una respuesta es actual. Esas etapas pertenecen a tu aplicación u otros servicios. Para un patrón de flujo de trabajo AI separado, consulta la guía del sistema CrewAI.
Cómo detectar cambios significativos en páginas
Haz un hash del texto principal después de una normalización estable. Ignora los cambios incidentales de líneas en blanco, pero preserva los encabezados, enlaces, tablas y valores que pueden importar a un usuario. No elimines precios, fechas o etiquetas de versión como "ruido". Un pie de página en todo el sitio o un banner de cookies deberían ser eliminados idealmente en la etapa de extracción; un precio cambiante en el cuerpo debe producir un nuevo digest.
El hash identifica una versión de contenido, no un juicio semántico. Un cambio pequeño podría importar mucho; un cambio grande de plantilla podría no. Revisa falsos positivos antes de agregar reglas de normalización agresivas. Almacena la URL, digest, tiempo de fetch exitoso, versión del extractor y versión del índice juntos. Para eliminaciones, requiere una respuesta permanente confirmada o verificaciones repetidas; un error de red transitorio debe mantener la última versión válida del índice mientras se marca como obsoleta.
Construir una tubería de actualización de sitio web a RAG
Comience con una pequeña lista de permitidos de URLs de documentación pública y una cadencia de recrawl clara. Llame al SDK para cada URL, calcule el resumen y compárelo con su tabla de estado. Si no ha cambiado, actualice solo last_checked_at. Si ha cambiado, cree fragmentos con ID estables como sha256(url + chunk_index + content_version), calcule incrustaciones y luego insértelos en su almacén vectorial elegido. Elimine la versión antigua solo después de que la nueva versión sea buscable. Este orden evita una ventana de recuperación vacía.
El fragmento a continuación es el límite de adquisición. Instale nstdata-ai-crawl y configure NSTDATA_API_TOKEN primero. La llamada al SDK sigue el actual ejemplo de Nstdata Python SDK; una solicitud en vivo aún requiere sus propias credenciales.
import os
from nstdata_ai_crawl import NstDataClient, ScrapeRequestDto, Format
defread_markdown(url:str)->str: token = os.environ["NSTDATA_API_TOKEN"]with NstDataClient(token)as client: result = client.submit_scrape_task_sync( ScrapeRequestDto( url=url, formats=[Format.MARKDOWN], timeout=60000, onlyMainContent=True,)) markdown = result.data.get_markdown()ifnot markdown ornot markdown.strip():raise ValueError(f"No se devolvió contenido legible para {url}")return markdown
Su aplicación luego realiza las operaciones de base de datos, utilizando los métodos e ID del almacén elegido:
defrefresh_one(url, state_store, vector_store, embedder): markdown = read_markdown(url)# Recuperación de Nstdata; requiere un token API digest = content_hash(markdown) old = state_store.get(url)if old and old.digest == digest: state_store.mark_checked(url)return"sin cambios" chunks = split_markdown(markdown)# Su política de división records =[{"id":f"{url}#{digest}#{i}","url": url,"text": chunk,"vector": embedder.embed(chunk)}for i, chunk inenumerate(chunks)] vector_store.upsert(records)# Base de datos vectorial de terceros state_store.commit(url, digest,[r["id"]for r in records])if old: vector_store.delete(old.vector_ids)return"actualizado"
split_markdown, state_store, vector_store y embedder son interfaces de aplicación, no características del SDK de Nstdata. Haga que la inserción y el compromiso del estado sean idempotentes: volver a ejecutar un trabajo fallido debería converger en una versión actual. Siga la propia semántica de transacción y eliminación de la base de datos vectorial; por ejemplo, vea documentación de inserción de Pinecone. Una implementación de producción también registra escrituras parciales y reintentos de forma segura.
Dónde encaja Nstdata Crawl
Los equipos RAG necesitan un input confiable de contenido web antes de que puedan discutir la calidad de la incrustación. Nstdata Crawl proporciona recuperación de páginas, extracción y salida en Markdown a través de una API y SDK; un rastreo de sitio limitado puede ayudar con la adquisición de URLs cuando la fuente lo permite. Markdown proporciona a los fragmentadores posteriores encabezados y texto legible, mientras que la URL de origen sigue disponible para citas. El servicio debe evaluarse en los sitios reales que se le permite recopilar, ya que el diseño de la página y el comportamiento de JavaScript varían.
Tres comprobaciones prácticas son importantes. Calidad de salida: verifique que el texto devuelto contenga el encabezado esperado y ninguna página de inicio de sesión o de consentimiento. Alcance: limite el descubrimiento y la frecuencia de obtención a las reglas de la fuente y su presupuesto. Costo: consulte el actual producto Crawl y precios de Crawl para el modelo de facturación aplicable, incluidos los casos de uso de proxy facturados por separado donde sea relevante. Nstdata proporciona la entrada; la política de frescura y las escrituras vectoriales siguen siendo suyas.
Mejores prácticas para una frescura sostenida
Establezca intervalos según la volatilidad de la fuente y el impacto comercial en lugar de ejecutar todas las URLs en un solo temporizador. Un registro de cambios del producto podría justificar una verificación frecuente; las definiciones legales perennes pueden necesitar menos. Use programación condicional según la frecuencia de cambios observada, pero mantenga una edad máxima para que las fuentes silenciosas aún se verifiquen. Preserve versiones anteriores para auditoría y retroceso.
Monitorear el éxito de la obtención, la calidad de extracción, la tasa de cambio de hash, las fallas de incrustación, el retraso en el índice y la antigüedad de las citas. Realice consultas representativas después de las actualizaciones; un índice puede estar técnicamente actualizado mientras que la recuperación aún retorna un fragmento irrelevante. Trate el material de identificación personal o con licencia de acuerdo con los permisos de origen y las reglas de retención. Una página siendo pública no otorga por sí misma un uso ilimitado.
El resultado útil es una ruta de respuesta rastreable: pregunta → fragmento recuperado → URL de origen → versión de contenido → última verificación exitosa. Esto hace que una respuesta obsoleta sea depurable en lugar de misteriosa.
P: ¿Con qué frecuencia deben actualizarse los datos de RAG?
La frecuencia de actualización depende de qué tan rápido cambie la fuente y el costo de una respuesta obsoleta. Establezca una antigüedad máxima permitida por fuente y luego mida el cambio real y el retraso del índice.
P: ¿Cómo detectan cambios en las páginas web?
Compare un hash del contenido principal normalizado con la última versión exitosa. Mantenga las fallas de obtención separadas de los cambios de contenido.
P: ¿Se puede usar Markdown para RAG?
Sí. Markdown preserva una estructura útil para el fraccionamiento, pero aún necesita validación, incrustaciones, indexación y pruebas de recuperación.
P: ¿Cómo actualizan una base de datos vectorial cuando cambia una página?
Escriba nuevos fragmentos versionados, verifique que sean buscables y luego elimine los ID de fragmentos anteriores. Utilice las operaciones de upsert y eliminación documentadas de la base de datos elegida.
Construya una herramienta de lectura web CrewAI con Nstdata Crawl, Markdown etiquetado por fuente, controles de URL, manejo de errores y límites claros para el razonamiento del agente.
Lena Zhou
Oct. 27th 2026
Rastrea sitios web completos con una sola solicitud API
99,8% de éxito con renderizado JavaScript
Obtén datos limpios, listos para LLM, en múltiples formatos
Convierte cualquier sitio web en Markdown, HTML, JSON, enlaces, PDF y más, sin gestionar infraestructura de rastreo.