Projects

Escalation and Governance: Human Authority Without Killing Automation Throughput

The AI coding assistant has finished its task. It has refactored the legacy module, updated the dependencies, and even added a few new tests. Now, it needs to get its work merged. It opens a pull request, assigns it to the lead developer, and waits. And waits. The lead is busy, in meetings, or on vacation. The automation, for all its speed and efficiency, has slammed into a wall of human latency. The throughput of the entire system is now bottlenecked by a single, manual approval step.

This is the central paradox of human-in-the-loop (HITL) governance. We need human oversight for safety, quality, and authority. But if implemented naively, that oversight can completely negate the benefits of automation.

Effective agentic systems don’t just ask for help; they have a sophisticated, multi-layered escalation framework. They treat human attention as the scarcest and most valuable resource in the system and are designed to consume it as efficiently as possible. This means not all escalations are created equal.

The Problem: The “All or Nothing” Approval Model

Many HITL systems operate on a simple, binary model: the agent either works fully autonomously, or it stops and waits for a human. This “all or nothing” approach is inefficient and frustrating for both the agent and the human.

  • For the Agent: It leads to long periods of inactivity. A task that took the agent 15 minutes to complete might sit idle for 4 hours waiting for a review. The context can grow stale, and the value of the rapid execution is lost.
  • For the Human: It creates a constant stream of low-value interruptions. The human is asked to review every single action, from trivial documentation typos to critical database migrations. This leads to approval fatigue, where the human starts rubber-stamping requests without proper scrutiny, ironically defeating the purpose of the review.

We are using a sledgehammer—a full, synchronous stop—for every problem, whether it’s a fly or a boulder.

Anti-Pattern: The Modal “Ask for Permission” Dialog

The crudest form of this is the synchronous ask_user tool. The agent’s loop is blocked until the human responds to a prompt like, “I have written the code. May I proceed with opening a pull request? [Y/n]”.

This is the worst of all worlds. It demands the human’s immediate, undivided attention. It couples the agent’s liveness directly to human responsiveness. It doesn’t provide the human with enough context to make an informed decision (where is the code? what are the changes?). And it doesn’t allow the agent to do anything else while it waits.

It’s a pattern that guarantees low throughput and high frustration.

Pattern: Asynchronous, Tiered Escalation with Timeouts

An effective governance framework is asynchronous and tiered. It recognizes that different situations require different levels of human intervention. The agent should be able to continue with other tasks while an escalation is pending, and the system should be able to act on its own if a human doesn’t respond within a reasonable timeframe.

Here is a model for a tiered escalation system:

Tier 1: FYI (For Your Information)

  • Trigger: Low-risk, informational events. The agent has completed a step successfully, made a minor, non-destructive change, or encountered a recoverable error.
  • Mechanism: An asynchronous, non-blocking notification. This could be a message in a specific Slack channel, an email, or an entry in a log file.
  • Human Action: No action is required. The human can review it at their leisure. It’s about maintaining awareness, not granting permission.
  • Example: “I have successfully refactored the logging module. The changes are on branch feature/logging-refactor.”

Tier 2: Soft Approval (Veto Power)

  • Trigger: Medium-risk actions that are reversible or have a low blast radius. The agent is confident in its plan but policy dictates a window for human oversight.
  • Mechanism: An asynchronous notification with a timeout and a “Veto” button. The agent notifies the human of its intent to perform an action in the near future. The agent can continue working on other, unrelated tasks in the meantime.
  • Human Action: The human can, within a set time window (e.g., 15 minutes), click “Veto” to prevent the action. If they do nothing, the action proceeds automatically.
  • Example: “I will merge the feature/logging-refactor PR in 15 minutes unless you veto this action.”

Tier 3: Hard Approval (Gated Action)

  • Trigger: High-risk, irreversible, or expensive actions. This is reserved for things like deleting production data, spending significant amounts of money, or contacting a large number of external users. This is where we use the sledgehammer.
  • Mechanism: A synchronous, blocking request. The action is placed in a queue and is not executed until a human explicitly clicks “Approve.” The agent, however, should not be fully blocked. A well-designed harness should allow the agent to shelve the current task and work on a completely different one while waiting for the approval.
  • Example: “Request to delete the old-customer-records-2022 database. This action is irreversible. [Approve] [Deny]”

Practical Guidance: Implementing Tiered Governance

  1. Categorize Your Agent’s Actions: Go through every tool and capability your agent has. Assign each one a default escalation tier. send_slack_message might be Tier 1. git_merge might be Tier 2. aws_s3_delete_bucket is definitely Tier 3.
  2. Build an Asynchronous Notification Bus: Use a message queue (like RabbitMQ or Redis) or a messaging platform (like Slack or Microsoft Teams) that supports interactive buttons. This decouples the agent from the human interface. The agent’s job is to put a message on the bus; a separate service handles the human interaction and sends the response back.
  3. Design for “Shelving”: When a Tier 3 block occurs, the agent harness should be able to serialize the entire state of the current task (which is easy with artifact-first design!), put it on a “paused” shelf, and then start work on a new task from its backlog. When the approval comes through, it can un-shelf the old task and resume it. This keeps the agent productive even when waiting on humans.
  4. Make Escalation a Tool: The agent itself should be able to request a specific escalation tier. Provide a tool like request_human_review(tier, message, context_data). This allows the model to use its own reasoning to decide when it’s uncertain. If it’s trying to fix a bug and has two plausible but conflicting approaches, it can proactively request a Tier 2 review from a human to get their opinion.

Conclusion: Authority with Autonomy

Human governance is not an obstacle to be routed around; it’s a critical component of a robust and trustworthy AI system. The goal is not to eliminate human oversight, but to make it as efficient and impactful as possible.

By moving away from the simplistic, blocking “ask for permission” model and toward a sophisticated, tiered, and asynchronous escalation framework, we can have the best of both worlds. We get the speed and scalability of automation, guided by the wisdom and authority of human experts. We build systems that respect human attention, preserve human authority, and still allow our agents to get their work done.


Architectural Principles

A well-designed automated system doesn’t just run on its own; it knows how and when to ask for help. This escalation strategy should be built into the system’s core, treating human attention as its most valuable and expensive resource.

  1. Tiered Escalation Pathways. The system must differentiate between events that are informational (FYI), those requiring optional oversight (a soft check), and those demanding mandatory approval (a hard gate). A single, monolithic “ask for permission” model creates bottlenecks and review fatigue.

  2. Asynchronous by Default. Human review should not block agent execution unless absolutely necessary. The system should favor asynchronous notifications and veto-based timeouts over synchronous, blocking calls to preserve automation throughput.

  3. Human Authority as a System Primitive. The requirement for human approval on high-stakes actions is not an edge case; it is a core feature. The architecture must treat human intervention as a primary, auditable event, not an informal interruption. The final authority of the human user must be structurally guaranteed.