> Для получения чистого Markdown любой страницы добавьте .md к URL страницы.  
> Для полного индекса документации см. https://api.vega.chat/docs/llms.txt.  
> Для полного содержания документации см. https://api.vega.chat/docs/llms-full.txt.  
> Для интеграции AI‑клиента (Claude Code, Cursor и др.) подключитесь к MCP‑серверу по адресу https://api.vega.chat/docs/_mcp/server.

# Fusion

Плагин Fusion предоставляет вашей модели доступ к инструменту многомодельного обсуждения. Когда модель вызывает его, панель моделей отвечает на ваш запрос параллельно (с `openrouter:web_search`), судья сравнивает их ответы и возвращает структурированный анализ, а ваша модель использует этот анализ для написания лучшего окончательного ответа.

Плагин Fusion — это конфигурационный слой для [`openrouter:fusion` server tool](/docs/guides/features/server-tools/fusion). Он также является механизмом, лежащим в основе [`openrouter/fusion` model alias](/docs/guides/routing/routers/fusion-router). Все три точки входа используют один и тот же конвейер.

## Когда использовать Fusion

Обращайтесь к Fusion, когда одной модели недостаточно — исследования, экспертная критика или задачи, которые выигрывают от нескольких точек зрения. Fusion избыточен для коротких тактических запросов; используйте его, когда стоимость ошибки превышает стоимость нескольких дополнительных завершений.

## Как это работает

```mermaid
flowchart LR
  request[Your request] --> model[Your model]
  model -- calls openrouter:fusion --> panel[Panel<br />up to 8 models<br />+ web_search + web_fetch]
  panel --> judge[Judge / analysis<br />+ web_search + web_fetch<br />structured JSON]
  judge -- analysis --> model
  model --> answer[Final answer]
```

1. Плагин внедряет инструмент `openrouter:fusion` в ваш запрос. Если вы использовали `model: "openrouter/fusion"`, он также разрешает псевдоним в реальную модель.  
2. Ваша модель читает подсказку и решает, вызывать ли `openrouter:fusion`.  
3. **Панель** — набор моделей — отвечает на ваш запрос параллельно, каждая с включёнными `openrouter:web_search` и `openrouter:web_fetch`.  
4. **Судья** получает все ответы панели, с доступными `openrouter:web_search` и `openrouter:web_fetch`, и сравнивает их — он не объединяет их. Он возвращает структурированный анализ в виде JSON: консенсус (точки, в которых согласны все или большинство моделей, рассматриваются как более надёжные), противоречия, частичное покрытие, уникальные инсайты отдельных моделей и слепые зоны, которые никто не затронул.  
5. Ваша модель получает структурированный анализ и пишет окончательный ответ.

## Конфигурация

```json
{
  "model": "openrouter/fusion",
  "plugins": [
    {
      "id": "fusion",
      "analysis_models": [
        "~anthropic/claude-opus-latest",
        "~openai/gpt-latest",
        "~google/gemini-pro-latest"
      ],
      "model": "~openai/gpt-latest"
    }
  ]
}
```

| Поле                | По умолчанию                                                                                         | Описание                                                                                                                                                                                                                                      |
| ------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `analysis_models`   | Предустановка Quality (`~anthropic/claude-opus-latest`, `~openai/gpt-latest`, `~google/gemini-pro-latest`) | Модели, формирующие панель. Каждая работает параллельно с `openrouter:web_search` и `openrouter:web_fetch`. Допустимо от 1 до 8 моделей.                                                                                                         |
| `model`             | Первая модель из предустановки Quality (`~anthropic/claude-opus-latest`)                             | Модель‑судья, генерирующая структурированный анализ. При `model: "openrouter/fusion"` эта же модель пишет ваш окончательный ответ; если плагин прикреплён к вашей собственной модели, судья по умолчанию будет этой моделью.               |
| `max_tool_calls`    | `8`                                                                                                  | Максимальное количество шагов вызова инструмента, которое каждая модель панели и судья могут выполнить в своём цикле `openrouter:web_search` / `openrouter:web_fetch` до возврата текста. Диапазон 1–16.                                         |
| `enabled`           | `true`                                                                                               | Установите `false`, чтобы отключить Fusion для отдельного запроса.                                                                                                                                                                            |

Если вы отправляете `model: "openrouter/fusion"` без конфигурации плагина, значения по умолчанию соответствуют предустановке **Quality** на [Fusion lab](/labs/fusion).

## Две точки входа, один конвейер

`openrouter/fusion` эквивалентен включению инструмента `openrouter:fusion` на настроенной модели. Они работают одинаково:

```json title="Model alias"
{
  "model": "openrouter/fusion",
  "messages": [
    { "role": "user", "content": "What are the strongest arguments for and against carbon taxes?" }
  ]
}
```

```json title="Server tool"
{
  "model": "~anthropic/claude-opus-latest",
  "messages": [
    { "role": "user", "content": "What are the strongest arguments for and against carbon taxes?" }
  ],
  "tools": [
    { "type": "openrouter:fusion" }
  ]
}
```

В обоих случаях модель решает, когда вызвать `openrouter:fusion`. Для запросов, не требующих обсуждения, она отвечает напрямую — включая вызов любых других инструментов, которые вы определили.

## Полный пример

```typescript title="TypeScript"
const response = await fetch('https://api.vega.chat/api/v1/chat/completions', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer {{API_KEY_REF}}',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: 'openrouter/fusion',
    messages: [
      {
        role: 'user',
        content: 'Compare ridge, lasso, and elastic-net regression. Where does each shine?',
      },
    ],
    plugins: [
      {
        id: 'fusion',
        analysis_models: [
          '~anthropic/claude-opus-latest',
          '~openai/gpt-latest',
        ],
      },
    ],
  }),
});

const data = await response.json();
console.log(data.choices[0].message.content);
```

```python title="Python"
import requests

response = requests.post(
  "https://api.vega.chat/api/v1/chat/completions",
  headers={
    "Authorization": f"Bearer {{API_KEY_REF}}",
    "Content-Type": "application/json",
  },
  json={
    "model": "openrouter/fusion",
    "messages": [
      {
        "role": "user",
        "content": "Compare ridge, lasso, and elastic-net regression. Where does each shine?",
      },
    ],
    "plugins": [
      {
        "id": "fusion",
        "analysis_models": [
          "~anthropic/claude-opus-latest",
          "~openai/gpt-latest",
        ],
      },
    ],
  },
)
print(response.json()["choices"][0]["message"]["content"])
```

## Защита от рекурсии

Внутренние вызовы Fusion несут заголовок `x-openrouter-fusion-depth`. Модели панели и судьи не могут рекурсивно вызывать `openrouter:fusion` — плагин отказывается внедрять инструмент второй раз, ограничивая обсуждение одним уровнем.

## Связанные материалы

* [`openrouter:fusion` server tool](/docs/guides/features/server-tools/fusion)  
* [Fusion Router (`openrouter/fusion`)](/docs/guides/routing/routers/fusion-router)  
* [Web Search server tool](/docs/guides/features/server-tools/web-search)  
* [Web Fetch server tool](/docs/guides/features/server-tools/web-fetch)  
* [`/labs/fusion`](/labs/fusion) — интерактивная площадка