> Для получения чистого 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.

# Pareto Router

[Pareto Router](https://api.vega.chat/openrouter/pareto-code) (`openrouter/pareto-code`) — это способ заставить **VEGA** всегда выбирать сильную модель для кодирования, соответствующую вашим потребностям, без привязки к конкретной модели. Вы задаёте единственное предпочтение `min_coding_score` в диапазоне от `0` до `1`, а роутер направляет ваш запрос к модели кодирования, удовлетворяющей этому порогу.

## Обзор

Pareto Router оптимизирован для задач кодирования. Он поддерживает отобранный короткий список сильных моделей кодирования, доступных в **VEGA**, ранжированных по их [Artificial Analysis](https://artificialanalysis.ai/) перцентилю кодирования (целое число от `0` до `100`, показывающее, как модель позиционируется в бенчмарке AA). Ваш параметр `min_coding_score` выбирает уровень моделей, к которым будет направлен запрос. Внутри выбранного уровня роутер выбирает самую дешёвую доступную модель (или самую быструю, если запрошен вариант `:nitro`).

Название происходит от [Pareto efficiency](https://en.wikipedia.org/wiki/Pareto_efficiency): цель — предоставить вам сильного кодера без лишних расходов. Точный состав списка меняется со временем по мере появления новых моделей и изменения бенчмарков.

## Использование

Установите модель в `openrouter/pareto-code` и, при желании, передайте плагин `pareto-router` для управления минимальным баллом кодирования:

```typescript title="TypeScript SDK"
import { OpenRouter } from '@openrouter/sdk';

const client = new OpenRouter({
  apiKey: '<VEGA_API_KEY>',
});

const completion = await client.chat.send({
  model: 'openrouter/pareto-code',
  plugins: [
    {
      id: 'pareto-router',
      min_coding_score: 0.8,
    },
  ],
  messages: [
    {
      role: 'user',
      content: 'Write a Python function that merges two sorted lists.',
    },
  ],
});

console.log(completion.choices[0].message.content);
console.log('Model used:', completion.model);
```

```bash title="cURL"
curl https://api.vega.chat/api/v1/chat/completions \
  -H "Authorization: Bearer $VEGA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openrouter/pareto-code",
    "plugins": [
      {
        "id": "pareto-router",
        "min_coding_score": 0.8
      }
    ],
    "messages": [
      {"role": "user", "content": "Write a Python function that merges two sorted lists."}
    ]
  }'
```

## Настройки по умолчанию

Вместо того чтобы передавать плагин `pareto-router` в каждом запросе API, вы можете задать значение `min_coding_score` по умолчанию в **Личном кабинете VEGA**:

1. Перейдите в [Settings > Plugins](https://api.vega.chat/settings/plugins)  
2. Найдите строку **Pareto Router** и нажмите значок настройки (шестерёнка)  
3. Выберите уровень качества — **High**, **Medium** или **Low** — либо **Custom score**, чтобы ввести конкретное значение от `0` до `1`  
4. Нажмите **Save**  
5. Включите плагин **on**, чтобы он применялся ко всем запросам, использующим `openrouter/pareto-code`

После включения настроенный `min_coding_score` автоматически применяется к каждому запросу, использующему `openrouter/pareto-code`, без необходимости указывать массив `plugins` в вызовах API.

При желании вы всё равно можете переопределить значение по умолчанию для отдельного запроса, передав плагин `pareto-router` в массив `plugins`. Чтобы запретить такие переопределения, включите опцию «Prevent overrides» в конфигурации плагина.

## Параметр `min_coding_score`

`min_coding_score` — необязательное число от `0` до `1`, где `1` — лучший результат. Роутер сопоставляет его одному из трёх уровней качества, каждый из которых соответствует диапазону перцентилей в [Artificial Analysis](https://artificialanalysis.ai/) оценках кодирования.

| `min_coding_score`  | Уровень | Диапазон перцентилей кодирования AA |
| ------------------- | ------- | ----------------------------------- |
| `>= 0.66`           | high    | верхняя часть поля кодирования AA |
| `>= 0.33`, `< 0.66` | medium  | сильные современные флагманы ниже вершины |
| `< 0.33`            | low     | способные кодеры, всё ещё превосходящие медиану AA |
| omitted             | high (default) | верхняя часть поля кодирования AA |

Если параметр `min_coding_score` не указан, роутер по умолчанию выбирает самых сильных доступных кодеров. Внутри уровня роутер берёт самую дешёвую доступную модель, либо самую быструю по p50‑пропускной способности, если запрошен вариант `:nitro`.

Роутер определяет основную модель кодирования плюс до двух резервных моделей того же уровня. Основная модель обслуживает ваш запрос. Резервные модели задействуются только при временных ошибках провайдера или ограничениях скорости; они не распределяют нагрузку. Если в выбранном уровне нет моделей, опубликованных в **VEGA**, роутер переходит к соседнему уровню. Поле `model` в ответе всегда указывает конкретную модель, обработавшую запрос.

Поскольку ось оценки — *перцентиль* в бенчмарке AA, планка возможностей, соответствующая заданному `min_coding_score`, меняется по мере сдвига фронтира. Новый сильный релиз может опустить существующие модели в нижний перцентильный диапазон, поэтому `min_coding_score=0.66` всегда означает «верх текущего поля», а не «выше абсолютного порога возможностей».

## Ответ

Ответ содержит поле `model`, указывающее, какая именно модель кодирования была использована:

```json
{
  "id": "gen-...",
  "model": "anthropic/claude-opus-4.8",
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "..."
      }
    }
  ],
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 128,
    "total_tokens": 170
  }
}
```

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

1. **Определение уровня**: значение `min_coding_score` сопоставляется с одним из трёх уровней (`high`, `medium`, `low`) согласно порогам в таблице выше.  
2. **Фильтрация кандидатов**: роутер берёт отобранный короткий список уровня и оставляет только модели, опубликованные в **VEGA**.  
3. **Выбор**: отфильтрованный список сортируется по возрастанию цены, либо по убыванию p50‑пропускной способности, если запрошен вариант `:nitro`. Первая запись становится основной моделью, а следующие две — резервными моделями того же уровня.  
4. **Резерв в режиме выполнения**: если конечные точки основной модели недоступны из‑за временных ошибок провайдера или ограничений скорости, запрос переходит к резервным моделям того же уровня. Переход к соседнему уровню происходит только если весь текущий уровень отсутствует в каталоге.  
5. **Перенаправление запроса**: ваш запрос пересылается выбранной модели.

## Ценообразование

Сам Pareto Router не добавляет никаких комиссий. Вы платите только за базовую модель, которая обрабатывает запрос. Поскольку выбор модели зависит от текущего списка, стоимость за запрос будет варьироваться. Приоритетом экономии можно задать более низкий `min_coding_score`.

## Ограничения

* **Только кодирование**: `openrouter/pareto-code` оптимизирован для задач кодирования. Для других сценариев используйте другой роутер или укажите конкретную модель.  
* **Выбор модели может изменяться со временем**: для заданного `min_coding_score` модель выбирается детерминированно (сортировка по цене). Однако выбранная модель может измениться, когда обновляется список (добавляются новые модели, меняются бенчмарки или перцентильные диапазоны). В рамках одного диалога [provider sticky routing](/docs/guides/best-practices/prompt-caching#provider-sticky-routing) удерживает ваши запросы на том же провайдере, чтобы максимизировать кеш‑хиты.  
* **Только оценка кодирования**: `min_coding_score` — единственный параметр роутера. Нельзя напрямую ограничить стоимость или задержку запроса.

## Связанные роутеры

* [Auto Router](/docs/guides/routing/routers/auto-router) — интеллектуальный выбор модели для всех типов задач  
* [Free Models Router](/docs/guides/routing/routers/free-router) — выбор моделей без затрат  
* [Body Builder](/docs/guides/routing/routers/body-builder) — генерация нескольких параллельных API‑запросов  
* [Model Fallbacks](/docs/guides/routing/model-fallbacks) — настройка резервных моделей