Microsoft Teams — Корпоративный Чат
Microsoft Teams — Корпоративный Чат — простое руководство на основе официальной документации
Представьте, что подключение Hermes Agent к Microsoft Teams — это как выдать вашему ИИ-ассистенту пропуск в офис: как только он в команде, он может участвовать в собраниях, отвечать на вопросы в каналах и помогать в личных сообщениях, не покидая приложение, которым ваши коллеги пользуются каждый день.
Чем Teams отличается от Slack
Если вы раньше использовали Socket Mode в Slack, то Teams работает немного иначе. Вместо постоянного соединения Teams вызывает публичный вебхук вашего бота каждый раз, когда кто-то отправляет сообщение. Это означает, что вашему экземпляру Hermes нужен публичный HTTPS URL, а не localhost. Для тестирования можно использовать туннель; для продакшена — указать адрес вашего реального сервера.
Как ведёт себя бот
Вот простое правило:
| Где вы с ним общаетесь | Что происходит |
|---|---|
| Личный чат (DM) | Бот отвечает на каждое сообщение — без необходимости упоминать @ |
| Групповой чат | Бот отвечает только когда вы его упоминаете через @ |
| Канал | Бот отвечает только когда вы его упоминаете через @ |
Teams отправляет упоминания как теги <at>ИмяБота</at>, но Hermes автоматически удаляет их перед обработкой — так что вам не нужно об этом беспокоиться.
Шаг 1: Установите Teams CLI
Сначала установите инструмент командной строки Microsoft, который автоматизирует регистрацию бота — портал Azure не понадобится:
npm install -g @microsoft/teams.cli@preview
teams login
Чтобы проверить вход и найти свой AAD object ID (он понадобится позже для ограничения доступа), выполните:
teams status --verbose
Шаг 2: Откройте порт вебхука
Teams не может доставлять сообщения на localhost. Для локальной разработки используйте туннель, чтобы получить публичный HTTPS URL. Порт по умолчанию — 3978 (при необходимости измените его через TEAMS_PORT).
Вот три простых варианта:
# devtunnel (Microsoft)
devtunnel create hermes-bot --allow-anonymous
devtunnel port create hermes-bot -p 3978 --protocol https
devtunnel host hermes-bot
# ngrok
ngrok http 3978
# cloudflared
cloudflared tunnel --url http://localhost:3978
Скопируйте https:// URL из вывода — он понадобится на следующем шаге. Оставьте туннель запущенным во время разработки.
Шаг 3: Создайте бота
Теперь зарегистрируйте бота в Teams:
teams app create \
--name "Hermes" \
--endpoint "https://<ваш-туннель-url>/api/messages"
CLI выведет ваш CLIENT_ID, CLIENT_SECRET и TENANT_ID, а также ссылку для установки. Сохраните client secret сразу же — он больше не будет показан.
Шаг 4: Настройте переменные окружения
Добавьте их в файл ~/.hermes/.env:
# Обязательные
TEAMS_CLIENT_ID=<ваш-client-id>
TEAMS_CLIENT_SECRET=<ваш-client-secret>
TEAMS_TENANT_ID=<ваш-tenant-id>
# Ограничение доступа для конкретных пользователей (рекомендуется)
# Используйте AAD object ID из `teams status --verbose`
TEAMS_ALLOWED_USERS=<ваш-aad-object-id>
Шаг 5: Запустите шлюз
Если вы используете Docker, запустите из каталога, содержащего docker-compose.yml (обычно это клонированный репозиторий hermes-agent, не ~):
cd /path/to/hermes-agent
HERMES_UID=$(id -u) HERMES_GID=$(id -g) docker compose up
Для установки из исходников сначала убедитесь, что вы включили дополнительный пакет Teams:
uv sync --extra teams
# или для редактируемой установки:
uv pip install -e ".[teams]"
Заключение
Подключение Hermes к Teams — это танец из четырёх шагов: установите CLI, откройте публичный URL, создайте бота и настройте переменные окружения. Как только всё запущено, ваш ИИ-ассистент становится полноценным членом команды — автоматически отвечает в личных сообщениях и подключается к групповым чатам по запросу.
Практический совет: Начните с TEAMS_ALLOWED_USERS, указав только свой собственный AAD object ID. Так вы сможете безопасно тестировать, не беспокоясь, что случайные коллеги активируют вашего бота, — а затем расширьте доступ, когда убедитесь, что всё работает.
📖 Официальная документация
Эта статья основана на официальной документации Hermes Agent :Официальные документы › user-guide/messaging/teams