Saltearse al contenido

Contextual Compression Retriever

Contextual Compression Retriever toma los resultados de otro buscador y los depura para la pregunta: descarta los que no responden, recorta cada uno a la parte que responde o los vuelve a ordenar. El agente recibe menos texto y más relevante.

Un buscador (retriever) recibe una pregunta y devuelve los fragmentos de documentos que mejor la responden, para que un agente o un modelo conteste con tu información.

Cuándo usarlo

  • El buscador devuelve resultados que no tienen que ver con la pregunta y despistan al agente.
  • Tus documentos son largos y solo una parte de cada uno responde.
  • Quieres reducir el texto que llega al modelo.

Configuración

CampoQué hace
Search QueryLa pregunta.
CompressorCómo se depuran los resultados. LLMChainFilter (por defecto): un modelo lee cada resultado y descarta los que no responden. LLMChainExtractor: un modelo deja de cada resultado solo las frases que responden. LLMListwiseRerank: un modelo ordena los resultados y se queda con los mejores. EmbeddingsFilter: descarta los resultados de significado lejano a la pregunta, sin modelo de lenguaje.
Base RetrieverEl buscador cuyos resultados se depuran, por ejemplo la salida Retriever de una base vectorial con 10 resultados.
LLMEl modelo que usan los tres primeros compresores. Solo aparece con ellos.
EmbeddingEl modelo de embeddings con el que compara EmbeddingsFilter. Solo aparece con ese compresor.

Opciones avanzadas

CampoQué hace
Similarity ThresholdCon EmbeddingsFilter: se descartan los resultados menos parecidos a la pregunta que este valor (de 0 a 1). Por defecto, 0,4.
Number of ResultsCuántos resultados conservar como máximo. 0 (por defecto): todos los que deja pasar el compresor; LLMListwiseRerank se queda entonces con 3.

Resultado

  • Retriever: el buscador, para conectarlo a componentes que piden un buscador, como otro de esta familia o un componente de preguntas y respuestas.
  • Search Results: los resultados depurados para Search Query, que puedes pasar a un prompt o a un agente. El registro de cada ejecución dice cuántos encontró el buscador base y cuántos se conservaron.

Uso como herramienta de un agente

Conecta Contextual Compression Retriever a la entrada Tools de un Agent y el agente buscará por su cuenta: él escribe Search Query con la pregunta. En la pestaña Tool, Tool Name y Tool Description son el nombre y la explicación con los que el agente reconoce la herramienta. Por defecto se llama refined_search; cambia la descripción para decir qué hay en tus documentos.

Ejemplo

Un despacho de abogados quiere que el agente reciba solo las cláusulas que importan.

  1. Conecta la salida Retriever de su base de contratos, con Number of Results 10, a Base Retriever.
  2. Deja LLMChainFilter en Compressor y conecta un modelo rápido a LLM.
  3. Conecta el componente a Tools del agente.

Cifras medidas

Medido el 17 de octubre de 2026 sobre una base de conocimiento de prueba (9 documentos de un servicio técnico ficticio; 16 preguntas dichas con otras palabras o cuyo fragmento no dice de qué habla; buscador base con 10 resultados; DeepSeek como modelo). Es un único conjunto sintético: muestra cómo se comporta la técnica, no una promesa para tus datos.

CompresorRespuesta correcta la primeraEntre los 5 primerosResultados que conserva (de 10)Tiempo por pregunta
Ninguno (los 10 resultados)75 %100 %100,01 s
LLMChainFilter88 %100 %2,51,0 s
LLMListwiseRerank (conserva 5)88 %100 %5de 1,0 a 1,2 s
LLMChainExtractor94 %100 %las frases útiles8,8 s
EmbeddingsFilter 0,375 %100 %8,90,6 s
EmbeddingsFilter 0,469 %94 %5,9de 0,6 a 1,1 s
EmbeddingsFilter 0,550 %69 %2,9de 0,6 a 1,3 s
  • LLMChainFilter es el mejor equilibrio: nunca descartó la respuesta correcta y el agente recibe la cuarta parte del texto.
  • LLMChainExtractor ordena algo mejor, pero tarda ocho veces más, porque el modelo reescribe cada resultado.
  • El Similarity Threshold adecuado depende del modelo de embeddings: con 0,4 una pregunta se quedó sin ningún resultado y con 0,5, cinco. Pruébalo con tus propias preguntas antes de subirlo.

Vídeo

Este vídeo muestra cómo Multi Query Retriever encuentra una respuesta que la búsqueda normal no ve cuando la pregunta usa otras palabras, y cómo la compresión deja solo los resultados útiles.

Lo que ves en el vídeo:

  1. Una pregunta dicha con otras palabras, del tipo «si una reparación se vuelve a estropear a los pocos meses, ¿me lo cobráis otra vez?». La búsqueda normal no trae el apartado de la garantía de las reparaciones.
  2. Multi Query Retriever escribe 3 versiones de la pregunta y busca también con la original: ahora sí encuentra ese apartado.
  3. El registro de la ejecución muestra las preguntas con las que buscó.
  4. Contextual Compression Retriever, con un modelo que revisa 10 resultados y descarta los que no responden, se queda solo con unos pocos: el registro dice cuántos encontró y cuántos conservó.

Componentes relacionados

  • Local Rerank: reordena los resultados con un modelo de reordenación que se ejecuta dentro de la plataforma, sin modelo de lenguaje.
  • Chroma DB: una base vectorial de la que pueden partir estos buscadores.

Para ver cómo se combinan las técnicas de búsqueda, consulta Técnicas de búsqueda en la guía de RAG.