Таскер UC
Сценарии использования (Use Cases) ИИ-агента «Секретарь»
1. Обзор актеров системы
Основные актеры:
- Администратор проекта - пользователь с правами администратора в основном чате проекта
- Участник проекта - обычный участник команды
- Новый сотрудник - пользователь, только что присоединившийся к проекту
- ИИ-агент Секретарь - бот @Secretar
- Система n8n - платформа автоматизации
- Планировщик - cron-подсистема для регулярных задач
2. Основные сценарии использования
UC-01: Инициализация бота в новом проекте
Актеры: Администратор проекта, ИИ-агент Секретарь
Предусловия:
- Создан чат проекта в Element
- Администратор имеет права на добавление участников
Основной поток:
- Администратор добавляет @Secretar в чат проекта
- Бот определяет название проекта из названия чата
- Бот запрашивает подтверждение инициализации
- Администратор подтверждает
- Бот получает права администратора в чате
- Бот анализирует список участников и их роли
- Бот создает запись проекта в БД
- Бот отправляет приветственное сообщение с инструкциями
Альтернативный поток:
- 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: Создание задачи
Актеры: Участник проекта, ИИ-агент Секретарь, Исполнитель
Предусловия:
- Бот активен в проекте
- Участник имеет доступ к чату проекта
Основной поток:
- Участник отправляет сообщение с упоминанием @Secretar
- Участник описывает задачу, указывает @исполнителя и срок
- Бот анализирует сообщение через AI
- Бот определяет тип как "задача"
- Бот извлекает: описание, исполнителя, дедлайн
- Бот присваивает уникальный номер задачи
- Бот сохраняет задачу в БД
- Бот отправляет подтверждение с номером задачи
- Бот отправляет личное уведомление исполнителю
Альтернативные потоки:
- 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
Актеры: Исполнитель, ИИ-агент Секретарь, Администратор проекта
Предусловия:
- Существует активная задача
- Исполнитель получил утреннее напоминание
Основной поток:
- В 10:00 бот отправляет список задач исполнителю
- Исполнитель ставит emoji-реакцию на сообщение
- Бот обрабатывает реакцию
- Бот обновляет статус задачи в БД
- Бот выполняет действие согласно статусу
Варианты статусов и действий:
- ✅ Выполнена → Обновить статус, включить в отчет
- 🔄 В процессе → Обновить статус
- ❓ Есть вопрос → Переслать вопрос ответственному
- ❗ Риск срыва → Создать чат с админом и исполнителем
- ⚠️ Срыв дедлайна → Запросить новый срок и причину
- ➖ Невозможно выполнить → Запросить причину, уведомить админа
stateDiagram-v2
[*] --> Напоминание: 10:00 ежедневно
Напоминание --> Ожидание_реакции
Ожидание_реакции --> Выполнена: ✅
Ожидание_реакции --> В_процессе: 🔄
Ожидание_реакции --> Есть_вопрос: ❓
Ожидание_реакции --> Риск_срыва: ❗
Ожидание_реакции --> Срыв_дедлайна: ⚠️
Ожидание_реакции --> Невозможно: ➖
Выполнена --> Отчет: Включить в отчет
В_процессе --> [*]: Статус обновлен
Есть_вопрос --> Переадресация: Отправить админу
Риск_срыва --> Экстренный_чат: Создать групповой чат
Срыв_дедлайна --> Запрос_данных: Новый срок?
Невозможно --> Эскалация: Уведомить админа
Отчет --> [*]
Переадресация --> [*]
Экстренный_чат --> [*]
Запрос_данных --> [*]
Эскалация --> [*]
Напоминание : 10:00 ежедневно
Ожидание_реакции : Ожидание emoji
Выполнена : ✅ Выполнена
В_процессе : 🔄 В процессе
Есть_вопрос : ❓ Есть вопрос
Риск_срыва : ❗ Риск срыва
Срыв_дедлайна : ⚠️ Срыв дедлайна
Невозможно : ➖ Невозможно
Отчет : Включить в отчет
Переадресация : Отправить админу
Экстренный_чат : Создать групповой чат
Запрос_данных : Запросить новый срок
Эскалация : Уведомить админа
UC-04: Сохранение идеи
Актеры: Участник проекта, ИИ-агент Секретарь
Предусловия:
- Бот активен в проекте
- Участник хочет зафиксировать идею
Основной поток:
- Участник пишет сообщение с пометкой "идея"
- Бот классифицирует как идею
- Бот проверяет существование комнаты "ИДЕИ [Проект]"
- Если комнаты нет - бот создает её
- Бот назначает администраторов
- Бот публикует идею в комнате
- Бот подтверждает сохранение идеи
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 с материалами
- Новый сотрудник добавлен в основной чат
Основной поток:
- Администратор добавляет нового участника в чат
- Бот обнаруживает нового участника
- Бот отправляет приветственное сообщение в личку
- Бот отправляет ссылку на комнату ONBOARDING
- Бот формирует краткое резюме текущих задач
- Бот добавляет участника во все комнаты проекта
- Бот добавляет участника в пространство проекта
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: Автоматическая генерация отчетов
Актеры: Планировщик, ИИ-агент Секретарь, Администратор
Предусловия:
- Настроен график отчетов
- Существует комната ОТЧЕТЫ
Основной поток:
- Планировщик запускает задачу по расписанию
- Бот собирает данные о задачах за период
- Бот анализирует статусы и метрики
- Бот формирует отчет
- Бот публикует в комнату ОТЧЕТЫ
- Бот отправляет уведомление администраторам
Типы отчетов:
- Ежедневный - статусы задач
- Еженедельный - выполненные задачи, проблемы
- Ежемесячный - аналитика, 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 комнат с одинаковым названием проекта
- Бот присутствует во всех комнатах
Основной поток:
- Бот периодически анализирует список комнат
- Бот обнаруживает 3+ комнаты одного проекта
- Бот создает пространство проекта
- Бот переносит все комнаты в пространство
- Бот назначает администраторов пространства
- Бот уведомляет участников о создании пространства
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 не смог классифицировать тип
Основной поток:
- Участник отправляет неясное сообщение
- Бот пытается классифицировать через AI
- AI возвращает низкую уверенность
- Бот формирует уточняющий вопрос
- Бот предлагает варианты действий
- Участник выбирает вариант
- Бот обрабатывает согласно выбору
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: Эскалация проблемной задачи
Актеры: Исполнитель, ИИ-агент Секретарь, Администратор
Предусловия:
- Задача имеет статус "риск срыва" или "срыв дедлайна"
Основной поток:
- Исполнитель ставит ❗ или ⚠️ на напоминание
- Бот определяет критичность ситуации
- Бот создает экстренный чат
- Бот добавляет исполнителя и администратора
- Бот публикует контекст задачи
- Бот запрашивает план действий
- Участники обсуждают решение
- Бот фиксирует новые договоренности
stateDiagram-v2
[*] --> Проблема: Исполнитель ставит ❗/⚠️
Проблема --> Анализ: Бот анализирует
Анализ --> Риск_срыва: ❗
Анализ --> Срыв_дедлайна: ⚠️
Риск_срыва --> Создание_чата: Экстренный чат
Срыв_дедлайна --> Создание_чата
Создание_чата --> Добавление_участников
Добавление_участников --> Публикация_контекста
Публикация_контекста --> Обсуждение
Обсуждение --> Решение_найдено
Обсуждение --> Эскалация_выше: Нет решения
Решение_найдено --> Обновление_задачи
Эскалация_выше --> Уведомление_руководства
Обновление_задачи --> [*]
Уведомление_руководства --> [*]
UC-10: Поиск по истории проекта
Актеры: Участник, ИИ-агент Секретарь
Предусловия:
- Накоплена история сообщений
- Пользователь хочет найти информацию
Основной поток:
- Участник запрашивает поиск
- Бот парсит поисковый запрос
- Бот выполняет поиск в БД
- Бот фильтрует результаты по правам доступа
- Бот форматирует результаты
- Бот отправляет найденную информацию
Примеры запросов:
- "Покажи все задачи за последнюю неделю"
- "Найди идею про оптимизацию"
- "Какие задачи у @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)
- UC-01 - Инициализация бота ⭐⭐⭐⭐⭐
- UC-02 - Создание задачи ⭐⭐⭐⭐⭐
- UC-03 - Обновление статуса ⭐⭐⭐⭐⭐
Фаза 2: Основные функции (Sprint 3-4)
- UC-04 - Сохранение идеи ⭐⭐⭐⭐
- UC-06 - Генерация отчетов ⭐⭐⭐⭐
- UC-08 - Обработка неясных сообщений ⭐⭐⭐⭐
Фаза 3: Расширенные функции (Sprint 5-6)
- UC-05 - Онбординг ⭐⭐⭐
- UC-09 - Эскалация проблем ⭐⭐⭐
- UC-10 - Поиск по истории ⭐⭐⭐
Фаза 4: Автоматизация (Sprint 7-8)
- UC-07 - Создание пространств ⭐⭐
Заключение
Представленные сценарии использования охватывают полный жизненный цикл работы с ИИ-агентом «Секретарь» - от инициализации в проекте до сложных сценариев управления задачами и автоматизации рутинных процессов. Каждый сценарий детально проработан с учетом основных и альтернативных потоков, что обеспечивает надежность и предсказуемость работы системы.
Приоритизация use cases позволяет поэтапно внедрять функциональность, начиная с критически важных возможностей и постепенно расширяя функционал системы.