mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-14 04:02:26 +00:00
5.1 KiB
5.1 KiB
| title | description |
|---|---|
| Operate the Teams Meeting Pipeline | Runbook, go-live checklist, and operator worksheet for the Microsoft Teams meeting pipeline |
Operate the Teams Meeting Pipeline
Use this guide after you have already enabled the feature from Teams Meetings.
This page covers:
- operator CLI flows
- routine subscription maintenance
- failure triage
- go-live checks
- rollout worksheet
Core Operator Commands
Validate the config snapshot
hermes teams-pipeline validate
Use this first after any config change.
Inspect token health
hermes teams-pipeline token-health
hermes teams-pipeline token-health --force-refresh
Use --force-refresh when you suspect stale auth state.
Inspect subscriptions
hermes teams-pipeline subscriptions
Renew near-expiry subscriptions
hermes teams-pipeline maintain-subscriptions
hermes teams-pipeline maintain-subscriptions --dry-run
Inspect recent jobs
hermes teams-pipeline list
hermes teams-pipeline list --status failed
hermes teams-pipeline show <job-id>
Replay a stored job
hermes teams-pipeline run <job-id>
Dry-run meeting artifact fetches
hermes teams-pipeline fetch --meeting-id <meeting-id>
hermes teams-pipeline fetch --join-web-url "<join-url>"
Routine Runbook
After first setup
Run these in order:
hermes teams-pipeline validate
hermes teams-pipeline token-health --force-refresh
hermes teams-pipeline subscriptions
Then trigger or wait for a real meeting event and confirm:
hermes teams-pipeline list
hermes teams-pipeline show <job-id>
Daily or periodic checks
- run
hermes teams-pipeline maintain-subscriptions --dry-run - inspect
hermes teams-pipeline list --status failed - verify the Teams delivery target is still the correct chat or channel
Before changing webhook URLs or delivery targets
- update the public notification URL or Teams target config
- run
hermes teams-pipeline validate - renew or recreate affected subscriptions
- confirm new events land in the expected sink
Failure Triage
No jobs are being created
Check:
msgraph_webhookis enabled- the public notification URL points to
/msgraph/webhook - the client state in the subscription matches
MSGRAPH_WEBHOOK_CLIENT_STATE - subscriptions still exist remotely and are not expired
Jobs stay in retry or fail before summarization
Check:
- transcript permissions and availability
- recording permissions and artifact availability
ffmpegavailability if recording fallback is enabled- Graph token health
Summaries are produced but not delivered to Teams
Check:
platforms.teams.enabled: truedelivery_modeincoming_webhook_urlfor webhook modechat_idorteam_idpluschannel_idfor Graph mode- Teams auth config if Graph posting is used
Duplicate or unexpected replays
Check:
- whether you manually replayed a job with
hermes teams-pipeline run - whether the sink record already exists for that meeting
- whether you intentionally enabled a resend path in your local config
Go-Live Checklist
- Graph credentials are present and correct
msgraph_webhookis enabled and reachable from the public internetMSGRAPH_WEBHOOK_CLIENT_STATEis set and matches subscriptions- transcript subscription is created
- recording subscription is created if STT fallback is required
ffmpegis installed if recording fallback is enabled- Teams outbound delivery target is configured and verified
- Notion and Linear sinks are configured only if actually needed
hermes teams-pipeline validatereturns an OK snapshothermes teams-pipeline token-health --force-refreshsucceeds- a real end-to-end meeting event has produced a stored job
- at least one summary has reached the intended delivery sink
Delivery-Mode Decision Guide
| Mode | Use when | Tradeoff |
|---|---|---|
incoming_webhook |
you only need simple posting into Teams | simplest setup, less control |
graph |
you need channel or chat posting through Graph | more control, more auth and target config |
Operator Worksheet
Fill this out before rollout:
| Item | Value |
|---|---|
| Public notification URL | |
| Graph tenant ID | |
| Graph client ID | |
| Webhook client state | |
| Transcript resource subscription | |
| Recording resource subscription | |
| Teams delivery mode | |
| Teams chat ID or team/channel | |
| Notion database ID | |
| Linear team ID | |
| Store path override, if any | |
| Owner for daily checks |
Change Review Worksheet
Use this before changing the deployment:
| Question | Answer |
|---|---|
| Are we changing the public webhook URL? | |
| Are we rotating Graph credentials? | |
| Are we changing Teams delivery mode? | |
| Are we moving to a new Teams chat or channel? | |
| Do subscriptions need to be recreated or renewed? | |
| Do we need a fresh end-to-end verification run? |