Contextual retrieval en RAG: guía práctica para aumentar la precisión de tus agentes de IA con N8N y Qdrant

Contextual retrieval en RAG: guía práctica para aumentar la precisión de tus agentes de IA con N8N y Qdrant

Tiempo de lectura estimado: 12 minutos

Key takeaways

  • El problema no siempre es el modelo: la recuperación estándar a menudo aísla chunks y pierde significado; contextual retrieval añade un contexto sintético para cada fragmento y mejora el recall semántico según Anthropic.
  • Pipeline práctico con N8N + Qdrant: ingesta, limpieza, chunking, generación de contexto con LLM, concatenación “contexto + chunk”, embeddings e indexación en Qdrant.
  • Menos alucinaciones: cada fragmento trae su “brújula semántica”; con re-ranking (por ejemplo, Cohere Rerank) reduces ruido antes de responder.
  • Costes bajo control: usa GPT-4.1 mini, prompt caching y cachea contextos por hash en N8N.
  • Métricas simples: precisión@k, cobertura, ratio de alucinación y coste por respuesta, guardadas en Data Tables de n8n.

Tabla de contenidos

Introducción

Si tu RAG con base de datos vectorial a veces “acierta palabras” pero falla el sentido, responde mal o alucina, no estás solo. El problema no siempre es el modelo; es la recuperación. Con contextual retrieval puedes aumentar la precisión de tus agentes de IA y reducir alucinaciones, incluso con documentos largos y consultas ambiguas. La idea: añadir un contexto generado por IA a cada fragmento (chunk) antes de crear embeddings e indexar. En esta guía lo verás implementado con N8N y Qdrant, controlando costes con caché de OpenAI.

Sigue, porque vamos paso a paso y con ejemplos prácticos.

Sección 1 — Por qué tu RAG estándar no es suficiente

El pipeline clásico de RAG, en modo ultrarrápido, es:

  • Extracción del documento.
  • Limpieza del texto.
  • Chunking (troceado) con solapamiento.
  • Embeddings.
  • Indexación en una base de datos vectorial.
  • Recuperación por similitud y generación de respuesta.

El punto débil: los chunks quedan aislados. Pierden el contexto del documento (capítulo, sección, definiciones, supuestos). Resultado: el buscador vectorial encuentra fragmentos con las palabras correctas, pero sin el significado correcto. Esto sube las alucinaciones: el LLM completa lo que no tiene.

Ejemplo típico
Consulta: “¿Cuál es la política de reintentos y límites de tasa?”
Recuperación estándar: fragmentos con la palabra “reintentos” de una sección de soporte, pero el límite exacto está explicado en otra sección que no entra en top-k. La respuesta acaba siendo vaga o inventada.

Sección 2 — Qué es contextual retrieval y de dónde surge

Contextual retrieval es una técnica presentada por Anthropic para “situar” cada fragmento dentro del documento usando un contexto breve generado por un LLM. En vez de indexar el chunk crudo, indexas “contexto + chunk” como una unidad.

Mecánica:

  • Entrada: documento completo + fragmento.
  • El LLM produce un contexto conciso que explica dónde encaja ese fragmento (tema, sección, supuestos).
  • Concatenas contexto + separador (por ejemplo: \n—\n) + fragmento y luego creas embeddings e indexas.

Beneficios:

  • Recuperación semántica más fina (mejor recall de lo que “quiere decir” el texto).
  • Respuestas más precisas en agentes de IA, con menos alucinaciones, porque cada chunk lleva una pista clara de su significado.

Evidencia: Anthropic reporta mejoras consistentes en tareas de recuperación y QA al enriquecer los fragmentos con contexto sintético, con menos errores y mayor precisión frente a RAG plano.

Sección 3 — Cómo funciona contextual retrieval (arquitectura y flujo lógico)

Flujo de datos (ingesta):

  • Ingesta y limpieza: extrae el texto del PDF/DOC y elimina artefactos (encabezados repetidos, saltos de página raros).
  • Chunking: define tamaño (p. ej., 300–1.000 caracteres) y solapamiento (50–200). Evita partir frases importantes.
  • Prompt al LLM: pasa el documento completo (o al menos la sección) y el chunk. El LLM devuelve un “contexto breve y preciso”.
  • Concatenación: “Contexto” + separador claro + “Chunk”.
  • Embeddings e indexación: genera embeddings del texto concatenado. Indexa en Qdrant con metadatos útiles (ID, nombre de documento, sección).

Consulta:

  • Recuperación por similitud semántica sobre “contexto+chunk”.
  • Opcional: re-ranking para condensar de top-k a top-n antes de pasar al LLM. Puedes usar Cohere Rerank.
  • Generación final: el agente de IA responde con menos alucinaciones, porque cada fragmento recuperado trae su brújula semántica.

Apoyos técnicos:

  • Qdrant ofrece colecciones con payload rico (metadatos), filtros y búsquedas vectoriales rápidas.
  • El re-ranking con un modelo especializado puede afinar mucho la lista final, como Cohere Rerank.

Sección 4 — Implementación paso a paso en N8N + Qdrant

Prerrequisitos

Ingesta base (pipeline estándar)

  • Descarga desde Google Drive: usa el nodo Google Drive en n8n para listar y obtener archivos PDF.
  • Extracción de texto: emplea un nodo específico o un script (por ejemplo, pdf-parse en un nodo Code).
  • Limpieza: normaliza espacios, elimina encabezados/pies repetidos y corrige saltos de línea.
  • Metadatos mínimos: ID de documento y nombre de archivo para trazabilidad.
  • Línea base: crea embeddings de los chunks crudos e indexa en Qdrant. Esto te dará un baseline para comparar.

Evolución al contextual retrieval

  • Chunking manual en nodo Code (JavaScript):
  • Tamaño recomendado inicial: 600–800 caracteres.
  • Solapamiento: 100–150 caracteres para no cortar ideas.
  • Asegúrate de no trocear dentro de ítems de listas o tablas; intenta cortar tras puntos.

Prompt recomendado (según guía de Anthropic)

  • Entradas: documento completo (o la sección relevante) + el fragmento.
  • Instrucción: “Proporciona un contexto breve y conciso para situar este fragmento dentro del documento general. Responde solo con el contexto.”
  • Idioma: alinea el idioma del prompt con el del documento.
  • Longitud sugerida: 1–3 frases, como un “título ampliado”.

Configuración del nodo LLM en N8N

  • Modelo: GPT-4.1 mini, buen balance coste-rendimiento para lotes grandes.
  • Retries: activa “retry on fail” para robustez en ingestas largas.
  • Paralelización: usa lotes moderados y respeta límites de tasa para evitar errores 429.
  • Control de tokens: limita contexto del documento a lo esencial (por sección); evita enviar el PDF completo si no es necesario.

Optimización de costes en OpenAI

  • Caché de prompts: aprovecha prompt caching en entradas repetitivas/similares.
  • Modelos mini/nano: usa el más pequeño que dé un contexto correcto; no necesitas creatividad, solo claridad.
  • “Pin” en N8N: guarda el contexto ya generado junto al hash del chunk para no recalcularlo.
  • Estimación orientativa: ~0,60 USD para un PDF de ~27 páginas (varía por tokens e idioma).
  • Consejo: registra coste por documento para afinar tu presupuesto.

Indexación en Qdrant

  • Texto principal: concatena “Contexto” + \n—\n + “Chunk”. Los embeddings se generan de esta cadena.
  • Metadatos (payload): id_documento, nombre_archivo, ruta/carpeta en Drive, sección/posición, breve “descripción automática”. Consulta el concepto de payload en Qdrant.
  • Ajustes: desactiva re-splitting en cualquier text splitter posterior; define la colección con la dimensión del embedding y payload schema claro.

Gestión de versiones y borrados

  • Hash de contenido: calcula un hash del texto limpio del documento (y opcionalmente de cada chunk) y guárdalo en Data Tables de n8n.
  • Actualizaciones: si cambia el hash del documento, elimina los vectores previos (por id_documento) y reindexa. Si solo cambian partes, reindexa chunks afectados por su hash.
  • Borrado controlado: flujo “mover a carpeta Eliminar” en Drive → workflow que borra sus puntos en Qdrant por filtro de metadatos.

Consideraciones por tipo de archivo

  • PDF/DOC/TXT: mantén estructura básica: títulos, subtítulos y listas.
  • CSV/Excel: considera convertir filas a “registros” con encabezados claros y un “contexto” a nivel de tabla/columna.

Tips rápidos: empieza con un solo PDF, mide tiempos/tokens/calidad; compara baseline vs contextual retrieval con 5–10 preguntas reales; ajusta tamaño/solapamiento y la longitud del contexto hasta que el top-k traiga fragmentos realmente explicativos.

Sección 5 — Recuperación y generación de respuestas con agentes de IA

Conectar tu agente a Qdrant

  • Fuente de conocimiento: apunta el agente a la colección que contiene “contexto + chunk”.
  • Parámetros de búsqueda: métrica cosine o dot; k inicial 10–20; filtros por metadatos (id_documento, sección, idioma).
  • Devuelve: texto concatenado, score y metadatos (página, título, URL del PDF en Drive).

Re-ranking (reclasificación) para afinar

  • Objetivo: pasar de top-k a top-n (p. ej., 20 → 3).
  • Beneficio: menos tokens y menos alucinaciones.
  • Opciones: Cohere Rerank, modelos cross-encoder open-source.
  • Práctica: conserva diversidad; no te quedes con 3 fragmentos idénticos de la misma sección.

Prompt final del agente (plantilla sencilla)

Sistema: “Eres un asistente que responde con precisión. Usa solo la información citada. Si falta dato, di ‘no encontrado’.”

Instrucciones:

  • Cita entre comillas breves cuando tomes un valor exacto.
  • Devuelve una lista de referencias con nombre_documento, página y score.
  • No inventes; si hay conflicto, prioriza el fragmento con mayor score y contexto más específico.

Entrada: consulta del usuario + lista de n fragmentos re-rankeados con su contexto.
Salida: respuesta clara, con viñetas si corresponde, y referencias.

Cómo baja las alucinaciones en la práctica

  • Cada fragmento trae señal semántica extra gracias al contexto generado.
  • El LLM recibe menos ruido y más intención.
  • Con re-ranking, reduces aún más el ruido: menos tokens, más foco.

Extras útiles para agentes de IA

  • Reescritura de consultas: detecta sinónimos y expande términos técnicos antes de buscar.
  • Memoria conversacional: reinyecta 1–2 respuestas previas, no toda la charla.
  • Guard-rails: “Si la respuesta depende de una definición legal, cita el párrafo exacto.” “No calcules límites si no están escritos.”

Sección 6 — Evaluación, pruebas y ajuste fino

Diseña un set de validación

  • 10–30 preguntas reales: fáciles, medias y difíciles.
  • Incluye una “respuesta esperada” breve y marca documentos fuente/páginas.

Métricas simples y accionables

  • Precisión@k: ¿aparece algún fragmento correcto entre los k recuperados?
  • Cobertura: % de preguntas con respuesta válida encontrada.
  • Ratio de alucinación: % de respuestas con datos inventados o sin cita.
  • Coste por respuesta: tokens y tiempo total.
  • Registra todo en Data Tables de n8n para comparar cambios.

Ajustes que mueven la aguja

  • Chunking y solapamiento: sube tamaño si cortas ideas; bájalo si arrastras ruido. Solapamiento 100–150 suele cubrir transiciones.
  • Longitud del contexto: 1–3 frases; si te quedas corto, cae el recall; si te pasas, suben tokens.
  • k de recuperación y n de re-ranking: empieza con k=20, n=3–5. Si fallas recall, sube k. Si gastas mucho, baja n.
  • Embeddings: prueba 1–2 modelos y mide precisión@k real.
  • Prompt del agente: añade reglas contra alucinaciones y ejemplos mínimos.

Atención especial a “definiciones”

Las definiciones precisas evitan ambigüedades. Una definición explica el significado de un término y fija sus límites; considera los tipos intensional, extensional y ostensiva, como describe Wikipedia, y refuerza tu criterio con Dictionary.com.

Práctica: etiqueta fragmentos que contienen definiciones y dales prioridad en re-ranking para consultas del tipo “¿qué significa…?”.

Procedimiento de prueba en N8N (rápido)

  • Nodo HTTP/Code: dispara preguntas de test.
  • Nodo Qdrant: recupera top-k.
  • Nodo Re-rank: reduce a n.
  • Nodo LLM: genera respuesta con citas.
  • Nodo Function: calcula métricas y guarda en Data Tables.

Sección 7 — Buenas prácticas y problemas comunes

Consistencia de idioma

  • Documento, contexto, consulta y respuesta en el mismo idioma.
  • Si mezclas, el recall baja y el LLM se confunde.

Control de tokens y límites

  • Recorta el contexto del documento que mandas al LLM.
  • Apóyate en prompt caching para prompts repetidos.
  • Usa GPT-4.1 mini para generar contextos de bajo coste.

Reintentos y errores en lotes

  • Activa retry con backoff exponencial.
  • Lotes moderados para evitar 429.
  • Log de fallos con re-proceso automático.

Metadatos ricos y jerarquía

  • Guardar: título, sección, subsección, página, ruta en Drive, id_documento, versión, idioma.
  • Esto permite filtros finos y auditoría. Qdrant lo facilita con payload y filtros.

Seguridad y cumplimiento

  • Guarda las API keys en variables seguras.
  • Cifra datos sensibles en reposo y en tránsito.
  • Segmenta colecciones por cliente/área si hay multi-tenant.

Observabilidad

  • Registra coste por documento, tokens por tarea y tiempos de búsqueda.
  • Grafica precisión@k y ratio de alucinación semanal.
  • Revisa outliers (consultas con alto coste y baja precisión).

Problemas comunes

  • Contexto demasiado largo: sube coste y ruido. Recorta.
  • Chunking que corta definiciones a la mitad: aumenta errores. Ajusta solapamiento.
  • Re-ranking sobreajustado a una palabra: pierde diversidad. Revisa modelo/umbral.
  • PDFs escaneados sin OCR: extracción pobre. Aplica OCR antes de todo.

Sección 8 — Variantes y extensiones avanzadas

Cambiar el LLM que genera contexto

  • Anthropic (Claude) y Google Gemini funcionan bien. Ajusta el prompt y mide coste/calidad. Ver contextual retrieval por Anthropic.
  • Activa o simula caché si la plataforma lo soporta para lotes repetitivos.

Contextos jerárquicos o multi-granulares

  • Documento (2–3 frases) → Sección (1–2) → Fragmento (1–2). Concatena de mayor a menor.

Rerankers especializados

  • Cohere Rerank para dominio general.
  • Cross-encoders (Jina/otros) para datos técnicos o legales.

Query understanding

  • Clasifica intención: definición, procedimiento, valor exacto, comparación.
  • Si es “definición”, prioriza fragmentos con “es”, “se define como”, “significa”, alineado con la taxonomía de definiciones.

Evaluación automática y golden sets

  • Pares pregunta → respuesta esperada con cita obligatoria.
  • Auto-scoring: EM para números/fechas; F1 para texto; penaliza respuestas sin referencia.

Multi-fuente y multi-colección

  • Qdrant permite filtros por colección y payload. Combina manuales, FAQs y políticas en colecciones separadas y fusiona resultados; haz re-ranking final sobre el pool combinado.

Conclusión y próximos pasos

Contextual retrieval funciona porque le da a cada fragmento una brújula semántica. Con N8N y Qdrant, el pipeline es simple de montar y barato de operar si cuidas tokens, caché y re-ranking. El resultado: agentes de IA que recuperan mejor, citan con precisión y alucinan menos.

Pasos recomendados:

  • Implementa el pipeline base de ingesta con “contexto + chunk”.
  • Activa re-ranking y mide precisión@k, cobertura y coste.
  • Ajusta chunking/solapamiento y longitud del contexto.
  • Registra métricas y repite con 10–30 preguntas reales.

Recursos:

Pruébalo en un PDF pequeño, mide y escala. Verás el salto en precisión con contextual retrieval desde la primera semana.

FAQ

¿Necesito siempre re-ranking?

No, pero ayuda mucho cuando k es alto o hay documentos largos. Reduce tokens y aumenta precisión. Prueba pasar de k=20 a n=3 con un reranker como Cohere Rerank.

¿Qué tamaño de chunk es mejor?

Empieza con 600–800 caracteres y solapamiento de 100–150. Si cortas ideas, sube tamaño; si arrastras ruido, bájalo.

¿Cuánta longitud debe tener el contexto?

1–3 frases claras. Piensa en un “título ampliado” con la intención y la sección. Evita párrafos largos.

¿Puedo usar otra base de datos vectorial?

Sí: Milvus, Pinecone, Weaviate funcionan. Usamos Qdrant por filtrado potente y payload sencillo. Consulta su documentación.

¿Y si mis PDFs son escaneados?

Aplica OCR antes de extraer texto. Mantén títulos y listas. Un texto limpio permite mejores embeddings y contexto.

¿Cuánto cuesta por documento?

Varía por tokens, idioma y tamaño. Como referencia, ~0,60 USD para un PDF de ~27 páginas con GPT-4.1 mini y caché de prompts activa.

¿Cómo reduzco alucinaciones al máximo?

  • Recupera mejor: “contexto + chunk” y re-ranking.
  • Prompt del agente con reglas de cita y “no encontrado”.
  • Limita el número de fragmentos y usa metadatos claros.

¿Debo preocuparme por las definiciones en mis documentos?

Sí. Las definiciones precisas dan claridad y evitan ambigüedades. Marca fragmentos con definiciones y priorízalos en búsquedas de tipo “¿qué significa…?”. Revisa Merriam‑Webster, Wikipedia y Dictionary.com.

¿Se puede usar Anthropic o Gemini para generar el contexto?

Sin problema. Ajusta el prompt y mide coste/calidad. Anthropic introdujo contextual retrieval y reporta mejoras de precisión.

¿Necesito guardar muchos metadatos?

Guarda lo esencial: id_documento, sección, página, idioma, nombre_archivo, ruta en Google Drive y versión. Facilita auditorías y borrados.

¿El agente debe memorizar toda la conversación?

No. Mantén 1–2 turnos previos si ayudan. Lo clave está en una buena recuperación semántica y en el re-ranking.

Cover Image