v3.7.0
assafelovic/gpt-researcherv3.7.0Sep 26, 2026by assafelovic
Upgrading?
AI Summary
GPT Researcher introduces a new context filtering system powered by the Jev model that prioritizes passage usefulness over similarity, effectively making external embeddings providers optional. The release includes significant improvements to multi-agent workflows, frontend stability, and requires Python 3.12+.
Key Highlights
- Context filtering now uses Jev for usefulness scoring instead of similarity.
- No embeddings provider required; falls back to local keyword (BM25) ranking.
- Retriever plugins can now be shipped as separate packages via entry points.
- Fixed frontend WebSocket issues and moved to self-hosted assets.
- Requires Python 3.12+.
Breaking Changes
- Python 3.12+ is now required.
- Default context filter changed from embeddings to keyword ranking.
New Features
- Context filtering with Jev model (usefulness-based ranking).
- Keyword fallback mechanism (BM25) for filtering.
- Retriever plugins support via `gpt_researcher.retrievers` entry point.
- Ground-truth-free report quality evaluation feature.
- Self-hosted frontend assets to avoid third-party CDNs.
Full Release Notes
## Smarter context, no embeddings required GPT Researcher now picks the context it sends to the LLM by **usefulness, not similarity**. Every passage scraped for a research question is scored by [Jev](https://typesafe.ai/blog/introducing-system-one-models-and-jev) on how useful it is for answering that question, and only the passages that help are kept. On a benchmark of 28 research tasks replayed on identical sources: <img width="3200" height="1800" alt="image-1790437831580" src="https://github.com/user-attachments/assets/c2a7b305-2e60-4709-ad9c-8af09e297f9f" /> **Nothing is required.** With `TYPESAFE_API_KEY` set, Jev is used. Without one, or if a Jev call fails, GPT Researcher falls back to local keyword (BM25) ranking, so you no longer need an embeddings provider for standard research. Report chat uses the same filter. - Docs: https://docs.gptr.dev/docs/gpt-researcher/gptr/context-filter - Benchmark, method and code: `evals/context_filter/` ## ⚠️ Changes to note - **Python 3.12+** is now required. - **Default context filter:** without a TypeSafe key, the default is now keyword ranking instead of embeddings. It matched or beat embeddings on every measure in the benchmark. To keep the old behaviour, set `CONTEXT_FILTER=embeddings`. ## Also in this release - Retriever plugins: ship a search provider as its own package via the `gpt_researcher.retrievers` entry point (#2154) - Fixed the frontend WebSocket opening a second connection on a new research run (#2159) - Multi-agent sections no longer repeat each other's content (#2158) - Self-hosted frontend assets, no third-party CDNs (#2082) - 25+ community fixes across retrievers, scrapers and deep research - Docs: redesigned homepage, current model hallucination leaderboard, fixed builds on fresh installs **Install:** `pip install -U gpt-researcher` (0.16.0) ## What's Changed * fix: define stream output for multi-agent execution by @alaningtrump in https://github.com/assafelovic/gpt-researcher/pull/2092 * fix(deps): pin mcp below 2.0 to keep MCPRetriever importable by @DAI-BZ in https://github.com/assafelovic/gpt-researcher/pull/2147 * fix(bing): bound request and handle transport failures by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2133 * fix(semantic-scholar): bound request and guard response parsing by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2130 * fix(openalex): handle malformed JSON responses by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2128 * fix(multi-agents): load .env before tracing setup by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2126 * fix: preserve caller-provided empty visited_urls set by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2122 * fix: handle zero generated queries in deep research by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2111 * fix: reject whitespace-only deep research query fields by @L4XB in https://github.com/assafelovic/gpt-researcher/pull/2117 * fix(google): filter YouTube hosts case-insensitively by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2113 * fix(retrievers): fall back after blank normalization by @remote-controlled-man in https://github.com/assafelovic/gpt-researcher/pull/2105 * fix(research): preserve complementary web context by @remote-controlled-man in https://github.com/assafelovic/gpt-researcher/pull/2104 * fix(research): record prefetched URLs in visited_urls by @feiiiiii5 in https://github.com/assafelovic/gpt-researcher/pull/2123 * fix(research): preserve initial planning sources in report context by @guybass in https://github.com/assafelovic/gpt-researcher/pull/2145 * fix(mcp): detect URL schemes case-insensitively by @anupamking01 in https://github.com/assafelovic/gpt-researcher/pull/2114 * fix(chat): preserve sources from the actual search tool invocation by @beemines in https://github.com/assafelovic/gpt-researcher/pull/2112 * fix(scraper): keep inline text in its line when extracting page text by @L4XB in https://github.com/assafelovic/gpt-researcher/pull/2149 * fix(llm): let llm_kwargs / LLM_KWARGS override the computed temperature by @rbales79 in https://github.com/assafelovic/gpt-researcher/pull/2107 * fix: correct typos in user-facing warnings, subtopic prompt, and docstring by @feizhuzheng in https://github.com/assafelovic/gpt-researcher/pull/2080 * Make Serper retriever base URL configurable via SERPER_API_BASE by @starnikovoleg in https://github.com/assafelovic/gpt-researcher/pull/2103 * fix(frontend): self-host browser assets by @ousamabenyounes in https://github.com/assafelovic/gpt-researcher/pull/2082 * docs: fix dead retrievers link in hybrid research example by @yetuge in https://github.com/assafelovic/gpt-researcher/pull/2136 * docs: add Russian README translation by @MonteNegroX in https://github.com/assafelovic/gpt-researcher/pull/2083 * chore(deps): update numpy requirement from <2.3.0,>=2.0.0 to >=2.0.0,<2.5.0 by @dependabot[bot] in https://github.com/assafelovic/gpt-researcher/pull/2087 * chore(deps): update deepagents requirement from >=0.6 to >=0.7.8 by @dependabot[bot] in https://github.com/assafelovic/gpt-researcher/pull/2085 * chore: untrack maintainer triage notes; stop dependabot raising floors by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2151 * feat(retrievers): load third-party retrievers from entry points by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2154 * chore(deps): update numpy requirement from <2.3.0,>=2.0.0 to >=2.0.0,<2.5.0 by @dependabot[bot] in https://github.com/assafelovic/gpt-researcher/pull/2155 * Bump python from 3.12-slim-bookworm to 3.14-slim-bookworm by @dependabot[bot] in https://github.com/assafelovic/gpt-researcher/pull/1612 * fix(document): tolerate missing metadata source on loaded pages by @Bartok9 in https://github.com/assafelovic/gpt-researcher/pull/2152 * Add quality_eval: ground-truth-free report quality evaluation by @SeanHe727 in https://github.com/assafelovic/gpt-researcher/pull/1821 * fix: carry over the remaining fixes from #2140 and #2121 by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2157 * fix(multi_agents): tell each parallel section what its siblings cover by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2158 * fix(websocket): stop a new research run from opening a second socket by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2159 * ci: don't fail fork PRs on the LLM cost comment by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2160 * feat(context): filter scraped content with Jev; embeddings become optional by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2161 * feat(context): keyword fallback so no filter needs a key or embeddings by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2162 * docs: current model leaderboard; fix the docs build on fresh installs by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2170 * docs: redesign the documentation homepage by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2171 * docs(homepage): drop the code card and stats strip; centre the hero by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2172 * docs(homepage): restore the two-column hero by @assafelovic in https://github.com/assafelovic/gpt-researcher/pull/2173 ## New Contributors * @alaningtrump made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2092 * @DAI-BZ made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2147 * @anupamking01 made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2133 * @L4XB made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2117 * @remote-controlled-man made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2105 * @feiiiiii5 made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2123 * @guybass made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2145 * @beemines made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2112 * @rbales79 made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2107 * @feizhuzheng made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2080 * @starnikovoleg made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2103 * @ousamabenyounes made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2082 * @yetuge made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2136 * @MonteNegroX made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2083 * @Bartok9 made their first contribution in https://github.com/assafelovic/gpt-researcher/pull/2152 **Full Changelog**: https://github.com/assafelovic/gpt-researcher/compare/v3.6.1...v3.7.0
Related Repositories
public-apis/public-apis★ 491,217
A collective list of free APIs
NousResearch/hermes-agent★ 256,087
The agent that grows with you
yt-dlp/yt-dlp★ 200,261
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,560
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,699
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.