Перейти к основному контенту

Создание простого агента

Введение

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

В этом разделе мы создадим агента CompanyInfo, который будет отвечать исключительно на вопросы о компании - контакты, адреса офисов, время работы. Особенность этого агента в том, что он не обращается к RAG базе знаний, а хранит всю информацию прямо в промпте. Это упрощает работу модели и ускоряет получение ответов.


Этап 1: Подготовка информации о компании

Создание промпта с данными компании

Первым делом подготовим базовый промпт с информацией о компании. Назовем его about_prompt:

_**ЦЕНТРАЛЬНЫЙ ОФИС**_

**Контакты**  
Адрес: 123456, г. Примерск, ул. Центральная, дом 10А  
Горячая линия: 8 800 000 00 00 (бесплатно по России)  
Часы работы: пн-вс с 9:00 до 21:00

**Отдел качества:** +7 (900) 123-45-67  
Часы работы: пн-вс с 9:00 до 21:00

**Интернет-банк:** 8 804 000 11 11

**Главный офис обслуживания, пос. Банковский**  
Адрес: 140000, Примерская область, г. Финансск, д. Кредитное,  
ул. Сберегательная, д.1, стр. 1  
Телефон: +7 (900) 765-43-21  
Часы работы: пн-пт c 9:00 до 18:00

**Склад документов «ПримерБанк»**  
Адрес: Россия, 140001, Примерская область, рп. Храновск,  
ул. Архивная, д. 5  
Телефон: +7 (900) 111-22-33  
Часы работы: пн-чт 9.00-18.00, пт 9.00-16.30  
Подробнее: https://primerbank.ru/contacts

---

_**ОФИСЫ В РЕГИОНАХ**_

**Воронеж**  
394000, г. Примероград, ул. Финансовая, 8, оф. 101  
Тел.: +7 (902) 234-56-78

**Екатеринбург**  
620000, г. Примерск-Урал, ул. Сибирская, 22, оф. 5  
Тел.: +7 (903) 345-67-89

**Краснодар**  
350000, г. Примеродар, ул. Южная, 50  
Тел.: +7 (904) 456-78-90

Добавление промпта в систему

Откройте таблицу gpt_prompts и создайте новую запись:

  • agent_name: CompanyInfo
  • name: about_prompt
  • prompt: вставьте текст выше

Этап 2: Интеграция агента в систему

Для подключения нового агента нужно выполнить три шага в строгом порядке:

  1. Конфигурация - описать параметры агента
  2. Скрипт - создать логику обработки
  3. Маршрутизация - добавить в систему выбора агентов

Шаг 1: Обновление конфигурации

Откройте плагин AgentsParams и найдите секцию с основным агентом. Нам нужно:

А) Добавить новый инструмент в маршрутизатор

В секции detectRoute найдите routerTools и дополните массив:

detectRoute: {
    // ... остальные параметры остаются без изменений
    routerTools: [{
        tools: "RAG_Tools", // Существующий инструмент
        route: "RAG:DetectIntent_and_FindChunks"
    }, {
        tools: "INFO_Tools", // Новый инструмент для информации о компании
        route: "CompanyInfo" // Имя скрипта, который создадим далее
    }],
    // ... остальные параметры остаются без изменений
}

Б) Создать конфигурацию для нового агента

Добавьте новое условие после основного блока MainFlow:

else if (activeAgent === "CompanyInfo") { // Агент для работы с информацией о компании
    agentCFG = {
        common: {
            title: "About Agent", // Понятное имя агента
            agentName: "CompanyInfo", // Техническое имя
            promptTable: "gpt_prompts", // Таблица с промптами
            userQueryAttibName: "user_query", // Атрибут с вопросом пользователя
            historyMaxLength: 4, // Длина истории диалога
            exitScript: "MainFlow:FollowUp" // Скрипт завершения
        },
        userReply: { // Настройки генерации ответов
            provider: "OpenAI",
            model: "gpt-4o",
            modelParams: {
                "temperature": 1
            },
            errorScript: "RAG:ErrorFallback", // Обработка ошибок
            useHistory: 1, // Использовать историю диалога
            addUserQuery: 1, // Добавлять вопрос пользователя
            sendBotAnwser: 1, // Отправлять ответ пользователю
            systemPrompts: {
                start: ["$about_prompt"], // Промпт с информацией о компании
                final: [] // Финальные промпты (пустой массив)
                // Структура: about_prompt + история диалога
            },
        }
    }
}

Шаг 2: Создание скрипта агента

Создайте новый скрипт с именем CompanyInfo (как указано в конфигурации выше):

// Устанавливаем активного агента
lead.setAttr('activeAgent', 'CompanyInfo')

// Загружаем конфигурацию агента
snippet("Business.AgentsParams.MainConfig")

// Подключаем библиотеку для работы с ИИ
const LLMClient = require("Common.MetabotAI.LLMClient")

// Создаем сессию для генерации ответа
const llm = new LLMClient("UserReply", agentCFG.common.agentName)

// Передаем вопрос пользователя в обработку
llm.addUserQuery(lead.getAttr(agentCFG.common.userQueryAttibName))

// Запускаем генерацию и отправку ответа пользователю
llm.nextFlow("RAG:UserReply")

Как работает этот скрипт:

  1. Устанавливает режим работы с агентом CompanyInfo
  2. Загружает его настройки из конфигурации
  3. Берет вопрос пользователя и передает в ИИ
  4. Генерирует ответ на основе промпта с информацией о компании
  5. Запускает скрипт UserReply для отправки ответа пользователю

Шаг 3: Обновление системы маршрутизации

Откройте таблицу gpt_prompts, найдите промпт route_prompt для агента MainFlow и обновите секцию с инструментами:

<tools>
**RAG_Tools** - Используется, когда нужно ответить на вопросы об услугах 
и продукции компании, об условиях эксплуатации продукции, об используемых 
инструментах для монтажа продукции и т.д.

**INFO_Tools** - Используется когда пользователь хочет узнать о филиалах 
компании, контактных данных или времени их работы
</tools>

Этап 3: Тестирование и результат

Запуск системы

После внесения всех изменений запустите бота так же, как в основном примере. Система теперь автоматически:

  1. Анализирует вопрос пользователя
  2. Определяет подходящий инструмент (RAG_Tools или INFO_Tools)
  3. Направляет запрос соответствующему агенту
  4. Получает точный ответ из подготовленной информации

Примеры работы

Вопросы для CompanyInfo агента:

  • "Где находится ваш филиал в Екатеринбурге?"
  • "Время работы горячей линии?"
  • "Телефон кредитного отдела?"
  • "Часы работы московского филиала?"

Вопросы для RAG агента:

  • "Какие у вас условия по ипотеке?"
  • "Как оформить депозит?"
  • "Тарифы на обслуживание карт"

Преимущества такого подхода

  1. Скорость ответа - информация о компании доступна мгновенно
  2. Точность - данные всегда актуальные и не зависят от поиска в базе знаний
  3. Простота поддержки - легко обновить информацию в одном промпте
  4. Масштабируемость - можно добавить любое количество таких агентов

Ваша мультиагентная система теперь умеет не только искать информацию в документах, но и давать быстрые ответы по заранее подготовленным данным.