关于 teams-meeting-pipeline
teams-meeting-pipeline 是一项技能,通过 hermes teams-pipeline 命令行工具运维和排查 Microsoft Teams 会议流水线。它支持检查及重跑会议任务、验证 Microsoft Graph 配置,以及管理 Webhook 订阅。
主要功能
- 01检查配置和 Graph 令牌状态
- 02列出并查看会议任务
- 03重跑已存任务并试查会议资料
- 04创建、检查、续期和删除订阅
- 05排查会议摄取与投递问题
适用场景
- 01排查未收到会议摘要的问题
- 02重新运行失败的会议任务
- 03配置变更后检查 Microsoft Graph 设置
- 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 天后停止接收会议通知,且不会发出提示。
当用户反馈“流水线昨天还能用,但今天什么都没收到”时:
- 运行
hermes teams-pipeline subscriptions——如果结果为空,或者所有条目的expirationDateTime都已过期,这就是原因。 - 如上所示,使用
subscribe重新创建订阅。 - 立即设置自动续订,可使用
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