Skip to main content
The Fusion plugin gives your model access to a multi-model deliberation tool. When the model invokes it, a panel of models answers your prompt in parallel (with openrouter:web_search), a judge compares their responses and returns structured analysis, and your model uses that analysis to write a better final answer. The Fusion plugin is a configuration surface for the openrouter:fusion server tool. It’s also the mechanism behind the openrouter/fusion model alias. All three entry points hit the same pipeline.

When to use Fusion

Reach for Fusion when a single model isn’t enough — research, expert critique, or tasks that benefit from multiple perspectives. Fusion is overkill for short tactical prompts; use it when the cost of being wrong outweighs the cost of a few extra completions.

How it works

  1. The plugin injects the openrouter:fusion tool into your request. If you used model: "openrouter/fusion", it also resolves the alias to a real model.
  2. Your model reads the prompt and decides whether to invoke openrouter:fusion.
  3. The panel — a set of models — answers your prompt in parallel, each with openrouter:web_search and openrouter:web_fetch enabled.
  4. The judge receives all panel responses, with openrouter:web_search and openrouter:web_fetch available, and compares them — it doesn’t merge them. It returns structured analysis as JSON: consensus (points all or most models agree on, treated as higher-confidence), contradictions, partial coverage, unique insights from individual models, and blind spots none of them addressed.
  5. Your model receives the structured analysis and writes the final answer.

Configuration

FieldDefaultDescription
presetnoneA curated OpenRouter preset slug (e.g. general-high) that expands into a panel + judge, so you don’t have to name models. Explicit analysis_models / model override it. See Presets.
analysis_modelsQuality preset (~anthropic/claude-opus-latest, ~openai/gpt-latest, ~google/gemini-pro-latest)Models that form the panel. Each runs in parallel with openrouter:web_search and openrouter:web_fetch. 1–8 models allowed.
modelFirst model in the Quality preset (~anthropic/claude-opus-latest)The judge model that produces the structured analysis. With model: "openrouter/fusion", this also becomes the model that writes your final answer; when you attach the plugin to your own model instead, the judge defaults to that model.
max_tool_calls8Max tool-calling steps each panel model and the judge may take in their openrouter:web_search / openrouter:web_fetch loop before they must return text. Range 1–16.
enabledtrueSet to false to bypass fusion for a single request.
When you send model: "openrouter/fusion" without a plugin config, the defaults match the Quality preset on the Fusion lab.

Presets

Don’t want to pick models? Reference a curated preset by slug with preset — the panel and judge are chosen for you:
Slugs follow <task>-<tier>: task is what you’re optimizing the panel for, and tier is the quality/cost/speed tradeoff (high = strongest models, budget = cheaper panel with the same frontier judge, fast = a latency-homogeneous panel where every model has similar TTFT so no single model gates the fan-out). These mirror the presets shown in the Fusion lab UI.
PresetFor
general-highThe strongest all-round panel.
general-budgetA cheaper panel with a frontier judge for strong synthesis at lower cost.
general-fastA latency-homogeneous panel optimized for fast agentic turns, with a frontier judge.
Explicit analysis_models or model always take precedence over a preset.

Two entry points, one pipeline

openrouter/fusion is equivalent to enabling the openrouter:fusion server tool on the configured model. These behave identically:
In both cases, the model decides when to call openrouter:fusion. For prompts that don’t need deliberation, it answers directly — including invoking any other tools you’ve defined.

Complete example

Recursion protection

Inner fusion calls carry an x-openrouter-fusion-depth header. Panel and judge models cannot recursively invoke openrouter:fusion — the plugin refuses to inject the tool a second time, keeping deliberation bounded to a single level.