Mission control for a fleet of AI agents

A harness can report "running" while the agent inside quietly skipped half its job. Mission Control is the one place I watch every OpenClaw and NanoClaw setup, stop or reset any of them from a chat reply, and audit whether an agent did its job, not just whether it exited clean.

I run several agent setups across separate servers, some OpenClaw, most now NanoClaw. Mission Control is the operations layer over all of them, an experiment to test whether one surface could watch and control the whole fleet, whatever harness each server runs.

The Mission Control dashboard. A sidebar lists VPS, Agents, Tasks and Security. The main panel, VPS Instances across ap-southeast-1, shows summary stats of 6 running, 1 stopped, 1 alert and 847 dollars of Bedrock cost, then a card per server. Each running card shows live CPU, memory and disk and a power button to stop it. Hermes Exploration, Agentic Testbed and Agentic Playground are running, Agentic Development on OpenClaw-3 is stopped and offline.
Every harness on one screen: running or stopped, live CPU, memory and disk, per-agent Bedrock cost, and a power button on each card. This view has 6 running, 1 stopped, 1 alert.

A running harness can still be failing

An exit code and a status column catch a crash. They say nothing about whether the agent did what it was for. An agent can exit clean having skipped a step, written the wrong file, or drifted out of its scope, and every dashboard I had would still show green. Spread across separate servers, I had no single place to see health, spend, or whether the work was any good. That gap is the whole reason Mission Control exists.

The built-in panels each stop at one harness

Most harnesses ship their own control panel, but each one is walled into the agents inside that single instance. Run several harnesses across different servers and versions, some OpenClaw, some NanoClaw, and you get several separate panels, none of which can see the others. Mission Control is deliberately harness-agnostic. It sits above all of them and treats the fleet as one thing, so I watch, stop, and audit any agent on any harness, and read spend across the whole fleet, from a single surface instead of hopping between dashboards that each know only their own corner.

A cross-cutting layer like this is not the norm. The panel a harness ships with manages its own agents and stops there, so a view that spans harnesses is something you build yourself, and I have not seen it done elsewhere. That absence is the point: the gap was never another per-harness dashboard, it was one control plane that treats a mixed fleet of harnesses as a single system to run and audit.

One surface to see the fleet and stop it

Health comes first: CPU, RAM and disk per harness, and which agents are running versus stopped, reported daily through a chat bot and mirrored on the dashboard. Control sits next to it: I start, stop, or emergency-reset any harness by replying to the bot in plain words, or one click on a card, so a runaway is one message from stopped. Cost rides alongside, session counts and Bedrock spend broken down per agent and per model, pulled from the gateway every agent already calls. A daily scan ranks findings by severity, from an URGENT shell-access hole down to LOW hardening. This is site reliability engineering pointed at an agent fleet: health, control, spend, and incident response in one place.

A Telegram chat with the Agentic Ops Bot. The bot posts a daily Mission Control security scan: 5 critical and 8 warning findings, 7 servers running and 1 stopped, agent activity, and recommended actions ranked from URGENT down to HIGH. It closes by saying reply to stop or manage a harness. The user replies stop openclaw-3, and the bot confirms openclaw-3 stopping now, VPS halted, agents drained.
The daily scan lands in chat, ranked worst first, and I stop a harness by replying stop openclaw-3. The control channel is the same place the report arrives.

The audit checks the question a status column can't

Every run traces step by step, each tool call and its duration, one click. On top of that an opt-in AI audit cross-checks the transcript against the agent's own governing docs and spec, grades the output, marks each requirement as pass, drift, or not visible with cited evidence, and ends in a ranked top-three fix list. It is built to catch drift from instructions, not crashes: the clean-exit failures that an exit code and a status column both miss.

The AI Analysis tab of a run that exited ok. A verdict banner reads Output quality Good, matches the job's purpose, one scope warning. An instruction-compliance table checks each requirement against cited evidence: posting to the right thread and updating the notes file pass, the research pipeline is implied, reading the template first is not visible because the transcript was cut off, and staying within scope is flagged as drift. A ranked top-three fix list follows.
The audit on a run that exited ok: most requirements pass, but it flags one section that drifted out of scope and one step it could not verify, then ranks the fixes.

The catch: this wants a platform, not a cron

Two limits, one lesson. A per-run LLM audit is too expensive to fire on demand for every run, so it has to move off the reactive path onto a passive guardian on its own review track, watching continuously for drift instead of waiting to be asked. That is the same instinct as giving a loop a separate checker it cannot renegotiate. The deeper lesson is the one the whole build taught me: the more I added, the more I was rebuilding what an enterprise agent platform already ships. AWS Bedrock AgentCore covers most of what Mission Control reaches for, Evaluations for behavioral scoring and Policy plus Guardrails for real-time enforcement, so I am now exploring adopting the platform rather than hand-rolling the operations layer myself.

The bottom line

A fleet you cannot see and cannot stop is not operational, it is just running. Mission Control gave me both: one surface for health, cost, and emergency control, plus the audit for the harder question an exit code never reached, did the agent actually do its job. The experiment also showed me the ceiling, that past a point the operations layer is a platform, and AgentCore is where I am looking next.

Title card: mission control for a fleet of AI agents. The dashboard mockup: every harness on one screen with health, cost per agent and a power button on each card. Recreated to desensitise the real work. Point 1: a running harness can still be failing, because an exit code catches a crash but not a skipped step or a drift. Point 2: built-in harness panels each stop at one harness, so this one is harness-agnostic and sits above all of them. The chat bot mockup: the daily scan lands in Telegram and I stop a harness by replying. Recreated to desensitise the real work. Point 3: health, control, cost and a daily security scan on one surface, site reliability engineering for an agent fleet. The audit mockup: an opt-in check of whether the agent did its job, marking each requirement pass or drift and ranking the fixes. Recreated to desensitise the real work. Point 4: this wants a platform, not a cron, so I am exploring AWS Bedrock AgentCore. Read next card: OpenClaw to NanoClaw, the model gateway, and spawn every agent with a spec, a plan, and the same workspace.
The whole note in a few cards, the three dashboards included. The mockups are recreated and simplified to desensitise the real work. Swipe or use the dots.