mcpField
T
teams-meeting-pipeline

teams-meeting-pipeline

github.com/nousresearch生产力258.1k366 次安装今天更新
代码仓库

关于 teams-meeting-pipeline

teams-meeting-pipeline 是一项技能,通过 hermes teams-pipeline 命令行工具运维和排查 Microsoft Teams 会议流水线。它支持检查及重跑会议任务、验证 Microsoft Graph 配置,以及管理 Webhook 订阅。

主要功能

  1. 01检查配置和 Graph 令牌状态
  2. 02列出并查看会议任务
  3. 03重跑已存任务并试查会议资料
  4. 04创建、检查、续期和删除订阅
  5. 05排查会议摄取与投递问题

适用场景

  1. 01排查未收到会议摘要的问题
  2. 02重新运行失败的会议任务
  3. 03配置变更后检查 Microsoft Graph 设置
  4. 04续期订阅以恢复会议通知

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nousresearch/hermes-agent --skill teams-meeting-pipeline

安装后在 Claude Code 中输入/teams-meeting-pipeline确认已加载。

详细介绍

Teams Meeting Pipeline

当用户询问 Microsoft Teams 会议摘要、转录文本、录音、行动项、Graph 订阅,或 Teams 会议流水线相关的任何运维问题时,请使用此技能。支持任何语言——以下触发示例并非详尽列表。

所有面向运维人员的操作,都是通过终端工具运行 hermes teams-pipeline 子命令。此流水线没有新增模型工具——命令行界面就是操作入口。

何时使用此技能

用户希望:

  • 总结 Teams 会议/提取行动项/获取会议记录
  • 检查流水线状态、查看已存储的会议任务,或查看最近的会议
  • 重放/重新运行失败或需要生成新摘要的已存储任务
  • 更改环境变量或配置后,验证 Microsoft Graph 设置
  • 排查“始终收不到会议摘要”或“没有新会议进入流水线”等问题
  • 管理 Graph webhook 订阅(创建、续订、删除、检查)
  • 设置自动续订订阅(见下方的注意事项)

多语言触发示例(并非详尽列表):

  • 英语:“summarize the Teams meeting”、“pipeline status”、“replay job X”
  • 土耳其语:“Teams meeting özetle”、“action item çıkar”、“toplantı notu”、“pipeline durumu”、“replay job”

前置条件

使用此流水线前,请确认以下内容已设置在 ${HERMES_HOME:-~/.hermes}/.env 中:

MSGRAPH_TENANT_ID=...
MSGRAPH_CLIENT_ID=...
MSGRAPH_CLIENT_SECRET=...

如果缺少任何一项,请引导用户查看 Azure 应用注册指南 /docs/guides/microsoft-graph-app-registration——他们需要先注册 Azure AD 应用,并获得管理员同意的 Graph 应用程序权限,流水线才能运行。

命令参考

状态与检查(从这里开始)
hermes teams-pipeline validate              # config snapshot — run first after any change
hermes teams-pipeline token-health          # Graph token status
hermes teams-pipeline token-health --force-refresh   # force a fresh token acquisition
hermes teams-pipeline list                  # recent meeting jobs
hermes teams-pipeline list --status failed  # only failed jobs
hermes teams-pipeline show <job-id>         # full detail of one job
hermes teams-pipeline subscriptions         # current Graph webhook subscriptions
重新运行/调试
hermes teams-pipeline run <job-id>          # replay a stored job (re-summarize, re-deliver)
hermes teams-pipeline fetch --meeting-id <id>   # dry-run: resolve meeting + transcript without persisting
hermes teams-pipeline fetch --join-web-url "<url>"   # dry-run by join URL
hermes teams-pipeline fetch --join-web-url "<url>" --organizer-user-id <id>   # organizer-scoped lookup (required for /meet/ short URLs)
订阅管理
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            # renew near-expiry ones
hermes teams-pipeline maintain-subscriptions --dry-run  # show what would be renewed

常见问题决策树

  • 用户询问“为什么我今天的会议没有收到摘要?”→ 从 list --status failed 开始,然后对相关条目运行 show <job-id>。如果任务根本不存在,请检查 subscriptions——webhook 可能已过期(见下方的注意事项)。
  • 用户询问“设置是否正常?”→ 依次运行 validate、token-health 和 subscriptions。如果三项都通过,请安排一场测试会议,然后运行 list 检查是否出现新条目。
  • 用户询问“重新生成会议 X 的摘要”→ 运行 list 查找任务 ID,再运行 run <job-id> 重放。如果再次失败,请运行 show <job-id> 检查错误,并运行 fetch --meeting-id 对工件解析进行试运行。
  • 用户询问“将会议 X 添加到流水线”→ 通常不需要——流水线由订阅驱动,而不是按单场会议驱动。如果用户想为某场过去的会议生成摘要,请使用 fetch 获取转录文本,并在创建任务后运行 run。

重要注意事项:Graph 订阅会在 72 小时后过期

Microsoft Graph 将 webhook 订阅的有效期限制为 72 小时,且不会自动续订。如果未安排 maintain-subscriptions,手动创建的订阅会在 3 天后停止接收会议通知,且不会发出提示。

当用户反馈“流水线昨天还能用,但今天什么都没收到”时:

  1. 运行 hermes teams-pipeline subscriptions——如果结果为空,或者所有条目的 expirationDateTime 都已过期,这就是原因。
  2. 如上所示,使用 subscribe 重新创建订阅。
  3. 立即设置自动续订,可使用 hermes cron add、systemd 定时器或普通 crontab。运维人员手册 /docs/guides/operate-teams-meeting-pipeline#automating-subscription-renewal-required-for-production 提供了这三种方法。设置为每 12 小时运行一次较为稳妥(相对于 72 小时上限有 6 倍余量)。

其他注意事项

  • 暂时没有会议记录。 Teams 会在会议结束后花一些时间生成会议记录文件。对刚结束的会议运行 fetch --meeting-id 可能会返回空结果。请等待 2-5 分钟后重试,或让 Graph webhook 自然触发数据采集。
  • 投递模式不匹配。 如果已生成摘要(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,可能是添加权限后没有重新授予管理员同意。请让用户在 Azure 门户中重新访问应用注册页面,再次点击“Grant admin consent”。

相关文档

如果用户需要了解本技能未涵盖的更多内容,请引导他们查看以下文档:

  • Azure 应用注册指南:/docs/guides/microsoft-graph-app-registration
  • 完整流水线设置:/docs/user-guide/messaging/teams-meetings
  • 操作手册(续期自动化、故障排查、上线检查清单):/docs/guides/operate-teams-meeting-pipeline
  • Webhook 侦听器设置:/docs/user-guide/messaging/msgraph-webhook

评论

支持 Markdown