The night watchman
An assistant that is quiet by design. It checks every hour and mostly stays silent.
stayed silent · 15spoke · 2
Your 2 p.m. call moved to 3 p.m. That now overlaps school pickup.
Why I spoke: a calendar change collides with a fixed commitment.
Sample with invented data. The real one looks the same.
What it does
- Every hour from 7 a.m. to 11 p.m. it builds a compact picture of my world (deadlines, birthdays, the chat, every background job, the house) and compares it with an hour ago.
- When nothing meaningful changed, it does nothing and spends nothing. That is most hours.
- When something did change, one AI call reads the picture and may send at most two short messages, each with its reason.
- When something happens right now (a door, a new important email), a second watcher wakes it early instead of waiting for the hour.
How it works
1 · Hears
A script collects facts with no AI and fingerprints each part of the picture.
2 · Thinks
Unchanged fingerprints mean no model call. Otherwise Claude Sonnet returns: say, note, watch or resolve.
3 · Does
Code, not the model, enforces the leash: two messages per hour, six per day, quiet at night, never the same thing twice.
What broke
81% of its cost was a doorbell
A loose pattern matched every doorbell sensor, so in one week it woke 439 times to conclude "same flaky camera", while the real garage sensor didn't match at all. Now it watches people, locks and the actual garage, and ignores flaps.
Ten notes on one task
It may add notes but is forbidden to close tasks, so it repeated "ready to close" on the same item for three days. A visible lesson in giving an agent a voice without a hand.
By the numbers
- ~2,600
- hourly checks
- 44
- times it spoke, in 6 weeks
- ≤ 6
- messages a day, enforced in code
The call that mattered
The cheap layer decides whether the expensive model runs at all. Nothing is the normal answer.
Built with
Claude Sonnet (headless) · Home Assistant events · Gmail polling · Node.js