One Morning Report for All My Agents
I run a set of AI agents and automated jobs on my own machines, and each one wanted to tell me about its night. I replaced their morning messages with a single report. Merging them was easy. Keeping the summary honest took more work.

I run a set of AI agents and automated jobs on my own machines. Some work on coding tasks overnight. Others watch for problems or prepare a morning brief.
By late October, several of them sent me their own message every morning: a brief, a weekly operations review, a scheduler check, a security-advisory check. On top of those, the overnight agents left their own summaries wherever they finished. Every team adding AI tools is about to hit the same problem, because every new agent wants to report.
On October 27 I asked for one thing instead: "I don't want a bunch of different things to read... just one (whether I listen or read)." This is what that took, and what broke.
The design
One message arrives at 7:30. It's written as text, with an audio version of the same words, so I can read it or listen to it.
The four jobs that used to message me in the morning still run, but they now save their output instead of sending it. A few real-time alerts still reach me directly, on purpose. Anything urgent can interrupt me, and everything else waits for the morning.
The overnight agents no longer write their own summaries. They leave a short note in the same format every time: what they did, whether it worked, and anything that needs me, with the exact action and what happens if I do nothing.
A small script gathers everything since the last report, and an AI model writes it up as one message. Routines that should run every night are on a list, so if one leaves no note, the report says so. A missing job shows up instead of going quiet.
Twelve days in
As of November 8, the report had gone out on schedule twelve mornings in a row. Most of the change was the obvious kind. I read one thing, the decisions I need to make are at the top, and I can skip the rest.
Two failures were more useful than the good days.
The report made something up. On November 3 it told me that some home network devices had briefly dropped overnight and were "fine by 7:30."
Nothing had checked them at 7:30. They had been down for days, and they still were. The model filled a gap with a plausible ending, and it read exactly as confidently as the true parts.
The fix had two parts. The report now re-probes those devices at the moment it's written. Its instructions also carry a plain rule: no claim that something recovered without a source from that morning. The next day's report opened by correcting itself.
The rule helped, and it wasn't the end of it. Two days later the report got a recovery right but gave the wrong reason for it.
An agent went around the report. On November 5, an overnight agent wrote its own summary file instead of leaving a note. The report never saw it.
It left out that whole night's work, including three finished code changes, and said it "couldn't confirm" work that had in fact shipped. A catch-up note went into the next day's report. The script now also picks up stray summary files, and the next fix is making every agent's instructions require the note.
There was also a smaller, steadier problem. Each report reads the previous one, so an issue I'd already handled could be carried forward as "still" for days. There's now a short list of things I've settled, and the report leaves those out unless something new breaks.
The backups
With one message, a failed delivery means no morning view at all, and I might not notice. So three backups watch it. A watchdog checks three times each morning that the report arrived and resends it if not. A separate check outside that system sends one short line if nothing arrived at all. A second machine watches the first in case the whole workstation is off.
Across 36 watchdog checks and 33 scheduled outside checks, neither has fired. I haven't checked the second machine's log. So far the backups have caught nothing.
What I'd tell a team adding AI to people's inboxes
Decide what may interrupt a person. Agent output competes for the same attention as people do. Before a new AI tool gets to message anyone, decide whether it's urgent enough to interrupt or whether it waits for a digest. Most things can wait.
Give every source the same short format. Free-form summaries are hard to merge. A status, a headline, and "what I need from you, and what happens if you don't answer" are easy to merge and easy to act on.
Treat the summarizer as a new source of errors. A model that condenses many inputs will sometimes fill a gap with a confident guess. Require a fresh source for anything that says a problem is fixed, and have the digest say "not verified" when it can't check.
It also helps to give people a way to close things. A digest that can't be told "I've handled this" will repeat it until people skim past everything. And a digest should know what it expected to hear from, because the failures that hurt are quiet ones, like a job that didn't run or an agent that wrote somewhere else.
I still get a few direct alerts, and new agents keep wanting a channel of their own. Each one is now a decision about my attention, which is the part I'd want any team to make on purpose.