The Missing Layer in Enterprise AI: Why Agents Need a Runtime, Not a Dashboard
Most enterprises have already bought the agents. What they are discovering, budget cycle after budget cycle, is that supervising them is the actual cost — and the layer that would make supervision tractable is the one nobody put on the architecture diagram.
A large organisation rarely has a shortage of capable agents. Between Claude Code, Codex, Cursor, OpenCode and a dozen similar tools, the model layer is broadly good enough for real work — and it keeps improving without anyone in the enterprise doing anything. The failure mode has moved somewhere else entirely. It has moved to attention: the human capacity to notice what a fleet is doing, decide what it needs, and unblock it. Every organisation that scaled from one agent to ten has run the same experiment, and the result is consistent — the binding constraint is not compute, it is the queue of decisions waiting on a person.
That reframing matters because it changes what you should buy. Dashboards, orchestration canvases and observability products all assume the problem is visibility into a pipeline. The problem is closer to scheduling a decision queue — and the layer that makes a decision queue possible is a runtime, not a UI. If you are still establishing the fundamentals of agent autonomy inside your organisation, our primer on what AI agents are is the right starting point; this article assumes that groundwork is done.
From Dashboard to Runtime: The Category Mistake
A useful way to separate product categories is to ask what happens when the thing you are looking at goes away. Close a dashboard and your agents keep running — it was never in the execution path. Close the runtime and the work stops, because the runtime owns the processes. That determines who is responsible for state, for recovery, and for answering a question programmatically.
herdr, an open-source terminal workspace manager built specifically for coding agents, states the framing directly: apps manage the herd, the runtime runs it. The observation describes a real architectural gap. Agent manager applications sit outside the work and coordinate it from a distance; the runtime sits underneath, owns the PTYs each agent executes in, and knows which process is doing what.
For an enterprise architect, the practical consequence is this: if the agents in your delivery process are managed by something that is not in the execution path, then no governance control you build on top of it is authoritative. You will always be reasoning about a copy of the state, not the state itself.
Semantic State: The Difference Between a Terminal and an Agent
Process persistence is a solved problem and has been for almost twenty years; tmux keeps shells alive and does it extremely well. What tmux does not do — and cannot do, because it deliberately knows nothing about its contents — is model what is running inside a pane. A pane containing an agent is not just a process. It has state, and that state has business meaning.
herdr models five agent states, and the mapping onto governance obligations is unusually clean:
| State | Meaning | Enterprise obligation |
|---|---|---|
working | The agent is actively executing. No human input is required and none should be offered. | None. Let it run. |
blocked | The agent needs input, an approval, or a decision before it can proceed. | A named human owes the system an answer. This is the state to alert on. |
done | The agent finished and the result has not yet been looked at by anyone. | Review is pending. Work is complete but unaccepted. |
idle | The agent is finished or waiting, and its output has been seen. | None — unless new work is assigned. |
unknown | The runtime could not determine the agent state from available evidence. | Treat as an observability gap and investigate; do not assume it is fine. |
The state that matters to a leadership team is blocked. Every other state is either progressing or finished. A blocked agent is a decision that has not been made, and in a large fleet it is the difference between a process that is slow and one that is silently stalled.
The first of two properties that make that state addressable is roll-up. Because the runtime knows the whole hierarchy — project container, tabs, panes, and the agents recognised inside them — a single blocked agent makes its pane, its tab and its workspace read as blocked. That converts an unanswerable question ("which of these eleven terminals needs me?") into a glance. Each client also tracks what it has seen independently, so an automated consumer may read done while a human interface shows idle: the same result, awaited from two vantage points. Separating work state from acknowledgement state is what lets you treat review latency as a measurable SLA.
The second is evidence-based detection. herdr ships roughly twenty-two agent manifests and identifies a running agent by matching the live bottom of the pane, not the scrolled viewport, with local overrides taking precedence. Detection is deliberately conservative about declaring an agent blocked. That is the right shape of trade-off: a conservative classifier produces false negatives — an agent that is waiting but reads as idle — which is annoying. An aggressive classifier produces false positives, and false positives train operators to ignore the alert.
A Control Surface, Not a Console
Here is where the runtime argument stops being philosophical. If agent state only exists inside a visual interface, it is an operator convenience. If it exists on a programmatic control surface, it becomes an integration point for everything else the enterprise already runs — ticketing, change management, on-call rotation, cost accounting.
herdr exposes its entire surface over newline-delimited JSON on a Unix domain socket (a named pipe on Windows), with a machine-readable schema published by the binary itself. Over that one surface sit a shipped agent skill, a command-line interface, and the raw socket. Layout can be created, agents started in a pane, prompted, read, and — most importantly — waited on.
Illustrative: the coordination primitive
# Block until the worker genuinely needs a human — the primitive
# that turns multi-agent coordination into a workflow step.
herdr agent wait reviewer --until blocked --timeout 120000
# Read its output without attaching to its terminal.
herdr agent read reviewer --source recent-unwrapped --lines 120
# Prompt it. If it is already blocked, this refuses and returns
# agent_blocked instead of typing into a dialog it cannot see.
herdr agent prompt reviewer "Review the current diff" --wait --timeout 120000The wait --until blocked primitive is the whole argument in one command. It means an orchestrator does not have to guess when a worker needs input, poll its output, or hold a conversation with it to find out. It can block on a state transition. One independent teardown of the tooling described the shift bluntly: most multi-agent coordination today is prompt-mediated hope, and this makes it a syscall. Whether or not you adopt this specific tool, that is the property an enterprise control plane needs.
The refusal behaviour is worth dwelling on, because it looks like a limitation and is actually a safety property. If an agent is already blocked — typically sitting on an approval dialog — a prompt command does not inject keystrokes. It returns an error saying the agent is blocked, and a human must resolve the dialog first. That is the correct default for anything touching production systems: the automation cannot accidentally type past a confirmation prompt that a human was supposed to answer.
One further operational detail earns its place in a governance section: command waits have no default timeout, and a timeout exits with a JSON error on standard error. Unbounded waits are a hazard in any long-running orchestration — a pipeline that blocks forever on an agent that died at 3am does not fail loudly, it simply never finishes. Any control plane built on this surface should set explicit timeouts and treat their expiry as an alertable event.
The Visibility Story You Get From Multi-Machine Support
Enterprise delivery is rarely confined to one machine, and this is where the runtime boundary becomes a governance question rather than a convenience question. A runtime that can register remote targets — an opaque identifier, a label, and a target, with no passwords, keys or tickets stored — and then present a combined agent list across connected machines is doing something a per-host dashboard cannot: it is giving one operator a single read of distributed agent activity.
The architecture details matter in a review. Each machine keeps its own server, sessions and processes, so a dropped connection to one host does not disturb the others — failures are contained per machine rather than cascading through a central coordinator. Automation spans machines through a global prefix, carried as JSON over non-interactive SSH rather than interpolated into a shell command, which is the difference between a controlled interface and a command-injection surface.
Read as an architecture pattern rather than a feature list, this is the shape an enterprise control plane should take: distributed execution with no central point of failure for the work itself, and a single aggregation point for humans — which is where policy, approval routing and audit belong.
The Honest Persistence Claim — and Why Architects Should Care
Claims about agent infrastructure are easy to inflate, and the most inflated claim in this category is durability. It is worth stating the mechanism precisely, because architects are routinely sold something stronger than what exists.
When you detach from a session and reattach later, nothing stopped: the server kept the processes, and the live terminal comes back. When the server restarts, the original pane processes are gone, and the documentation says so without hedging. What is restored is the saved session shape — workspaces, tabs, panes, working directory, layout and focus — plus agent conversations where the individual agent supports native session restore, which is on by default. Pane screen history is a separate experimental feature and is off by default.
| Event | Pane processes survive | What returns |
|---|---|---|
| Detach / reattach | Yes | Yes |
| Server restart | No | Layout, working directory, focus, and agent conversations (with native session restore). |
| Update without handoff | Compatible servers keep running | Layout returns after restart; conversation only with native restore. |
| Update with handoff (experimental) | Best effort | Best effort for screen history and conversation. |
Up to forty-eight layout snapshots are retained — at most one every fifteen minutes — plus recovery copies for failed loads, and recovery is manual. None of this is a criticism: it is a design boundary, and the correct one for a tool that refuses to pretend it can resurrect arbitrary processes. But it has a direct consequence: a runtime is not a durable execution engine. If a business process must survive a host restart and resume mid-step, that durability belongs in the workflow layer above the runtime, with the runtime treated as replaceable execution capacity. Design reviews that conflate the two discover the difference during an incident.
The Limits, Filed Under Procurement
An architecture recommendation that only lists strengths is marketing. Four limits belong in any evaluation of this class of tooling.
It is pre-1.0. The current release line sits at v0.9.3, and the project went from v0.1 to v0.8 in under five months. The compensating factor is disciplined release engineering — protected tags, immutable releases, and a stable channel that promotes a published preview rather than the development branch. Treat the runtime as solid and pin versions anyway.
Plugins are not reviewed. The plugin marketplace is an automatic index of public repositories carrying a topic tag and a parseable manifest, and installation is at your own discretion by the project's own wording. For an enterprise, a listing is not a supply chain control; a plugin manifest is an executable trust decision like any other dependency.
It is not sandboxed. Plugins and agent hooks run with the user's privileges and have access to terminal contents, and the marketplace is not a curated, trustworthy point of contact. If your agents touch production credentials, the runtime inherits their blast radius — an argument for treating the terminal host as a tier-0 asset, not an argument against the category.
The accountability features do not exist yet. There is no per-run spend ledger or budget, no dead-man's switch over always-running agents, and no audit trail or provenance for unattended work. That is the frank assessment from independent teardowns, and it is the gap most relevant to an enterprise buyer: an AI workforce without a spend ledger and an unattended-work audit trail cannot pass a serious controls review on its own. Those capabilities have to come from the layer above the runtime — a build decision, not a purchase decision. Our practice on agentic workflow design covers where they attach.
Finally, be honest about the comparison that will be made internally. For one or two sessions with well-understood content, SSH plus tmux remains the sober choice, and reviewers who migrated from tmux missed status-bar widgets that have no equivalent here. The category earns its place when agents span repositories and machines and human attention becomes the binding constraint — not before.
What This Means for Your Agent Architecture
Five positions follow, and they hold whether or not you adopt any specific tool.
- Put the runtime in the execution path. If the management layer sits outside the processes doing the work, every governance control above it is advisory rather than authoritative.
- Make
blockedalertable. A blocked agent is a human task with a cost attached. It belongs in the same escalation machinery as any other stalled business process. - Require a programmatic control surface. A surface other systems can call is what lets approvals, ticketing and budget checks attach to agent activity without a human relaying messages between tools.
- Keep durability above the runtime. Persistence of layout and conversation is not durability of a business process. Separate the layers before an incident forces the distinction.
- Treat extension points as supply chain. Unsandboxed hooks and unreviewed plugin listings are a procurement and isolation question, not a configuration detail.
Where a runtime like this stops — at the execution layer — is exactly where an enterprise platform starts. Elatify's position is the layer above: L7 for multi-agent orchestration, supervised components such as the Sales Agent and the AI Visibility Agent, and control surfaces including AI Guardrails. The runtime answers what the fleet is doing; the platform above it answers who is accountable, within what budget, and with what evidence.
Attention Is the Constraint
A fleet of competent agents does not fail on compute. It fails when nobody can tell which agent finished and which one has been waiting on an approval for twenty minutes.
Model the Agent, Not the Terminal
A pane running a coding agent has state worth modelling. Once state is explicit, it can roll up a hierarchy — so one blocked workstream makes the whole project read as blocked.
The API Is the Integration Point
A control surface that other systems can call is what turns multi-agent coordination into a governed workflow instead of a script someone runs by hand.
Blocked Is the Executive State
"Blocked" is the only state that maps cleanly to a business obligation: a human decision is outstanding, and something is costing money until it is made.
- No per-run spend ledger or budget enforcement over unattended agent work
- No dead-man's switch for agents that keep running when nobody is watching
- No audit trail or provenance for work completed without a human present
- Pre-1.0 release line with a fast-moving surface — pin versions and isolate upgrades
- Plugins and hooks are unreviewed and unsandboxed, running with user privileges
Supervising an AI Workforce You Can Defend
Elatify builds the layer above the runtime: orchestrated agents with explicit human-in-the-loop checkpoints, guardrails that hold under audit, and the evidence trail that unattended automation otherwise lacks. Start with a scoped AI Kickstarter or bring our enterprise AI solutions team into your architecture review.
