# Мультиагентность

**Мультиагентность** — это подход, при котором задачи распределяются между несколькими агентами с чётким разделением ролей. Каждый агент выполняет свою часть работы, а система координирует их взаимодействие. Это особенно полезно для сложных, многоуровневых процессов, где один агент может запутаться или потерять эффективность.

***

#### Проблема

Традиционные ИИ-системы имеют ограничения при работе с:

* Длинными многоэтапными задачами
* Сценариями с разветвленной логикой
* Задачами, требующими глубокой специализации

#### Решение: Мультиагентный подход

***

#### Принцип работы

1. Разделение задачи на специализированные подзадачи
2. Назначение уникальных инструкций для каждого агента
3. Динамическое переключение между агентами

### Примеры использования

#### Пример 1: Продажа товара

* **Агент 1**: Уточнение деталей заказа
  * Определение цвета
  * Выбор количества
  * Согласование доставки
* **Агент 2**: Сопровождение доставки
  * Отслеживание статуса
  * Коммуникация с курьером

#### Пример 2: Клиентская поддержка

* **Агент 1**: Первичная идентификация клиента
  * Определение типа клиента (физ. лицо / юр. лицо)
* **Агент 2 (физ. лица)**: Специализированная поддержка
  * Персональный подход
  * Упрощенные коммуникации
* **Агент 3 (юр. лица)**: Корпоративная поддержка
  * Официальная коммуникация
  * Работа с документацией

***

### **Когда использовать мультиагентность?**

* **Длинные процессы:** Когда одна задача разбита на несколько этапов.
* **Разные типы клиентов:** Для адаптации под разные сценарии, например, физлицо или юрлицо.
* **Комплексные задачи:** Когда один агент не справляется из-за объёма информации или сложности логики.

***

### Преимущества мультиагентности

#### **1. Повышение точности**

Каждый агент выполняет узкоспециализированную задачу. Это уменьшает вероятность ошибок, связанных с перегрузкой или путаницей, особенно в сложных процессах.

#### **2. Гибкость**

Система легко адаптируется под разные типы задач и сценарии. Вы можете настроить агентов для работы с различными клиентскими ситуациями (например, физлица, юрлица) или сложными процессами (продажа → сопровождение → поддержка).

#### **3. Экономия затрат**

Инструкция для каждого агента становится короче, так как он фокусируется только на текущей задаче. Это снижает нагрузку на вычислительные мощности и позволяет использовать более лёгкие модели или конфигурации.

#### **4. Масштабируемость**

Система поддерживает добавление новых агентов для решения дополнительных задач без перегрузки существующих. Что повышает стабильность, так как, не вносятся изменения в текущее взаимодействие.

### Как это сделать?

Для начала **создаём первого агента** который будет принимать все входящие обращения.

<figure><img src="/files/TAiSmwfwQQgiOTJy6ZFP" alt=""><figcaption></figcaption></figure>

Привязываем к нему все необходимые каналы связи ([ссылка](/functional/channels.md)).<br>

{% hint style="info" %}
**Привязывать мессенджеры необходимо только к первому агенту!**
{% endhint %}

**Добавляем второго агента**, на которого будет происходить переключение:<br>

<figure><img src="/files/0QiQqGQPcIYZHWfqiYI6" alt=""><figcaption></figcaption></figure>

На агенте 1 (тот который принимает сообщения) **добавляем функцию** после которой будет смена агента:

<figure><img src="/files/8tcKyLIQCxn1blXi6pZu" alt=""><figcaption></figcaption></figure>

В настройках **"Сценарий поведения после выполнения функции:"** указываем агента на которого необходимо сменить в случае применения функции.

<figure><img src="/files/4Ojom8yqsmta6jcRF9eO" alt=""><figcaption></figcaption></figure>

### Тестируем:

<figure><img src="/files/iGezLPFrs2gFf5bI2jRK" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Jj3bRXPMJdaZDC7NVul0" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/BK3ogW7Gd1gRESmJRqST" alt=""><figcaption></figcaption></figure>

### Также можно настроить смену на определённого агента в зависимости от аргумента функции.

Для этого в функции необходимо добавить возможные значения аргумента, и для каждого выбрать необходимое поведение:

<figure><img src="/files/RASHsKreXz8umZnK5jOB" alt=""><figcaption></figcaption></figure>

### Многоагентная связка: отправка отчетов

Уведомление при настройке второстепенных агентов\
\
При настройке функций второстепенных агентов может отображаться уведомление о необходимости подключения Telegram.

<figure><img src="/files/HqVm9hCcfwhjUUh7Tbhw" alt=""><figcaption></figcaption></figure>

Примечание: Если агент является второстепенным, уведомление можно игнорировать. Telegram-бот или Интеграция WhatsApp подключается только к главному агенту.

#### Настройка отчетов в Telegram

Шаг 1. Настройка главного агента

* Выберите агента, который будет главным.
* подлкючите телеграм бота/интеграцию WhatsApp к этому агенту

Шаг 2. настройка отчетов в месенджер Telegram/WhatsApp

* настройте какому пользователю будет отпровляться отчет

Шаг 3. Работа второстепенных агентов

Второстепенным агентам не требуется:

* подключение Telegram-бота или дополнительной Интеграции WhatsApp
* отдельная настройка параметров отчетов.

Все отчеты от второстепенных агентов автоматически:

-передаются главному агенту;

-отправляются админу от имени главного агента.<br>

**Важно: Telegram-боты для второстепенных агентов**

**⚠️ Не подключайте отдельных Telegram-ботов к второстепенным агентам.**<br>

### Второстепенные агенты в Bitrix24 и amoCRM

В Nextbot реализован функционал многоагентной связки для Bitrix24 и amoCRM. Теперь не нужно подключать второстепенных агентов к amoCRM и Bitrix24 отдельно — их можно настроить прямо в Nextbot.

Подключение\
1\. Подключите интеграцию Bitrix24 или amoCRM\
2\. Перейдите во вкладку Функции, в форме "Сценарий поведения после выполнения функции" -> Переключить агента -> Выберите второстепенного агента\
3\. Выберите параметры для отправки результатов в Bitrix24 или amoCRM\
4\. Если перейти на второстепенного агента, то вы увидите соответствующий статус, дополнительно настраивать теперь не нужно.

<figure><img src="/files/1dPz9My1zImIKYa28x0u" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.nextbot.ru/advices/advanced-techniques/multiagentnost.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
