












Hermes Agent(GitHub 164k star)は、ターミナル内のコーディング補助ツールだけではありません。そのメッセージゲートウェイを通じて、Agentは24つのメッセージプラットフォーム——Telegram、Discord、Slack、WeChat、Lark、DingTalk、Microsoft Teams など——に接続できます。あるプラットフォームで設定したAgentの機能(Skills、ツール呼び出し、承認プロセス)は、すべてのプラットフォームで共通して使用できます。
この記事はMicrosoft Teamsの接続方法に焦点を当てています:6つのステップでAI AgentロボットをTeamsのチャットに表示する方法。
Teams 群聊 ←── HTTPS Webhook ──→ Hermes Gateway (端口 3978) ←──→ Agent + LLM
と Slack の Socket Mode は異なり、Teams は公開 HTTPS Webhook を通じてメッセージをプッシュします。あなたの Hermes インスタンスにはインターネットからアクセス可能なエンドポイントが必要です——ローカル開発用にはトンネルツール、本番環境には実際のドメインを使用します。
| シナリオ | 動作 |
|---|---|
| プライベートチャット(1:1) | メッセージごとに Agent が返信し、@ は不要 |
| グループチャット | @ロボットが含まれる場合のみ返信 |
| チャンネル | @ロボットが含まれる場合のみ返信 |
Teams は @mention を <at>BotName</at> タグとして伝達し、Hermes が自動的に除去して後処理を行います。
Microsoft の @microsoft/teams.cli 自動化 Bot の登録、Azure Portal は不要:
npm install -g @microsoft/teams.cli@preview
teams login
ログインを検証し、AAD Object ID を取得(後でホワイトリストの設定に使用):
teams status --verbose
Teams は localhost にメッセージをプッシュできません。ローカル開発にはトンネルツールが必要:
# Microsoft devtunnel(推荐,URL 持久)
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、次の手順に進みます。開発中はトンネルを継続的に動かしておきます。
teams app create \
--name "Hermes" \
--endpoint "https://<your-tunnel-url>/api/messages"
CLIの出力CLIENT_ID、CLIENT_SECRET、TENANT_IDを作成します。すぐにクライアントシークレットを保存——二度と表示されません。
を~/.hermes/.envに追加します:
# 必填
TEAMS_CLIENT_ID=<your-client-id>
TEAMS_CLIENT_SECRET=<your-client-secret>
TEAMS_TENANT_ID=<your-tenant-id>
# 限制访问用户(强烈建议)
# 用 teams status --verbose 获取 AAD Object ID
TEAMS_ALLOWED_USERS=<your-aad-object-id>
もconfig.yamlを使用して設定できます:
platforms:
teams:
enabled: true
extra:
client_id: "your-client-id"
client_secret: "your-secret"
tenant_id: "your-tenant-id"
port: 3978
HERMES_UID=$(id -u) HERMES_GID=$(id -g) docker compose up -d gateway
が動作しているか確認します:
curl http://localhost:3978/health
# 应返回: ok
docker logs -f hermes
# 看到: [teams] Webhook server listening on 0.0.0.0:3978/api/messages
teams app get <teamsAppId> --install-link
出力されたリンクを開き、Teams クライアントでインストールします。インストールが完了したら、ロボットにメッセージを送信——準備完了です。
これは Teams インテグレーションで最も実用的な機能の一つです。Agent が危険なコマンド(ファイル削除、shell コマンドの実行など)を実行する必要がある場合、手動で/approveを入力するのではなく、Adaptive Cardを送信し、4つのボタンが表示されます:
| ボタン | 行動 |
|---|---|
| 一度許可 | この特定のコマンドを承認 |
| セッションを許可 | このセッション内で同類のコマンドを自動的に承認 |
| 常に許可 | このモードを永続的に承認 |
| 拒否 | 実行を拒否 |
ボタンをクリックすると、カードはすぐに承認の決定で更新され、Agent は続行または停止します。
Hermes Agent の Teams統合はチャットに加えて、会議の議事録を自動的にプッシュすることもサポートしています。Teams Meeting Pipeline プラグインを有効にすると、会議終了後自動的に議事録を作成し、指定されたTeamsチャンネルやチャットにプッシュされます。
2つのプッシュモード:
| モード | 適用シーン | 制限 |
|---|---|---|
incoming_webhook |
簡単にチャンネルに投稿 | スレッドや返信機能はサポートしない |
graph |
ボットとして投稿し、スレッドをサポート | Microsoft Graph 権限が必要 |
graphモード設定:
platforms:
teams:
enabled: true
extra:
client_id: "..."
client_secret: "..."
tenant_id: "..."
delivery_mode: "graph"
chat_id: "19:meeting_..." # 推送到聊天
# 或
# team_id: "..."
# channel_id: "..." # 推送到频道
ローカル開発用トンネル、本番環境用実際のドメイン:
# 创建 Bot 时直接用生产域名
teams app create \
--name "Hermes" \
--endpoint "https://your-domain.com/api/messages"
# 已有 Bot 更新端点
teams app update --id <teamsAppId> --endpoint "https://your-domain.com/api/messages"
要件:
- ポート 3978(または TEAMS_PORT 指定されたポート)が公網からアクセス可能
- TLS 証明書が有効(Teams は自署名証明書を拒否)
⚠️ TEAMS_ALLOWED_USERSを設定する必要があります。そうしないと、あなたのBotを見つけたりインストールしたりできる人は誰でもそれとやり取りできます。
セキュリティベストプラクティス:
TEAMS_ALLOWED_USERSに、承認ユーザーのAAD Object IDを入力し、未承認のメッセージは静かに捨てますTEAMS_CLIENT_SECRETパスワードとして扱い、定期的に変更します~/.hermes/.envファイルのアクセス権を600に設定します:chmod 600 ~/.hermes/.env/api/messagesはTeams Bot Frameworkによって認証され、有効なJWTがないリクエストは拒否されます| 変数 | の説明 |
|---|---|
TEAMS_CLIENT_ID |
Azure AD App(クライアント)ID |
TEAMS_CLIENT_SECRET |
Azure AD クライアントキー |
TEAMS_TENANT_ID |
Azure AD テナントID |
TEAMS_ALLOWED_USERS |
コンマ区切りのAAD Object ID 白リスト |
TEAMS_ALLOW_ALL_USERS |
設定trueホワイトリストをスキップ(推奨されません) |
TEAMS_HOME_CHANNEL |
タイマー/アクティブメッセージの対話ID |
TEAMS_PORT |
Webhook ポート(デフォルト 3978) |
| 質問 | 解決策 |
|---|---|
| health エンドポイントは正常ですが Bot が応答しない | トンネルがまだ実行中かどうかを確認し、Bot エンドポイントがトンネル URL に一致しているかどうかを確認 |
KeyError: 'teams'ログエラー |
コンテナを再起動 |
| 認証エラー | CLIENT_ID、CLIENT_SECRET、TENANT_IDを確認 |
| Botがメッセージを受け取りましたが無視 | AAD Object ID は ALLOWED_USERS に含まれていません |
| トンネル URL は再起動後に変更 | devtunnelは命名トンネル URLを維持;ngrok無料版は毎回変わるのでteams app updateを更新 |
No inference provider configured |
ANTHROPIC_API_KEY(または他のLLM key)が設定されているか確認 |
チームズはその一つに過ぎません。Hermes Agentは同時に
Telegram、Discord、Slack、WhatsApp、Signal、Email、SMS(Twilio)、Home Assistant、Mattermost、Matrix、DingTalk(钉钉)、Lark(飞书)、WeCom(企业微信)、WeCom Webhook、WeChat、iMessage(BlueBubbles)、QQ Bot、Yuánbǎo、Microsoft Teams、Teams Meetings、LINE、SimpleX Chat、ntfy、Open WebUI、Webhooksをサポートしています。
同じAgent、同じSkillsとツールの設定、すべてのプラットフォームで利用可能です。
作者: itech001
来源: 公众号:AI人工知能時代
ウェブサイト: https://www.theaiera.cn/
毎日、最も先進的なAIニュース情報と技術研究を共有します。
本稿はAI人工知能時代で初めて掲載されました。転載する場合は出典を明記してください。
このコンテンツは慣性聚合(RSSリーダー)によって自動集約されています。参考としてご覧ください。 原文出典 — 著作権は原著者に帰属します。