Skip to main content

Fusion model

litellm/fusion-1 is a LiteLLM-provided virtual model for requests that benefit from independent model perspectives. It sends the request to a configurable panel in parallel, asks a judge to compare the successful responses, then has the judge synthesize one public response.

The request and response keep the native shape of the SDK method you call. Fusion works with Chat Completions, Anthropic Messages, and Responses.

The judge first produces a structured comparison covering consensus, contradictions, coverage gaps, unique insights, and blind spots. LiteLLM feeds that private analysis back to the judge, which writes the final answer. The public response.model identifies the concrete judge model that produced it.

Quick start​

Set credentials for every provider used by the panel and judge. The same fusion configuration works across all three SDK interfaces.

import litellm

fusion = {
"models": [
"openai/gpt-4o-mini",
"anthropic/claude-haiku-4-5",
],
"judge": {
"model": "openai/gpt-4o-mini",
"criteria": "Prioritize correctness and verifiable evidence.",
},
}

response = litellm.completion(
model="litellm/fusion-1",
messages=[
{
"role": "user",
"content": "Review this database migration plan for operational risks.",
}
],
fusion=fusion,
)

print(response.model)
print(response.choices[0].message.content)

Calling litellm/fusion-1 always runs deliberation. There is no separate flag to enable it. You can omit fusion to use the default panel and judge.

Response behavior​

Fusion returns one normal response in the format of the SDK method you called. It does not return separate panel responses or the private judge comparison. The response's hidden Fusion metadata reports whether deliberation ran and how many panel calls succeeded or failed, without including their content. Its hidden router field identifies litellm/fusion-1.

Configuration​

Pass a fusion dictionary alongside model="litellm/fusion-1". Every field is optional.

FieldDefaultDescription
modelsLiteLLM default panelOne to eight models that answer independently in parallel.
judge.modelLiteLLM default judgeModel that compares successful panel responses and writes the final answer.
judge.criteriaNoneInstructions used to compare the panel responses.
max_completion_tokens16000Maximum output tokens, including reasoning, for each internal call.
reasoningProvider defaultReasoning effort forwarded to panel and judge calls.
temperatureProvider defaultTemperature forwarded to panel calls. The judge uses temperature 0.

Tools and streaming​

Standard tools remain available on the public request. Client tool schemas are kept private from panel and comparison calls. The judge receives them when it authors the final response.

Streaming uses the async SDK methods: litellm.acompletion(), litellm.anthropic.messages.acreate(), or litellm.aresponses(). Synchronous streaming is rejected with guidance to the matching async method.

Cost and recursion​

Fusion makes several provider calls for one public request. Cost and latency increase with panel size and the configured models. Panel and judge models cannot recursively invoke litellm/fusion-1; deliberation is bounded to one level.

🚅
LiteLLM Enterprise
SSO/SAML, audit logs, spend tracking, multi-team management, and guardrails — built for production.
Learn more →