# elovic-gpt-researcher-context-filter-jev-2026-09-26

## Veille

Página de documentación técnica de **GPT Researcher**, *"Context Filter"*, reescrita el **26 de septiembre de 2026** por **Assaf Elovic**, el creador del proyecto, el día en que convirtió a **Jev** (un modelo de **TypeSafe**) en el filtro de contexto predeterminado. Unas **2200 palabras**, incluido un benchmark reproducible. **(A)** La tesis de diseño: el filtro de contexto es *"la palanca más importante sobre la calidad del informe después de la investigación misma"*: *"lo que descarta, el redactor nunca lo ve"*. **(B)** El mecanismo: cada página extraída se divide en fragmentos de **1000 caracteres**. Jev puntúa cada fragmento en una escala de utilidad de cuatro niveles (0 a 3), y solo se conservan los fragmentos con **≥ 1,5**, un máximo de diez. Sin clave de API, entra en acción un **BM25** local de respaldo con un umbral relativo. **(C)** El benchmark: 28 tareas repetidas sobre las mismas páginas. **73%** de pasajes relevantes para Jev frente a **46%** para los embeddings, **15-10-3** en comparaciones directas, al mismo costo (~0,115 $ por informe). **(D)** El hallazgo más transferible: *"el umbral importa más que el ranking"*. Sin umbral, Jev vuelve a caer al 50%. La ganancia proviene de menos ruido, no de más contenido. Extiende, en el lado de la búsqueda web, la comparación de estrategias de recuperación de [[comparethemarket-context-retrieval-ai-code-review-gkg-rag-2026-03-06]].

## Titre Article

Context Filter

## Date

2026-09-26

## URL

https://docs.gptr.dev/docs/gpt-researcher/gptr/context-filter

## Keywords

filtro de contexto, filtro de contexto, selección de pasajes, GPT Researcher, Jev, TypeSafe, System One, puntuación de utilidad, probabilidades calibradas, umbral de selección, BM25, búsqueda léxica, embeddings, similitud coseno, división en fragmentos, fragmentación, respaldo, modo de respaldo, benchmark repetido, precisión, comparación por pares, juez LLM, SimpleQA, deep research, costo por informe, ruido contextual, context engineering

## Authors

Assaf Elovic, créateur de GPT Researcher, auteur de la page (documentation officielle docs.gptr.dev, non signée).

## Ton

**Perfil**: documentación de referencia de un proyecto de código abierto, escrita por su mantenedor principal el mismo día del cambio de comportamiento predeterminado. La página funciona tanto como manual (modos, variables de entorno, cadena de respaldo) como justificación basada en mediciones de esa elección.

**Estilo**: sobrio, denso, orientado a ingenieros. Diagrama de canalización en ASCII, solicitud HTTP completa, tablas de resultados, parámetros numéricos (k1 = 1,5, b = 0,75, 64 llamadas concurrentes). Las afirmaciones son breves y están respaldadas por evidencia (*"una puntuación de utilidad calibrada puede decir que 'nada más en esta página merece incluirse'; una puntuación de similitud no puede"*).

**Postura epistémica**: más cautelosa que la página de producto promedio. Protocolo publicado, scripts y métricas incluidos en el repositorio, prueba de significancia indicada (p ≈ 0,008 para Jev, p ≈ 0,12 para el respaldo BM25, calificado como *"orientativo"*). Una sección de salvedades precede a la reproducción: 28 tareas, un único modelo redactor, un único tipo de informe, redacción y evaluación por la misma familia (gpt-5.4). La elección predeterminada beneficia a un proveedor externo (TypeSafe), y la página no dice nada sobre la relación entre los dos proyectos. El respaldo gratuito, sin embargo, está documentado y medido como al menos equivalente a los embeddings.

## Pense-betes

- **Dónde se ubica el filtro.** Consulta → subconsultas → para cada una: búsqueda, extracción, **filtro**, pasajes. Los pasajes de todas las subconsultas se unen y luego se envían al redactor. Página limitada a **50 000 caracteres**, dividida en fragmentos de **1000 caracteres** con un solapamiento de 100. El chat sobre un informe terminado pasa por la misma función `select_context()`, tratando el informe como una única página.
- **Cinco modos** (`CONTEXT_FILTER`): `auto` (Jev si hay clave presente, si no, por palabra clave), `jev`, `keyword` (BM25), `embeddings`, `none`. Cualquier fallo de Jev (clave ausente, problema de red, 429/529 tras tres intentos, respuesta malformada) recurre al modo por palabra clave. Ninguna configuración deja una ejecución sin contexto. Por debajo de **8000 caracteres** en total, todo pasa sin filtrar.
- **Jev, un "modelo System One"**: no genera texto, responde preguntas tipadas con probabilidades calibradas. Escala de cuatro niveles: no relacionado / mismo tema pero no útil / responde parcialmente / responde directamente. La puntuación es el promedio ponderado (0 a 3). Umbral `JEV_MIN_SCORE` = 1,5. Costo: **0,042 $ por millón de tokens de entrada**, salida gratuita, es decir, ~medio centavo por informe.
- ⭐ **El umbral impulsa la ganancia, no el modelo.** Jev forzado a llenar 10 espacios sin umbral: 73% → **50%**, apenas mejor que los embeddings. BM25 top-10 bruto: 40%, pierde frente a los embeddings; el mismo BM25 con un umbral relativo (≥ 50% del fragmento mejor clasificado): 51%, los supera. Una métrica capaz de decir "nada más merece entrar" supera a un ranking que siempre agota el presupuesto.
- **Menos ruido, no más contenido.** Jev envía **4,5k tokens** frente a 7,6k para los embeddings, para una cantidad casi idéntica de texto relevante (~3,3k frente a 3,5k). La diferencia está en lo que el redactor tiene que ignorar. Se hace eco del diagnóstico de *context rot*, visto desde el lado de la entrada.
- **No filtrar en absoluto** gana en las preguntas abiertas (8-0 frente a los embeddings), pero cuesta **+65%** por informe (+83% en las abiertas) y envía hasta 108k tokens. En las preguntas factuales, no hay ganancia. La brecha se amplía en *deep research*, que multiplica las subconsultas.
- **Protocolo reutilizable**: registrar las páginas realmente vistas por el filtro, repetirlas con cada filtro, manteniendo fijo el redactor, y luego evaluar desde tres ángulos (precisión de pasajes, comparación directa a ciegas en ambos órdenes, precisión en SimpleQA). La búsqueda y la extracción, los pasos más ruidosos, quedan neutralizados.
- **SimpleQA está saturado**: de 18 a 20 sobre 20 para todos los filtros. Un benchmark factual no distingue entre estrategias de contexto.
- ⚠️ **Las propias salvedades de la página**: 28 tareas, solo informe estándar, redacción y evaluación por la misma familia de modelos. Costo del benchmark: ~41 $ para redacción y filtrado, más 8 a 15 $ para la evaluación.

## RésuméDe400mots

La página de documentación de GPT Researcher "Context Filter", reescrita el 26 de septiembre de 2026 por su creador Assaf Elovic, describe el paso que elige, entre las páginas extraídas, los pasajes que el modelo redactor realmente leerá. La presenta como la principal palanca sobre la calidad del informe después de la investigación misma.

Para cada subconsulta, las páginas se limitan a 50 000 caracteres y se dividen en fragmentos de 1000 caracteres. El filtro conserva como máximo diez fragmentos (veinticinco en modo por palabras clave), y luego los contextos de las subconsultas se unen y se pasan al redactor. El chat sobre un informe ya existente reutiliza la misma función.

Hay cinco modos disponibles. Por defecto, GPT Researcher usa Jev, un modelo de TypeSafe que no genera texto sino que responde preguntas tipadas con probabilidades calibradas. Cada fragmento recibe una puntuación de utilidad de 0 a 3 en una escala de cuatro niveles; solo se conservan los fragmentos con 1,5 o más. Las llamadas se hacen en paralelo, sesenta y cuatro a la vez, con un tiempo de filtrado mediano de unos 1,7 segundos y medio centavo por informe. Sin una clave de TypeSafe, o en caso de error, el sistema recurre a un ranking BM25 en Python puro, sin dependencias, que conserva los fragmentos que alcanzan la mitad de la puntuación del fragmento mejor clasificado. Ninguna configuración deja una ejecución sin contexto.

El benchmark repite 28 tareas reales, 20 preguntas de SimpleQA y 8 preguntas abiertas, exactamente sobre las páginas que se habían registrado, con el mismo modelo redactor. Solo varía el filtro. Jev alcanza el 73% de pasajes relevantes frente al 46% de los embeddings, y gana 15 comparaciones directas contra 3, con 10 empates, al mismo costo. El respaldo BM25 alcanza el 51% y gana 14 contra 6, un resultado considerado solo orientativo. Sin filtro, los informes abiertos ganan en alcance, pero cuestan un 65% más en promedio.

Dos hallazgos estructuran la página. Primero, el umbral importa más que el ranking: sin umbral, Jev cae al 50% y BM25 pierde frente a los embeddings. Segundo, la ganancia es una reducción de ruido: Jev envía 4,5k tokens en lugar de 7,6k, para una cantidad equivalente de texto relevante. SimpleQA, saturado entre 18 y 20 sobre 20, no discrimina en absoluto.

La página enumera sus limitaciones: 28 tareas, un único tipo de informe, redacción y evaluación por la misma familia de modelos. Los scripts de recolección, repetición y evaluación están publicados, junto con las métricas por ejecución, de modo que cualquiera pueda repetir la medición.

## GrapheDeConnaissance

- Assaf Elovic —a_créé→ GPT Researcher (TECHNOLOGIE, 0.95)
- Assaf Elovic —publie→ page Context Filter (DOCUMENT, 0.9)
- GPT Researcher —utilise→ Jev (TECHNOLOGIE, 0.97)
- TypeSafe —a_créé→ Jev (TECHNOLOGIE, 0.97)
- GPT Researcher —utilise→ BM25 (CONCEPT, 0.95)
- GPT Researcher —utilise→ filtre de contexte (METHODOLOGIE, 0.97)
- filtre de contexte —améliore→ la qualité des rapports de recherche, principal levier après la recherche elle-même (AFFIRMATION, 0.92)
- Jev —est_instance_de→ modèle System One (CONCEPT, 0.93)
- modèle System One —permet→ des réponses à des questions typées sous forme de probabilités calibrées, sans génération de texte (AFFIRMATION, 0.92)
- Jev —surpasse→ embeddings (TECHNOLOGIE, 0.9)
- Jev —mesure→ 73 % de passages pertinents contre 46 % pour les embeddings, 15 victoires, 10 égalités, 3 défaites, sur 28 tâches (MESURE, 0.93)
- BM25 —mesure→ 51 % de passages pertinents et 14-8-6 contre les embeddings avec seuil relatif, 40 % en top-10 brut (MESURE, 0.9)
- page Context Filter —affirme_que→ le seuil de sélection compte plus que le classement : sans seuil, la précision de Jev tombe de 73 % à 50 % (AFFIRMATION, 0.94)
- filtre de contexte —réduit→ le bruit transmis au rédacteur, 4,5 k tokens contre 7,6 k pour une quantité de texte pertinent équivalente (MESURE, 0.9)
- page Context Filter —affirme_que→ ne pas filtrer élargit les rapports ouverts mais coûte 65 % de plus par rapport, sans gain sur les questions factuelles (AFFIRMATION, 0.9)
- page Context Filter —affirme_que→ SimpleQA est saturé, 18 à 20 sur 20 pour tous les filtres, et ne départage pas les stratégies de contexte (AFFIRMATION, 0.9)
- page Context Filter —est_basé_sur→ benchmark rejoué à pages constantes, jugé par gpt-5.4 et gpt-5.4-mini (AFFIRMATION, 0.88)
- page Context Filter —affirme_que→ "A calibrated usefulness score can say 'nothing else on this page is worth including'; a similarity score can't." (CITATION, 0.93)
- filtre de contexte —fait_partie_de→ context engineering (METHODOLOGIE, 0.8)

---
Canonical: https://www.thekb.eu/es/fiches/elovic-gpt-researcher-context-filter-jev-2026-09-26/
