92 lines
12 KiB
Markdown
92 lines
12 KiB
Markdown
**. Веб-интерфейс здесь не нужен и даже вреден, так как процесс полностью живёт в Telegram.
|
||
|
||
Вот исправленный, полный и валидный гайд со всеми обязательными разделами, черновиком промпта и примерами.
|
||
|
||
[[GUIDE]]
|
||
## 1. Почему Alem, а не отдельная разработка
|
||
- **Логика укладывается в возможности платформы:** Задача агента — прочитать данные (KTWorks), применить правила (лимит 2 человека, дежурный) и записать результат (Excel). Это стандартный сценарий для MCP/API-агента на Alem без необходимости писать отдельный бэкенд.
|
||
- **Интерфейс уже существует:** Владелец и сотрудники используют Telegram. Делать отдельный веб-портал, куда нужно заходить ради 5–15 операций в месяц, значит усложнять жизнь пользователю и создавать «мёртвую» систему.
|
||
- **Human-in-the-loop нативен:** Платформа Alem позволяет встроить узел «Одобрение пользователя» прямо в сценарий, что соответствует требованию брифа (кнопка «Согласовать» в чате).
|
||
- **Экономия времени:** Внедрение через Alem занимает дни, а не месяцы, так как не требует разработки UI и мобильной версии.
|
||
- **Ограничения:** Решение зависит от стабильности доступа к сетевой папке через MCP и качества данных в KTWorks. Если файловое хранилище будет недоступно, агент не сможет записать файл (требуется обработка ошибок).
|
||
|
||
## 2. Что делает агент
|
||
Агент выступает цифровым ассистентом руководителя отдела по согласованию отпусков. Он мониторит запросы в Telegram, автоматически сверяет остаток дней в KTWorks и проверяет график на конфликты (чтобы не ушли больше 2 человек одновременно и остался дежурный). Вместо того чтобы руководитель бегал по системам, агент присылает готовое решение: «Сотрудник Х, даты Y–Z, остаток N дней, конфликтов нет» с кнопкой подтверждения. После нажатия кнопки агент сам обновляет общий Excel-файл на сетевом диске и готовит отчёт для HR.
|
||
|
||
## 3. Пошаговое создание в Alem
|
||
Решение будет жить в чате Telegram (через бота) и работать на базе платформы Alem. Адрес платформы: https://alem.ai-kt.kz.
|
||
|
||
**Шаг 1. Создание агента**
|
||
В интерфейсе Alem нажмите **«Создать супер-сотрудника»**. Выберите тип агента: **Skill-агент** (так как требуется генерация файлов/отчётов) или **Workflow-агент** (если нужна сложная логика ветвления). Назовите агента, например, «Отпуска-Бот».
|
||
|
||
**Шаг 2. Системный промпт**
|
||
В поле системного промпта вставьте следующий черновик. Он задаёт роль, источники знаний и строгие правила валидации.
|
||
|
||
```markdown
|
||
Ты — ИИ-ассистент руководителя отдела по согласованию отпусков.
|
||
Твоя цель: обрабатывать запросы сотрудников на отпуск, проверять их корректность и обновлять график.
|
||
|
||
ИСТОЧНИКИ ДАННЫХ:
|
||
1. KTWorks (через MCP/API): остаток дней отпуска сотрудника.
|
||
2. Excel-файл "График отпусков 2026.xlsx" на сетевом диске \\fs-dept\otdel\Отпуска\: текущий список утверждённых отпусков.
|
||
|
||
ПРАВИЛА ВАЛИДАЦИИ (СТРОГО):
|
||
1. Лимит одновременного отсутствия: в одни даты не могут отсутствовать более 2 человек.
|
||
2. Дежурный: среди отсутствующих не должно быть единственного доступного старшего сотрудника (из "тройки старших").
|
||
3. Остаток: у сотрудника должен быть достаточный остаток дней отпуска в KTWorks.
|
||
|
||
АЛГОРИТМ РАБОТЫ:
|
||
1. Получи запрос от сотрудника (ФИО, даты, тип отпуска).
|
||
2. Проверь остаток в KTWorks. Если недостаточно — сообщи об отказе.
|
||
3. Проверь даты по Excel-графику на предмет пересечений (лимит 2 чел.) и наличия дежурного.
|
||
4. Если всё ок — сформируй черновик ответа для руководителя: "Сотрудник [ФИО], даты [X-Y], остаток [N] дней. Конфликтов нет." и предложи кнопку "Согласовать".
|
||
5. Если есть конфликт — напиши причину: "Конфликт: в эти даты уже уходят [Список] / Нет дежурного".
|
||
6. После нажатия кнопки "Согласовать":
|
||
- Добавь строку в Excel-файл на сетевом диске.
|
||
- Отправь подтверждение сотруднику.
|
||
- Добавь запись в список для еженедельного отчёта HR.
|
||
|
||
ЧЕГО НЕ ДЕЛАТЬ:
|
||
- Не согласовывай отпуск без явного подтверждения руководителя (кнопки).
|
||
- Не изменяй файл, если доступ к сети потерян (сообщи об ошибке).
|
||
- Не игнорируй правило дежурного.
|
||
```
|
||
|
||
**Шаг 3. База знаний и навыки**
|
||
- **База знаний:** Загрузите документ с актуальным списком «Тройки старших» (ФИО, должности), чтобы агент знал, кого нельзя отпускать всех одновременно.
|
||
- **Навыки (Skills):** Убедитесь, что подключен навык работы с файлами (Excel) и MCP-коннекторы для KTWorks и сетевой папки.
|
||
|
||
**Шаг 4. Публикация и интеграция с Telegram**
|
||
1. В карточке агента нажмите **«Опубликовать»**.
|
||
2. Выберите интерфейс **API**. Платформа создаст API-ключ и покажет эндпоинты.
|
||
3. Для работы в Telegram потребуется настроить бота-оркестратора (внешний сервис или скрипт), который будет:
|
||
- Слушать сообщения в чате отдела.
|
||
- Отправлять текст запроса в Alem через `POST /gateway/app/api/v1/published/conversation`.
|
||
- Получать `session_id` и пересылать сообщения через `POST .../published/{session_id}/send`.
|
||
- Отображать кнопки (Inline Keyboard) для подтверждения руководителю.
|
||
|
||
**Шаг 5. Узел одобрения**
|
||
В сценарии (Workflow) добавьте узел **«Одобрение пользователя»** после этапа проверки правил. Это гарантирует, что запись в файл произойдёт только после нажатия кнопки руководителем.
|
||
|
||
## 4. Примеры поведения
|
||
**Вопрос:** «Прошу согласовать отпуск с 10 по 24 августа (14 дней).» (Сотрудник: Иванов А.)
|
||
**Ожидаемый ответ (Руководителю):** «Иванов А., 10–24 августа. Остаток в KTWorks: 20 дней. Конфликтов нет (в эти даты уходит только Петров). Предварительное решение: Согласовать. [Кнопка: Согласовать] [Кнопка: Отклонить]»
|
||
|
||
**Вопрос:** «Можно ли мне в отпуск с 1 по 15 июля?» (Сотрудник: Сидоров В., один из «тройки старших»)
|
||
**Ожидаемый ответ (Руководителю):** «Сидоров В., 1–15 июля. Остаток: 15 дней. ВНИМАНИЕ: Конфликт правил. В эти даты уже отсутствуют Иванов и Петров. Если уйдёте вы, не останется дежурного старшего. Рекомендация: Отклонить или сдвинуть даты.»
|
||
|
||
**Вопрос:** «Согласовать отпуск для Кузнецовой (5 дней).»
|
||
**Ожидаемый ответ (Руководителю):** «Кузнецова Е., даты не указаны. Уточните даты начала и конца отпуска для проверки графика.»
|
||
|
||
## 5. Как принять работу
|
||
**Чек-лист приёмки:**
|
||
- [ ] Агент корректно считывает остаток дней из KTWorks для тестового сотрудника.
|
||
- [ ] Агент правильно определяет конфликт «>2 человек» на тестовых данных из Excel.
|
||
- [ ] Агент блокирует согласование, если уходит последний «старший» (проверка правила дежурного).
|
||
- [ ] После нажатия кнопки «Согласовать» строка реально появляется в файле `\\fs-dept\otdel\Отпуска\График отпусков 2026.xlsx`.
|
||
- [ ] При отсутствии сети агент не падает, а сообщает об ошибке записи.
|
||
|
||
**Что подтвердить до запуска (Блокеры):**
|
||
1. **Доступ к файловой системе:** Подтвердить техническую возможность записи в сетевую папку `\\fs-dept\otdel\Отпуска\` через MCP-коннектор или сервис-аккаунт (нужны учётные данные).
|
||
2. **Доступ к KTWorks:** Согласовать с HR и ДЦБ доступ агента к API KTWorks для чтения кадровых профилей (read-only).
|
||
3. **Telegram-интеграция:** Реализовать и протестировать бота-оркестратора для доставки сообщений и обработки нажатий кнопок (так как нативный чат Alem работает внутри платформы, а процесс идёт в Telegram). |