Skip to main content
Fusion sends the same request to several engines in parallel, deduplicates by normalized URL, and returns each engine’s top picks plus any page that two or more engines agreed on. There is no LLM judge and no learned reranker: rank is the one confidence signal every engine shares, so each engine’s ranking is taken at face value.

The panel

The default panel is exa, parallel, octen, and perplexity: a neural engine, an agentic one, a real-time index, and a retrieval layer. Override it with at least two engines:

How results are chosen and ordered

  1. Every engine’s top top_k results are kept (default 3).
  2. Below that, a page survives only if at least two engines returned it.
  3. Order is by rank first (every engine’s number one, then every number two), then by how many engines agreed, then by panel order.
  4. score is the number of engines that returned the page, with score_synthesized: true. It is consensus, not relevance.
  5. Per page, the richest single engine’s snippets are kept, along with the longest full text and the first known title, date, and author. raw.providers maps each engine that found the page to its original result.
max_results sizes each member’s list, not the merged one. The default panel returns roughly 12 to 18 pages; top_k: 10 approximates the full union.

Speed, cost, and failure

  • Latency is roughly the slowest member, typically two to three seconds at default tiers. mode: "deep" applies to every member and runs about six to seven seconds.
  • Cost is the sum of member prices: about 0.018perqueryonthedefaultpanel,about0.018 per query on the default panel, about 0.023 with mode: "deep". It is reported once, as one usage row with provider fusion.
  • A slow or failing member is dropped, not fatal. Each engine has a time budget (provider_options.fusion.timeout_ms, default 10 seconds). A timeout, 429, or 5xx is retried once; a member that still fails is removed and reported in a results_post_filtered warning such as “fused from 3 of 4 providers; exa timed out”. Only every member failing is a 502.
  • Members run non-strict. Their own adjustments come back tagged with the engine, for example "exa: no offset". strict: true with fusion is a 400, because strictness against a panel has no coherent meaning.

Why top-k and consensus, not rank fusion

The first version used Reciprocal Rank Fusion. On real agent queries the union held around 38 distinct pages of which only 7 or 8 had any cross-engine agreement, so consensus decided little and the cut to ten results dropped about a third of every engine’s top picks. Returning the whole union fixed coverage but pushed 15k tokens per search into agent context. Traces settled the depth: across 59 questions, the answer surfaced within the top 15 of the merged list 98% of the time, while positions 15 to 45 carried two thirds of the tokens. Hence each engine’s top 3, consensus rescue below that, and one engine’s snippets per page.