Skip to main content

Таскер UC

Сценарии использования (Use Cases) ИИ-агента «Секретарь»

1. Обзор актеров системы

Основные актеры:

  • Администратор проекта - пользователь с правами администратора в основном чате проекта
  • Участник проекта - обычный участник команды
  • Новый сотрудник - пользователь, только что присоединившийся к проекту
  • ИИ-агент Секретарь - бот @Secretar
  • Система n8n - платформа автоматизации
  • Планировщик - cron-подсистема для регулярных задач

2. Основные сценарии использования

UC-01: Инициализация бота в новом проекте

Актеры: Администратор проекта, ИИ-агент Секретарь

Предусловия:

  • Создан чат проекта в Element
  • Администратор имеет права на добавление участников

Основной поток:

  1. Администратор добавляет @Secretar в чат проекта
  2. Бот определяет название проекта из названия чата
  3. Бот запрашивает подтверждение инициализации
  4. Администратор подтверждает
  5. Бот получает права администратора в чате
  6. Бот анализирует список участников и их роли
  7. Бот создает запись проекта в БД
  8. Бот отправляет приветственное сообщение с инструкциями

Альтернативный поток:

  • 4a. Администратор отменяет инициализацию → процесс прерывается

Постусловия:

  • Бот активен в проекте
  • Создана структура данных проекта в БД
sequenceDiagram
    participant Admin as Администратор
    participant Bot as @Secretar
    participant Matrix as Matrix Server
    participant DB as База данных
    
    Admin->>Matrix: Добавляет @Secretar в чат
    Matrix->>Bot: Уведомление о добавлении
    Bot->>Matrix: Запрос информации о чате
    Matrix-->>Bot: Название, участники, роли
    Bot->>Admin: Запрос подтверждения инициализации
    Admin->>Bot: Подтверждение
    Bot->>Matrix: Запрос прав администратора
    Admin->>Matrix: Предоставление прав
    Bot->>DB: Создание записи проекта
    Bot->>Admin: Приветственное сообщение

UC-02: Создание задачи

Актеры: Участник проекта, ИИ-агент Секретарь, Исполнитель

Предусловия:

  • Бот активен в проекте
  • Участник имеет доступ к чату проекта

Основной поток:

  1. Участник отправляет сообщение с упоминанием @Secretar
  2. Участник описывает задачу, указывает @исполнителя и срок
  3. Бот анализирует сообщение через AI
  4. Бот определяет тип как "задача"
  5. Бот извлекает: описание, исполнителя, дедлайн
  6. Бот присваивает уникальный номер задачи
  7. Бот сохраняет задачу в БД
  8. Бот отправляет подтверждение с номером задачи
  9. Бот отправляет личное уведомление исполнителю

Альтернативные потоки:

  • 5a. Отсутствует исполнитель → Бот запрашивает уточнение
  • 5b. Отсутствует срок → Бот запрашивает дедлайн
  • 5c. Неясное описание → Бот запрашивает детализацию

Постусловия:

  • Задача создана и сохранена в БД
  • Исполнитель уведомлен о новой задаче
sequenceDiagram
    participant User as Участник
    participant Bot as @Secretar
    participant AI as AI Agent
    participant DB as База данных
    participant Assignee as Исполнитель
    
    User->>Bot: @Secretar создай задачу: "Подготовить отчет" @ivan до 25.01
    Bot->>AI: Анализ сообщения
    AI-->>Bot: Тип: задача, Исполнитель: @ivan, Срок: 25.01
    
    alt Данные полные
        Bot->>DB: Сохранить задачу
        DB-->>Bot: ID задачи: T-001
        Bot->>User: ✅ Задача T-001 создана
        Bot->>Assignee: 📋 Новая задача T-001 для вас
    else Данные неполные
        Bot->>User: ❓ Укажите исполнителя/срок
        User->>Bot: @ivan, до 25.01
        Bot->>DB: Сохранить задачу
    end

UC-03: Обновление статуса задачи через emoji

Актеры: Исполнитель, ИИ-агент Секретарь, Администратор проекта

Предусловия:

  • Существует активная задача
  • Исполнитель получил утреннее напоминание

Основной поток:

  1. В 10:00 бот отправляет список задач исполнителю
  2. Исполнитель ставит emoji-реакцию на сообщение
  3. Бот обрабатывает реакцию
  4. Бот обновляет статус задачи в БД
  5. Бот выполняет действие согласно статусу

Варианты статусов и действий:

  • ✅ Выполнена → Обновить статус, включить в отчет
  • 🔄 В процессе → Обновить статус
  • ❓ Есть вопрос → Переслать вопрос ответственному
  • ❗ Риск срыва → Создать чат с админом и исполнителем
  • ⚠️ Срыв дедлайна → Запросить новый срок и причину
  • ➖ Невозможно выполнить → Запросить причину, уведомить админа
stateDiagram-v2
    [*] --> Напоминание: 10:00 ежедневно
    Напоминание --> Ожидание_реакции
    
    Ожидание_реакции --> Выполнена: ✅
    Ожидание_реакции --> В_процессе: 🔄
    Ожидание_реакции --> Есть_вопрос: ❓
    Ожидание_реакции --> Риск_срыва: ❗
    Ожидание_реакции --> Срыв_дедлайна: ⚠️
    Ожидание_реакции --> Невозможно: ➖
    
    Выполнена --> Отчет: Включить в отчет
    В_процессе --> [*]: Статус обновлен
    Есть_вопрос --> Переадресация: Отправить админу
    Риск_срыва --> Экстренный_чат: Создать групповой чат
    Срыв_дедлайна --> Запрос_данных: Новый срок?
    Невозможно --> Эскалация: Уведомить админа
    
    Отчет --> [*]
    Переадресация --> [*]
    Экстренный_чат --> [*]
    Запрос_данных --> [*]
    Эскалация --> [*]

UC-04: Сохранение идеи

Актеры: Участник проекта, ИИ-агент Секретарь

Предусловия:

  • Бот активен в проекте
  • Участник хочет зафиксировать идею

Основной поток:

  1. Участник пишет сообщение с пометкой "идея"
  2. Бот классифицирует как идею
  3. Бот проверяет существование комнаты "ИДЕИ [Проект]"
  4. Если комнаты нет - бот создает её
  5. Бот назначает администраторов
  6. Бот публикует идею в комнате
  7. Бот подтверждает сохранение идеи
flowchart TD
    Start([Сообщение с идеей]) --> Parse[AI парсинг]
    Parse --> Check{Комната ИДЕИ<br/>существует?}
    
    Check -->|Нет| Create[Создать комнату<br/>ИДЕИ Проект]
    Check -->|Да| Post[Опубликовать идею]
    
    Create --> SetAdmins[Назначить админов]
    SetAdmins --> Post
    
    Post --> SaveDB[Сохранить в БД]
    SaveDB --> Notify[Уведомить автора]
    Notify --> End([Идея сохранена])

UC-05: Онбординг нового сотрудника

Актеры: Администратор, Новый сотрудник, ИИ-агент Секретарь

Предусловия:

  • Существует комната ONBOARDING с материалами
  • Новый сотрудник добавлен в основной чат

Основной поток:

  1. Администратор добавляет нового участника в чат
  2. Бот обнаруживает нового участника
  3. Бот отправляет приветственное сообщение в личку
  4. Бот отправляет ссылку на комнату ONBOARDING
  5. Бот формирует краткое резюме текущих задач
  6. Бот добавляет участника во все комнаты проекта
  7. Бот добавляет участника в пространство проекта
sequenceDiagram
    participant Admin as Администратор
    participant Matrix as Matrix Server
    participant Bot as @Secretar
    participant New as Новый сотрудник
    participant Rooms as Комнаты проекта
    
    Admin->>Matrix: Добавляет нового участника
    Matrix->>Bot: Event: member joined
    Bot->>New: Приветственное сообщение
    Bot->>New: Ссылка на ONBOARDING
    Bot->>Bot: Генерация резюме задач
    Bot->>New: Краткое резюме проекта
    
    loop Для каждой комнаты
        Bot->>Rooms: Добавить участника
    end
    
    Bot->>Matrix: Добавить в пространство
    Bot->>Admin: ✅ Онбординг завершен

UC-06: Автоматическая генерация отчетов

Актеры: Планировщик, ИИ-агент Секретарь, Администратор

Предусловия:

  • Настроен график отчетов
  • Существует комната ОТЧЕТЫ

Основной поток:

  1. Планировщик запускает задачу по расписанию
  2. Бот собирает данные о задачах за период
  3. Бот анализирует статусы и метрики
  4. Бот формирует отчет
  5. Бот публикует в комнату ОТЧЕТЫ
  6. Бот отправляет уведомление администраторам

Типы отчетов:

  • Ежедневный - статусы задач
  • Еженедельный - выполненные задачи, проблемы
  • Ежемесячный - аналитика, KPI, тренды
graph LR
    subgraph "Ежедневный отчет"
        D1[10:00] --> D2[Сбор статусов]
        D2 --> D3[Краткий отчет]
    end
    
    subgraph "Еженедельный отчет"
        W1[Понедельник] --> W2[Анализ недели]
        W2 --> W3[Детальный отчет]
        W3 --> W4[Проблемные задачи]
    end
    
    subgraph "Ежемесячный отчет"
        M1[1 число] --> M2[Полная аналитика]
        M2 --> M3[KPI метрики]
        M3 --> M4[Рекомендации]
    end
    
    D3 --> PUB[Публикация в ОТЧЕТЫ]
    W4 --> PUB
    M4 --> PUB
    PUB --> NOT[Уведомление админов]

UC-07: Автоматическое создание пространства

Актеры: ИИ-агент Секретарь, Система n8n

Предусловия:

  • Существует ≥3 комнат с одинаковым названием проекта
  • Бот присутствует во всех комнатах

Основной поток:

  1. Бот периодически анализирует список комнат
  2. Бот обнаруживает 3+ комнаты одного проекта
  3. Бот создает пространство проекта
  4. Бот переносит все комнаты в пространство
  5. Бот назначает администраторов пространства
  6. Бот уведомляет участников о создании пространства
flowchart TD
    Start([Анализ комнат]) --> Count{Комнат проекта >= 3?}
    Count -->|Нет| End1([Завершить])
    Count -->|Да| CheckSpace{Пространство<br/>существует?}
    
    CheckSpace -->|Да| End2([Завершить])
    CheckSpace -->|Нет| CreateSpace[Создать пространство]
    
    CreateSpace --> GetRooms[Получить список комнат]
    GetRooms --> MoveRooms[Перенести комнаты]
    
    MoveRooms --> SetAdmins[Назначить админов]
    SetAdmins --> Notify[Уведомить участников]
    Notify --> Success([Пространство создано])

UC-08: Обработка нераспознанного сообщения

Актеры: Участник, ИИ-агент Секретарь

Предусловия:

  • Бот получил сообщение с упоминанием
  • AI не смог классифицировать тип

Основной поток:

  1. Участник отправляет неясное сообщение
  2. Бот пытается классифицировать через AI
  3. AI возвращает низкую уверенность
  4. Бот формирует уточняющий вопрос
  5. Бот предлагает варианты действий
  6. Участник выбирает вариант
  7. Бот обрабатывает согласно выбору
sequenceDiagram
    participant User as Участник
    participant Bot as @Secretar
    participant AI as AI Agent
    
    User->>Bot: @Secretar нужно обсудить важное
    Bot->>AI: Классификация
    AI-->>Bot: Уверенность < 70%
    
    Bot->>User: Что именно вы хотите сделать?<br/>1. Создать задачу<br/>2. Сохранить идею<br/>3. Добавить заметку<br/>4. Добавить в онбординг
    
    User->>Bot: 1 - создать задачу
    Bot->>User: Укажите:<br/>- Описание задачи<br/>- @исполнителя<br/>- Срок выполнения
    
    User->>Bot: Обсудить план @maria до пятницы
    Bot->>Bot: Создание задачи
    Bot->>User: ✅ Задача T-002 создана

UC-09: Эскалация проблемной задачи

Актеры: Исполнитель, ИИ-агент Секретарь, Администратор

Предусловия:

  • Задача имеет статус "риск срыва" или "срыв дедлайна"

Основной поток:

  1. Исполнитель ставит ❗ или ⚠️ на напоминание
  2. Бот определяет критичность ситуации
  3. Бот создает экстренный чат
  4. Бот добавляет исполнителя и администратора
  5. Бот публикует контекст задачи
  6. Бот запрашивает план действий
  7. Участники обсуждают решение
  8. Бот фиксирует новые договоренности
stateDiagram-v2
    [*] --> Проблема: Исполнитель ставит ❗/⚠️
    
    Проблема --> Анализ: Бот анализирует
    
    Анализ --> Риск_срыва: ❗
    Анализ --> Срыв_дедлайна: ⚠️
    
    Риск_срыва --> Создание_чата: Экстренный чат
    Срыв_дедлайна --> Создание_чата
    
    Создание_чата --> Добавление_участников
    Добавление_участников --> Публикация_контекста
    Публикация_контекста --> Обсуждение
    
    Обсуждение --> Решение_найдено
    Обсуждение --> Эскалация_выше: Нет решения
    
    Решение_найдено --> Обновление_задачи
    Эскалация_выше --> Уведомление_руководства
    
    Обновление_задачи --> [*]
    Уведомление_руководства --> [*]

UC-10: Поиск по истории проекта

Актеры: Участник, ИИ-агент Секретарь

Предусловия:

  • Накоплена история сообщений
  • Пользователь хочет найти информацию

Основной поток:

  1. Участник запрашивает поиск
  2. Бот парсит поисковый запрос
  3. Бот выполняет поиск в БД
  4. Бот фильтрует результаты по правам доступа
  5. Бот форматирует результаты
  6. Бот отправляет найденную информацию

Примеры запросов:

  • "Покажи все задачи за последнюю неделю"
  • "Найди идею про оптимизацию"
  • "Какие задачи у @ivan"
  • "Список просроченных задач"
flowchart LR
    Query[Поисковый запрос] --> Parse[Парсинг запроса]
    Parse --> Extract[Извлечение параметров]
    
    Extract --> Type{Тип поиска}
    Type -->|Задачи| TaskSearch[Поиск задач]
    Type -->|Идеи| IdeaSearch[Поиск идей]
    Type -->|Заметки| NoteSearch[Поиск заметок]
    Type -->|Все| FullSearch[Полный поиск]
    
    TaskSearch --> Filter[Фильтрация]
    IdeaSearch --> Filter
    NoteSearch --> Filter
    FullSearch --> Filter
    
    Filter --> Format[Форматирование]
    Format --> Send[Отправка результатов]

3. Матрица прав доступа для Use Cases

Use Case Админ Участник Новый Бот Система
UC-01 Инициализация
UC-02 Создание задачи
UC-03 Обновление статуса ✅*
UC-04 Сохранение идеи
UC-05 Онбординг
UC-06 Генерация отчетов
UC-07 Создание пространства
UC-08 Уточнение
UC-09 Эскалация ✅*
UC-10 Поиск

*Только исполнитель задачи

4. Диаграмма взаимодействия компонентов

graph TB
    subgraph "Пользователи"
        U1[Администратор]
        U2[Участник]
        U3[Новый сотрудник]
    end
    
    subgraph "Element/Matrix"
        CH[Чаты]
        SP[Пространства]
        RM[Комнаты]
    end
    
    subgraph "ИИ-агент Секретарь"
        WH[Webhook]
        AI[AI Classifier]
        TP[Task Processor]
        RP[Report Generator]
        SM[Space Manager]
    end
    
    subgraph "Хранилище"
        DB[(База данных)]
        LOG[Логи]
    end
    
    U1 --> CH
    U2 --> CH
    U3 --> CH
    
    CH <--> WH
    WH --> AI
    AI --> TP
    AI --> RP
    AI --> SM
    
    TP --> DB
    RP --> DB
    SM --> DB
    
    TP --> RM
    RP --> RM
    SM --> SP
    
    TP --> LOG
    RP --> LOG
    SM --> LOG

5. Временная диаграмма ежедневного цикла

gantt
    title Ежедневный цикл работы ИИ-агента
    dateFormat HH:mm
    axisFormat %H:%M
    
    section Утренние задачи
    Проверка дедлайнов        :00:00, 30m
    Подготовка напоминаний    :09:30, 30m
    Отправка напоминаний      :10:00, 15m
    
    section Обработка реакций
    Сбор реакций на напоминания :10:15, 2h
    Обновление статусов         :10:15, 2h
    Эскалация проблем           :10:15, 2h
    
    section Дневные задачи
    Обработка сообщений    :08:00, 10h
    Создание задач         :08:00, 10h
    Сохранение идей       :08:00, 10h
    
    section Вечерние задачи
    Проверка просрочек    :17:00, 30m
    Генерация отчета      :17:30, 30m
    Отправка отчета       :18:00, 15m
    
    section Фоновые процессы
    Мониторинг новых участников :00:00, 24h
    Анализ для пространств      :00:00, 24h
    Синхронизация БД           :00:00, 24h

6. Приоритизация Use Cases для MVP

Фаза 1: Критические функции (Sprint 1-2)

  1. UC-01 - Инициализация бота ⭐⭐⭐⭐⭐
  2. UC-02 - Создание задачи ⭐⭐⭐⭐⭐
  3. UC-03 - Обновление статуса ⭐⭐⭐⭐⭐

Фаза 2: Основные функции (Sprint 3-4)

  1. UC-04 - Сохранение идеи ⭐⭐⭐⭐
  2. UC-06 - Генерация отчетов ⭐⭐⭐⭐
  3. UC-08 - Обработка неясных сообщений ⭐⭐⭐⭐

Фаза 3: Расширенные функции (Sprint 5-6)

  1. UC-05 - Онбординг ⭐⭐⭐
  2. UC-09 - Эскалация проблем ⭐⭐⭐
  3. UC-10 - Поиск по истории ⭐⭐⭐

Фаза 4: Автоматизация (Sprint 7-8)

  1. UC-07 - Создание пространств ⭐⭐

Заключение

Представленные сценарии использования охватывают полный жизненный цикл работы с ИИ-агентом «Секретарь» - от инициализации в проекте до сложных сценариев управления задачами и автоматизации рутинных процессов. Каждый сценарий детально проработан с учетом основных и альтернативных потоков, что обеспечивает надежность и предсказуемость работы системы.

Приоритизация use cases позволяет поэтапно внедрять функциональность, начиная с критически важных возможностей и постепенно расширяя функционал системы.