🤖HermesBlog
Hermes 訊息平台接入 · 第29篇2026/8/9· Easy Understand Hermes Agent

Teams 會議接入——會議紀要自動生成

Hermes 訊息平台接入第29篇:Teams 會議。AI 與會、記錄紀要、發送總結。

這篇教學講的是:如何讓 Hermes 在你開完 Teams 會後,自動把會議內容整理成結構化紀要,並推送到 Notion、Linear 或 Teams 頻道裡——全程不用你手動記錄。

想像一下:你剛開完一場一小時的客戶會,還沒回到工位,Hermes 已經把「誰說了什麼、下一步誰做什麼」整理好發到了專案群組裡。這就是我們今天要搭建的東西。

messaging-teams-meetings

準備工作

你需要先有一個能跑起來的 Hermes 環境,以及一個 Teams 機器人(用於發送紀要)。另外,去 Azure 入口網站給應用程式註冊好 Graph API 權限,並準備一個公網 HTTPS 位址(用於接收微軟的會議事件通知)。如果希望「錄音轉文字」兜底,還要裝好 ffmpeg

第 1 步:填入 Graph 憑證

打開 ~/.hermes/.env,把下面幾行填好:

MSGRAPH_TENANT_ID=<你的租戶ID>
MSGRAPH_CLIENT_ID=<你的應用程式ID>
MSGRAPH_CLIENT_SECRET=<你的應用程式金鑰>

這組憑證相當於 Hermes 的「門禁卡」,用來讀取會議列表、下載轉錄稿和錄音。

第 2 步:開啟 Webhook 監聽器

Webhook 就像一個「門鈴」——微軟一有會議動態,就按鈴通知 Hermes。在 .env 裡加上:

MSGRAPH_WEBHOOK_ENABLED=true
MSGRAPH_WEBHOOK_PORT=8646
MSGRAPH_WEBHOOK_CLIENT_STATE=<隨便填一長串隨機字元>
MSGRAPH_WEBHOOK_ACCEPTED_RESOURCES=communications/onlineMeetings

然後在 config.yaml 裡把監聽位址配好(注意:這裡沒有環境變數,只能寫設定檔):

platforms:
  msgraph_webhook:
    enabled: true
    extra:
      host: 127.0.0.1
      port: 8646
      client_state: "replace-me"
      accepted_resources:
        - "communications/onlineMeetings"

最後,把你的公網域名(比如 https://ops.example.com)反向代理到這台機器的 8646 連接埠,通知位址就是:

https://ops.example.com/msgraph/webhook

第 3 步:配置紀要生成與發送

config.yamlteams 平台下,增加 meeting_pipeline 配置區塊:

platforms:
  teams:
    enabled: true
    extra:
      client_id: "your-teams-client-id"
      client_secret: "your-teams-client-secret"
      tenant_id: "your-teams-tenant-id"
      delivery_mode: "graph"   # 或 incoming_webhook
      team_id: "team-id"
      channel_id: "channel-id"
      meeting_pipeline:
        transcript_min_chars: 80
        transcript_required: false
        transcription_fallback: true
        ffmpeg_extract_audio: true
        notion:
          enabled: false
        linear:
          enabled: false

關鍵點delivery_mode 有兩種——graph 模式走官方介面發到指定頻道;incoming_webhook 模式則用 Webhook 位址直接「扔」進某個頻道,適合不想配 Graph 發送權限的場景。

第 4 步:啟動閘道

hermes gateway run

然後驗證一下監聽器是否活著:

curl http://localhost:8646/health

第 5 步:建立訂閱

訂閱就是「告訴微軟:哪些會議事件要通知我」。用外掛程式命令建立:

hermes teams-pipeline subscribe \
  --resource communications/onlineMeetings/getAllTranscripts \
  --notification-url https://ops.example.com/msgraph/webhook \
  --client-state "$MSGRAPH_WEBHOOK_CLIENT_STATE"

hermes teams-pipeline subscribe \
  --resource communications/onlineMeetings/getAllRecordings \
  --notification-url https://ops.example.com/msgraph/webhook \
  --client-state "$MSGRAPH_WEBHOOK_CLIENT_STATE"

⚠️ 重要警告:微軟的 Graph 訂閱72 小時就會過期,而且不會自動續期。上線前必須配置定時任務(比如 crontab)定期執行 hermes teams-pipeline maintain-subscriptions,否則三天後通知會悄悄斷掉。

驗證與排錯

跑一下自檢命令:

hermes teams-pipeline validate
hermes teams-pipeline token-health
hermes teams-pipeline subscriptions

常見問題速查:

問題 檢查點
Webhook 驗證失敗 公網位址是否可達、路徑是否精確到 /msgraph/webhook
列表裡看不到任務 msgraph_webhook 是否啟用、訂閱通知位址是否正確
轉錄稿一直拿不到 Graph 權限是否包含 transcript 資源
錄音兜底失敗 ffmpeg 是否安裝、應用程式能否存取錄音檔案
紀要發不出去 核對 delivery_mode、目標 ID、Teams 認證配置

小結

到這裡,你已經完成了 Teams 會議紀要自動化的全部核心配置:憑證、監聽器、紀要管道、訂閱。剩下的就是讓定時任務守護訂閱不過期,然後坐等第一份自動紀要誕生。

下篇預告:當紀要生成後,如何把它接入 Notion 和 Linear,實現「會議結束,任務自動進看板」——我們下期見。


📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/teams