21 KiB
🏗️ Архитектура множественных ИИ-агентов в DLE
Концепция: Создание отдельных специализированных агентов для разных задач, использующих одну локальную модель Ollama, но с разными системными промптами, правилами и интерфейсами.
📋 Содержание
- Концепция архитектуры
- Типы агентов
- Архитектура системы
- Настройка агентов
- Интерфейсы агентов
- База знаний для агентов
- Процесс работы агентов
🎯 Концепция архитектуры
Основные принципы
-
Одна модель, множество агентов
- Все агенты используют одну локальную модель Ollama (qwen2.5:7b)
- Различие между агентами — в системных промптах и правилах
- Каждый агент имеет свою специализацию и роль
-
Изоляция агентов
- Каждый агент имеет свои настройки (системный промпт, правила, RAG таблицы)
- Агенты не влияют друг на друга
- Можно создавать, редактировать и удалять агентов независимо
-
Специализация по задачам
- Агент поддержки — отвечает на вопросы пользователей
- Агент-редактор — создает контент по запросу
- Возможность создания дополнительных агентов (аналитик, переводчик и т.д.)
-
Отдельные интерфейсы
- Каждый агент имеет свой интерфейс доступа
- Интерфейсы адаптированы под задачи агента
- Разные права доступа для разных агентов
🤖 Типы агентов
1. Агент поддержки (Support Agent)
Роль: Отвечать на сообщения пользователей
Задачи:
- Обработка входящих сообщений от пользователей
- Поиск ответов в базе знаний (FAQ, документация)
- Генерация ответов на основе найденной информации
- Эскалация сложных вопросов к операторам
Характеристики:
- Использует RAG для поиска в FAQ и документах
- Системный промпт: "Вы — профессиональный ассистент службы поддержки"
- Правила: строгий режим (только из базы знаний, минимум генерации)
- Интерфейс: встроен в чат (web, telegram, email)
База знаний:
- FAQ таблицы
- Документация продукта
- База знаний для клиентов
2. Агент-редактор (Content Editor Agent)
Роль: Создавать контент по запросу пользователя
Задачи:
- Создание постов для социальных сетей
- Написание статей для блога
- Генерация email-рассылок
- Создание рекламных текстов
Характеристики:
- Использует RAG для поиска инструкций платформ и стиля компании
- Системный промпт: "Вы — профессиональный контент-маркетолог и редактор"
- Правила: креативный режим (больше генерации, использование примеров)
- Интерфейс: отдельная страница "Редактор контента"
База знаний:
- Инструкции платформ (ВК, Telegram, Instagram и т.д.)
- Стиль компании (tone of voice, запрещенные слова)
- Примеры контента (референсы)
- Ключевые слова и хэштеги
- CTA блоки
3. Потенциальные дополнительные агенты
Агент-аналитик:
- Анализ данных и создание отчетов
- Выявление трендов
- Прогнозирование
Агент-переводчик:
- Перевод контента на разные языки
- Локализация материалов
- Адаптация под культурные особенности
Агент-закупщик:
- Поиск поставщиков
- Анализ условий
- Рекомендации по выбору
🏛️ Архитектура системы
Компоненты системы
┌─────────────────────────────────────────────────────────┐
│ Единая модель Ollama │
│ (qwen2.5:7b) │
└────────────────┬────────────────────────────────────────┘
│
├─────────────────┬───────────────────────┐
│ │ │
↓ ↓ ↓
┌────────────────────┐ ┌──────────────────┐ ┌──────────────┐
│ Агент поддержки │ │ Агент-редактор │ │ Другие агенты│
│ │ │ │ │ │
│ • Системный промпт │ │ • Системный │ │ • Свои │
│ • Правила (строгие)│ │ промпт │ │ настройки │
│ • RAG: FAQ │ │ • Правила │ │ │
│ • Интерфейс: чат │ │ (креативные) │ │ │
│ │ │ • RAG: инструкции │ │ │
│ │ │ • Интерфейс: │ │ │
│ │ │ редактор │ │ │
└────────────────────┘ └──────────────────┘ └──────────────┘
Хранение настроек агентов
Таблица ai_agents:
id— уникальный идентификатор агентаname— название агента (например, "Агент поддержки", "Агент-редактор")role— роль агента (support, content_editor, analyst и т.д.)description— описание назначения агентаsystem_prompt_encrypted— системный промпт (зашифрован)rules_id— ссылка на правила агента (из таблицыai_assistant_rules)selected_rag_tables— массив ID таблиц для RAG поискаenabled_channels— на каких каналах активен (web, telegram, email)interface_route— маршрут для интерфейса агентаpermissions_required— требуемые права доступаis_active— активен ли агентcreated_at,updated_at— даты создания и обновления
Связь с правилами:
- Каждый агент может использовать набор правил из
ai_assistant_rules - Правила определяют поведение: temperature, maxTokens, searchRagFirst и т.д.
- Можно создавать правила специально для каждого агента
Связь с RAG таблицами:
- Каждый агент может использовать свои RAG таблицы
- Агент поддержки: FAQ, документация
- Агент-редактор: инструкции платформ, стиль компании, примеры
⚙️ Настройка агентов
Создание нового агента
Шаг 1: Базовая информация
- Название агента
- Роль (support, content_editor и т.д.)
- Описание назначения
Шаг 2: Системный промпт
- Определяет роль и поведение агента
- Указывает, как агент должен работать
- Содержит контекст о компании и стиле
Шаг 3: Правила (Rules)
- Создание или выбор существующих правил
- Настройка параметров генерации (temperature, maxTokens)
- Настройка поведения RAG (searchRagFirst, generateIfNoRag)
Шаг 4: База знаний (RAG таблицы)
- Выбор таблиц для поиска информации
- Агент поддержки: FAQ, документация
- Агент-редактор: инструкции, стиль, примеры
Шаг 5: Интерфейс
- Определение маршрута для доступа к агенту
- Настройка прав доступа
- Выбор каналов (web, telegram, email)
Шаг 6: Активация
- Включение/выключение агента
- Тестирование работы агента
Примеры настроек
Агент поддержки:
- Системный промпт: "Вы — профессиональный ассистент службы поддержки..."
- Правила: строгий режим (temperature: 0.3, searchRagFirst: true, generateIfNoRag: false)
- RAG таблицы: FAQ, Документация продукта
- Интерфейс: встроен в чат
- Каналы: web, telegram, email
Агент-редактор:
- Системный промпт: "Вы — профессиональный контент-маркетолог и редактор..."
- Правила: креативный режим (temperature: 0.7, searchRagFirst: true, generateIfNoRag: true)
- RAG таблицы: Инструкции платформ, Стиль компании, Примеры контента
- Интерфейс: отдельная страница /content-editor
- Каналы: только web (для редакторов)
🖥️ Интерфейсы агентов
Агент поддержки — интерфейс чата
Расположение: Встроен в основной чат (HomeView)
Особенности:
- Автоматическая активация при получении сообщения от пользователя
- Показ статуса генерации ответа
- Возможность отключения AI для конкретного сообщения
- История диалога с контекстом
Права доступа:
- Доступен всем пользователям
- Автоматически отвечает на сообщения
Агент-редактор — интерфейс редактора
Расположение: Отдельная страница /content-editor
Особенности:
- Поле для ввода запроса на создание контента
- Выбор типа контента (пост ВК, статья блога, email и т.д.)
- Выбор платформы (ВКонтакте, Telegram, Instagram и т.д.)
- Показ процесса генерации
- Редактирование сгенерированного контента
- Сохранение готового контента
- История созданного контента
Права доступа:
- Только для пользователей с ролью Editor
- Требуется авторизация
Функционал интерфейса:
-
Форма запроса:
- Текстовое поле для описания задачи
- Выбор типа контента (выпадающий список)
- Выбор платформы (чекбоксы или выпадающий список)
- Дополнительные параметры (тон, длина, ключевые слова)
-
Процесс генерации:
- Индикатор загрузки
- Показ найденных инструкций
- Показ процесса генерации
-
Результат:
- Готовый контент в редактируемом поле
- Кнопка "Сохранить"
- Кнопка "Перегенерировать"
- Кнопка "Экспортировать" (копировать, скачать)
-
История:
- Список созданного контента
- Фильтры по типу, платформе, дате
- Возможность редактирования и удаления
📚 База знаний для агентов
Структура базы знаний
Для агента поддержки:
- Таблица "FAQ" — часто задаваемые вопросы
- Таблица "Документация" — описание функций продукта
- Таблица "База знаний для клиентов" — расширенная информация
Для агента-редактора:
- Таблица "Инструкции платформ" — правила размещения контента
- Таблица "Стиль компании" — tone of voice, запрещенные слова
- Таблица "Примеры контента" — референсы для разных типов контента
- Таблица "Ключевые слова" — семантическое ядро, хэштеги
- Таблица "CTA блоки" — призывы к действию
Как агенты используют базу знаний
-
RAG поиск:
- Пользователь задает вопрос/запрос
- Агент выполняет векторный поиск в своих RAG таблицах
- Находит релевантную информацию
-
Контекст для генерации:
- Найденная информация передается в LLM как контекст
- LLM генерирует ответ/контент на основе контекста
- Системный промпт направляет, как использовать контекст
-
Фильтрация по роли:
- Агент поддержки ищет только в FAQ и документации
- Агент-редактор ищет только в инструкциях и примерах
- Изоляция данных между агентами
🔄 Процесс работы агентов
Агент поддержки — процесс ответа
-
Получение сообщения:
- Пользователь отправляет сообщение в чат
- Система определяет, что нужно использовать агента поддержки
-
RAG поиск:
- Агент ищет ответ в своих RAG таблицах (FAQ, документация)
- Использует векторный поиск для семантического поиска
-
Генерация ответа:
- Если найден ответ в базе знаний → использует его
- Если не найден → в строгом режиме предлагает связаться с оператором
- Генерирует ответ с учетом системного промпта и правил
-
Отправка ответа:
- Ответ отправляется пользователю в чат
- Сохраняется в истории диалога
Агент-редактор — процесс создания контента
-
Получение запроса:
- Редактор открывает интерфейс
/content-editor - Вводит запрос: "Создай пост для ВКонтакте о новой функции"
- Выбирает тип контента и платформу
- Редактор открывает интерфейс
-
RAG поиск инструкций:
- Агент ищет инструкции для выбранной платформы
- Ищет стиль компании
- Ищет примеры похожего контента
- Ищет релевантные ключевые слова
-
Генерация контента:
- Агент генерирует контент на основе:
- Системного промпта (роль редактора)
- Найденных инструкций платформы
- Стиля компании
- Примеров контента
- Ключевых слов
- Агент генерирует контент на основе:
-
Результат:
- Готовый контент показывается в интерфейсе
- Редактор может редактировать контент
- Сохранить или экспортировать
🎯 Преимущества архитектуры
1. Специализация
- Каждый агент решает свою задачу оптимально
- Не нужно жертвовать качеством для универсальности
2. Гибкость
- Легко создавать новых агентов для новых задач
- Можно настраивать каждого агента независимо
3. Изоляция
- Агенты не мешают друг другу
- Можно тестировать и обновлять агентов независимо
4. Масштабируемость
- Легко добавлять новых агентов
- Каждый агент использует одну модель, нет перегрузки
5. Контроль
- Четкое разделение ответственности
- Легко отслеживать, какой агент что делает
📊 Сравнение с единым агентом
| Характеристика | Единый агент | Множественные агенты |
|---|---|---|
| Специализация | Универсальный, но менее точный | Специализированный, более точный |
| Настройка | Один набор настроек для всех задач | Отдельные настройки для каждой задачи |
| База знаний | Все таблицы для всех задач | Изолированные таблицы для каждой задачи |
| Интерфейс | Один интерфейс | Отдельные интерфейсы для каждой задачи |
| Гибкость | Сложно адаптировать под разные задачи | Легко создавать новых агентов |
| Производительность | Одна модель для всех | Одна модель, но разные промпты |
🚀 Следующие шаги
- Создание таблицы
ai_agentsв базе данных - Создание сервиса для управления агентами
- Модификация AI Assistant для работы с несколькими агентами
- Создание интерфейса для агента-редактора
- Настройка агента поддержки (уже существует, нужно адаптировать)
- Создание базы знаний для агента-редактора
- Тестирование работы обоих агентов
© 2024-2025 Тарабанов Александр Викторович. Все права защищены.
Последнее обновление: Январь 2026