The brief
We run a growing fleet of “headless” AI agents — autonomous workers that operate 24/7 in the background with no screen and no human watching. One keeps a CRM clean and drafts follow-ups. Another triages and files tasks. They are powerful precisely because nobody has to babysit them.
That is also the problem. When an agent runs silently, how do you know it is actually running? If one quietly dies at 2am, hits an error, or drifts stale, you would have no idea until something downstream broke. We had capability without visibility.
The approach
We built Agent Control Tower — a clean dashboard in Notion that mirrors the live state of the entire fleet. Three design decisions made it trustworthy.
The watcher is independent of the agents. A crashed agent cannot raise its hand and say “I am down.” So instead of each agent reporting on itself, a separate watcher reads each one’s heartbeat from the outside and detects silence. The thing being monitored is never the thing doing the monitoring.
The monitor is deterministic — not another AI. The watcher is simple, predictable plumbing with no language model in it. That means the monitor itself can never hang, get confused, or invent a status. It just reports the facts.
It only ever reads. The watcher never writes back into the agents it observes, so it cannot break the very systems it is there to protect.
What we built
A single Notion page backed by three connected views.
- Agents — a live status board. Each agent shows as green (healthy), amber (stale), red (error), or grey (paused), with its last activity, latest results, and any error.
- Run Log — an append-only history of every cycle each agent runs, so there is a permanent, auditable record of what happened and when.
- Flags — an automatic to-do list. The moment an agent errors, goes quiet, or is paused, a flag opens itself. The moment it recovers, the flag closes itself. No noise, no manual triage — just a clean queue of what genuinely needs a human.
Behind the dashboard sits a lightweight watcher on a five-minute cycle, plus a single config file that declares the fleet. Onboarding a brand-new agent is one entry in that file. No new code.
The stack
- Notion as the dashboard surface — three connected databases (Agents, Run Log, Flags)
- A deterministic watcher on a five-minute cycle — plain code, no language model, read-only
- A single config file that declares the fleet — one entry per agent
The results
- Full visibility into a fleet of autonomous agents that previously ran blind.
- Self-maintaining — the board updates itself every few minutes and the attention queue manages its own open and closed state.
- Built to scale — the same dashboard absorbs the next agent, and the one after that, with a single line each.
- Resilient by design — because the monitor is external and deterministic, it stays honest exactly when it matters most: when an agent is failing.
Why this build matters
As more of a business runs on autonomous AI, the bottleneck stops being can we build the agent and becomes can we trust it to run unattended. Agent Control Tower is the layer that makes a fleet of always-on agents something you can actually rely on — a control room for a workforce that never sleeps.
This is the same thinking we bring to client builds: the system has to be trustworthy when no one is looking, not just impressive in a demo.
OFO Collective ships internal tools like this on the 30-day trial. For a similar build, book a call.