Fusion
Fusion sends a single prompt to several models at the same time, then a judge merges their answers into one consolidated response. Every model in the panel answers the whole prompt independently, and the judge reconciles them. Fusion does not split the prompt into sub-tasks.
Use Fusion when answer quality matters more than latency or cost. A panel of several mid-tier models, reconciled by a judge, often beats any single one of them.
Fusion calls every panel model plus the judge, so a single request bills for all of them. Fusion currently supports non-streaming responses only: the response returns once the judge runs and synthesizes the responses from the panel models.
How fusion works
- Gateway sends the full prompt to every model in
analysis_modelsat the same time. Each returns a complete, independent answer. - A panel model that errors or is blocked by policy is dropped. Fusion still succeeds as long as at least one model returns a usable answer.
- The surviving answers, plus the original conversation, go to the judge (
synthesis_model), which reconciles agreements, resolves contradictions toward the best-supported claim, folds in unique insights, and writes one final answer. - You receive a standard
/v1/responsesresult whose output is the merged answer, plus afusionmetadata block describing the run.
Make a fusion request
Set model to fusion and include a fusion block on a normal POST /v1/responses request.
The fusion block
Standard generation parameters on the request (max_tokens, temperature, top_p, stop, tags, project_id) are forwarded to each panel model. Note that max_tokens applies to each panel model and to the judge individually, so leave room for the judge to write the merged answer.
Web search in fusion
Add the web search server tool to a fusion request and every panel model can ground its answer with live web results. Use this when the prompt needs current facts or source citations, such as research-style questions.
How it behaves:
- Each panel model runs its own web search loop, so panelists can search for different things and surface different sources.
- The judge does not search. It receives each candidate’s answer together with that candidate’s source list, and it is instructed to keep citations attached to the claims it keeps.
- Each entry in
fusion.candidatesincludes anannotationsarray with the URL citations that panel model gathered. - The final merged answer carries URL citation annotations for the sources the judge kept. A citation whose claim was dropped during synthesis is dropped with it.
Fusion accepts only web search server tools. Client-side function tools return a 400 with code fusion_unsupported_tools, because the panel and the judge run entirely inside Gateway, so there is no way to return a tool call to your application mid-fusion. Web search configuration (engine, max_results, domain filters) works the same as on a single-model request.
Read the response
The output is the judge’s merged answer, in the standard /v1/responses shape. A fusion object describes the run.
Billing
You are billed for every underlying call: each panel model and the judge, metered the same way as any other request. The top-level usage is the sum across all of them, so a three-model panel is roughly four calls. Budget accordingly.
Errors
Limitations
Fusion is non-streaming, requires an explicit analysis_models panel (there is no curated default), and treats preset as advisory. The only tool fusion supports is the web search server tool; client-side function tools are not available inside a fusion request.