Teams Meeting Pipeline
Управляйте пайплайном встреч Teams через Hermes CLI — создавайте сводки встреч, проверяйте статус пайплайна, перезапускайте задания, управляйте подписками Microsoft Graph.
Метаданные навыка
| Источник | Встроенный (установлен по умолчанию) |
| Путь | skills/productivity/teams-meeting-pipeline |
| Версия | 1.1.0 |
| Автор | Hermes Agent + Teknium |
| Лицензия | MIT |
| Теги | Teams, Microsoft Graph, Meetings, Productivity, Operations |
Справочник: полный SKILL.md
Ниже — полное определение навыка, которое Hermes загружает при его активации. Именно этот текст агент получает в качестве инструкций, когда навык включён.
Teams Meeting Pipeline
Используй этот навык всякий раз, когда пользователь спрашивает о сводках встреч Microsoft Teams, транскрипциях, записях, action items, подписках Graph или любых операционных вопросах о пайплайне встреч Teams. Работает на любом языке — триггеры ниже приведены как примеры, список неполный.
Весь операторский интерфейс — это подкоманды hermes teams-pipeline, запускаемые через терминал. Новых инструментов для модели в этом пайплайне нет — CLI и есть единственный интерфейс.
Когда использовать
Пользователь хочет:
- получить сводку встречи Teams / извлечь action items / забрать заметки
- проверить статус пайплайна, изучить сохранённое задание или посмотреть список последних встреч
- перезапустить задание, которое упало или требует новой сводки
- проверить настройку Microsoft Graph после изменения конфигурации или переменных окружения
- разобраться, почему сводка встречи не пришла или новые встречи не поступают в пайплайн
- управлять вебхук-подписками Graph (создать, обновить, удалить, посмотреть)
- настроить автоматическое обновление подписок (см. подводный камень ниже)
Примеры триггеров на разных языках (не исчерпывающий список):
- English: “summarize the Teams meeting”, “pipeline status”, “replay job X”
- Turkish: “Teams meeting özetle”, “action item çıkar”, “toplantı notu”, “pipeline durumu”, “replay job”
Требования
Перед использованием пайплайна убедитесь, что в ~/.hermes/.env заданы переменные:
MSGRAPH_TENANT_ID=...
MSGRAPH_CLIENT_ID=...
MSGRAPH_CLIENT_SECRET=...
Если какой-то из них нет, направьте пользователя к руководству по регистрации Azure-приложения по адресу /docs/guides/microsoft-graph-app-registration — потребуется регистрация Azure AD app с правами Graph application permissions и выданным admin consent.
Справочник по командам
Статус и диагностика (начинать отсюда)
hermes teams-pipeline validate # снимок конфигурации — запускать после любых изменений
hermes teams-pipeline token-health # статус токена Graph
hermes teams-pipeline token-health --force-refresh # принудительное получение нового токена
hermes teams-pipeline list # последние задания встреч
hermes teams-pipeline list --status failed # только упавшие задания
hermes teams-pipeline show <job-id> # подробности конкретного задания
hermes teams-pipeline subscriptions # текущие вебхук-подписки Graph
Перезапуск и отладка
hermes teams-pipeline run <job-id> # перезапуск сохранённого задания (повторная сводка и доставка)
hermes teams-pipeline fetch --meeting-id <id> # dry-run: получить встречу и транскрипт без сохранения
hermes teams-pipeline fetch --join-web-url "<url>" # dry-run по URL входа
Управление подписками
hermes teams-pipeline subscribe \
--resource communications/onlineMeetings/getAllTranscripts \
--notification-url https://<your-public-host>/msgraph/webhook \
--client-state "$MSGRAPH_WEBHOOK_CLIENT_STATE"
hermes teams-pipeline renew-subscription <sub-id> --expiration <iso-8601>
hermes teams-pipeline delete-subscription <sub-id>
hermes teams-pipeline maintain-subscriptions # обновить подписки, истекающие в ближайшее время
hermes teams-pipeline maintain-subscriptions --dry-run # показать, что было бы обновлено
Дерево решений для типичных запросов
- Пользователь спрашивает «почему я не получил сводку сегодняшней встречи?» → начните с
list --status failed, затемshow <job-id>для нужной строки. Если задание вообще не появилось — проверьтеsubscriptions: вебхук мог истечь (см. подводный камень ниже). - Пользователь спрашивает «работает ли настройка?» →
validate, затемtoken-health, затемsubscriptions. Если все три проходят — запросите тестовую встречу и проверьтеlistна свежую строку. - Пользователь просит «перезапустить суммаризацию встречи X» →
listдля поиска job ID, затемrun <job-id>. Если снова падает —show <job-id>для просмотра ошибки иfetch --meeting-idдля dry-run разрешения артефактов. - Пользователь хочет «добавить встречу X в пайплайн» → как правило, этого делать не нужно: пайплайн работает по подпискам, а не по встречам. Если нужна суммаризация конкретной прошлой встречи — используйте
fetchдля получения транскрипта, а затемrunпосле создания задания.
Критический подводный камень: подписки Graph истекают через 72 часа
Microsoft Graph ограничивает вебхук-подписки 72 часами и не обновляет их автоматически. Если maintain-subscriptions не запланирован в расписании, уведомления о встречах перестанут поступать через 3 дня после ручного создания подписки — без каких-либо ошибок.
Когда пользователь сообщает «вчера пайплайн работал, сегодня ничего не приходит»:
- Выполните
hermes teams-pipeline subscriptions— если список пуст или все записи показываютexpirationDateTimeв прошлом, причина именно в этом. - Пересоздайте подписку командой
subscribe, как показано выше. - Сразу настройте автоматическое обновление через
hermes cron add, systemd timer или обычный crontab. В операторском руководстве по адресу/docs/guides/operate-teams-meeting-pipeline#automating-subscription-renewal-required-for-productionописаны все три варианта. Интервал в 12 часов безопасен — это шестикратный запас до 72-часового лимита.
Другие подводные камни
- Транскрипт ещё не готов. Teams генерирует артефакт транскрипта через некоторое время после окончания встречи.
fetch --meeting-idдля только что завершившейся встречи может вернуть пустой результат. Подождите 2–5 минут и повторите, или дайте вебхуку Graph самому запустить приём данных. - Несоответствие режима доставки. Если сводки создаются (
listпоказывает успех), но в Teams ничего не приходит — проверьтеplatforms.teams.extra.delivery_modeи соответствующую конфигурацию цели (incoming_webhook_urlлибоchat_id, либоteam_id+channel_id). Модуль записи берёт эти значения из config.yaml или переменных окруженияTEAMS_*. - Права Graph-приложения. Токен получается без ошибок (
token-healthпроходит), но вызовы Graph API возвращают 401/403 — такое бывает, когда права были добавлены, но admin consent не выдан повторно. Попросите пользователя открыть регистрацию приложения на портале Azure и снова нажать «Grant admin consent».
Связанная документация
Направляйте пользователя к этим ресурсам, когда вопрос выходит за рамки навыка:
- Руководство по регистрации Azure-приложения:
/docs/guides/microsoft-graph-app-registration - Полная настройка пайплайна:
/docs/user-guide/messaging/teams-meetings - Операторское руководство (автоматизация обновления, диагностика, чеклист запуска):
/docs/guides/operate-teams-meeting-pipeline - Настройка вебхук-слушателя:
/docs/user-guide/messaging/msgraph-webhook