> ## Documentation Index
> Fetch the complete documentation index at: https://docs.helve.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Fusion

> Each engine's most confident picks, merged by consensus, with no relevance model in the middle.

```json theme={null}
{ "query": "who won the 2026 Abel Prize", "provider": "fusion" }
```

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:

```json theme={null}
{
  "query": "…",
  "provider": "fusion",
  "provider_options": { "fusion": { "providers": ["exa", "tavily", "brave"], "top_k": 5 } }
}
```

## 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.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.
