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

# Fusion server tool

> Run a prompt across a model panel and return a structured comparison to the primary model.

The `orq:fusion` tool sends one prompt to a panel of models in parallel. An analyst model compares the successful responses and returns consensus, contradictions, unique insights, and blind spots to the primary model.

Panel members do not receive the parent conversation or tools. The primary model must give Fusion a self-contained prompt.

## Quick start

The examples use the client configuration from the [Server tools overview](/docs/ai-gateway/features/server-tools).

<CodeGroup>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X POST https://api.orq.ai/v3/router/chat/completions \
    -H "Authorization: Bearer $ORQ_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "openai/gpt-5.4-mini",
      "messages": [
        { "role": "user", "content": "Compare the main architectural options for a multi-region event ingestion service." }
      ],
      "tools": [
        {
          "type": "orq:fusion",
          "analysis_models": [
            "openai/gpt-5.4",
            "anthropic/claude-sonnet-5"
          ],
          "model": "openai/gpt-5.4",
          "max_uses": 1
        }
      ]
    }'
  ```

  ```typescript TypeScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await client.chat.completions.create({
    model: 'openai/gpt-5.4-mini',
    messages: [
      {
        role: 'user',
        content:
          'Compare the main architectural options for a multi-region event ingestion service.',
      },
    ],
    tools: [
      {
        type: 'orq:fusion',
        analysis_models: ['openai/gpt-5.4', 'anthropic/claude-sonnet-5'],
        model: 'openai/gpt-5.4',
        max_uses: 1,
      },
    ] as any,
  });

  console.log(response.choices[0].message.content);
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  response = client.chat.completions.create(
      model="openai/gpt-5.4-mini",
      messages=[
          {
              "role": "user",
              "content": "Compare the main architectural options for a multi-region event ingestion service.",
          }
      ],
      tools=[
          {
              "type": "orq:fusion",
              "analysis_models": [
                  "openai/gpt-5.4",
                  "anthropic/claude-sonnet-5",
              ],
              "model": "openai/gpt-5.4",
              "max_uses": 1,
          }
      ],
  )

  print(response.choices[0].message.content)
  ```
</CodeGroup>

## Configuration

| Parameter          | Type      | Required | Default           | Description                                                                                             |
| ------------------ | --------- | -------- | ----------------- | ------------------------------------------------------------------------------------------------------- |
| `type`             | string    | Yes      |                   | Must be `orq:fusion`.                                                                                   |
| `analysis_models`  | string\[] | Yes      |                   | Panel models in `provider/model` format. Include 1 to 8 models.                                         |
| `model`            | string    | No       | First panel model | Analyst model that compares the panel responses.                                                        |
| `max_tokens`       | integer   | No       | Provider default  | Maximum output tokens for each inner call. Accepted range: 0 to 128,000. `0` uses the provider default. |
| `reasoning_effort` | string    | No       | Provider default  | `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, or `max`, when supported by the panel models.      |
| `temperature`      | number    | No       | Provider default  | Panel sampling temperature from 0 to 2. The analyst always uses `0`.                                    |
| `max_uses`         | integer   | No       | `1`               | Maximum Fusion calls during the request. A missing or non-positive value uses `1`.                      |

## Failure behavior

If some panel calls fail, Fusion compares the successful responses and includes the failed model details in its result. If the analyst fails, the panel responses are still returned. If every panel call fails, the tool returns `all_panels_failed` to the primary model.

## Cost and usage

Each panel response and the analyst response are billed at their selected models' standard token rates. Each Fusion invocation appears at `usage.server_tool_use.fusion_requests`.
