Writing Agents
Evaluation

What GroundEval tells you about where HITL belongs

Human-in-the-loop exists because teams deploying agents don't know what those agents will do. GroundEval changes the premise. When you can characterize failure modes before deployment, HITL stops being an anxiety response and starts being a deliberate, targeted mechanism.

Tenure research · ~9 min read

TL;DR

  • HITL is a response to pre-deployment opacity. You don't know what the agent will do, so a human watches it.
  • GroundEval scores agents on violation rates, trajectory validity, and compliance-adjusted performance before anything touches production.
  • Those scores are a routing signal, not just a report card. They tell you exactly which failure classes need human oversight and which ones don't.
  • Teams that blanket agents with HITL drown in review queues. Teams that use eval output to place HITL deliberately get the safety properties without the operational cost.
  • The goal is not to eliminate human oversight. It's to make it precise enough to be sustainable.
The original question

Why does HITL exist in the first place?

If you spend time on the threads where practitioners talk about running agents in production, you see the same frustration surfacing repeatedly. Human-in-the-loop adds latency. It doesn't scale. The review queue fills up faster than the team can clear it. Reviewers start rubber-stamping because the volume is unsustainable, which means the oversight isn't real anymore anyway.

But HITL didn't come from nowhere. It came from a very reasonable position: we don't know what the model is going to do. If we can't characterize the agent's behavior before deployment, then a human watching it at runtime is the only check we have. The overhead is the cost of that uncertainty.

So the real question isn't "how do we make HITL cheaper?" It's "what would have to be true for HITL to be placed more precisely?" If the burden comes from uncertainty, reducing the uncertainty changes what kind of oversight you need.

HITL that covers everything is HITL that doesn't trust the system at all. That's a reasonable position when you have no evidence about how the system behaves. It stops being reasonable the moment you do.

What GroundEval produces

The scores are more than a report card

GroundEval evaluates agents against a deterministic state policy before they see production traffic. It generates questions from a configured event log, artifact corpus, and access policy, lets the agent answer, and then scores both the final answer and the trajectory that produced it. No LLM judge. The correctness signal comes from state.

What comes out the other end is richer than a single aggregate score. Each run surfaces a violation rate (how often the agent crossed access, temporal, or subsystem boundaries), a trajectory score (whether the evidence path was valid under the task constraints), and a compliance-adjusted combined score that penalizes governance violations even when the final answer looked right. It also gives you per-question failure reasons, so you can see exactly which failure class each breakdown belongs to.

Violation rate
Did the agent cross boundaries?

Aggregates actor-gate violations, subsystem violations, and horizon violations across all recorded tool calls in the trace. High here means the agent is reaching for evidence it shouldn't have.

Trajectory score
Did it follow a valid evidence path?

Checks subsystem coverage for absence claims, visibility-cone discipline for perspective questions, and causal mechanism identification for counterfactuals. A correct answer through an invalid path still fails here.

Compliance-adjusted score
Can it overcome its own violation rate?

Applies a quadratic penalty for governance violations. At a 50% violation rate, the combined score is quartered. An agent cannot answer its way out of a high violation rate.

Per-question failure reasons
Which failure class is it?

Each failure is tagged: temporal leakage, permission violation, invalid absence, causal reversal, ungrounded citation, cross-user leak. The failure type tells you what to watch for in production.

The point is that these outputs aren't abstract. They map directly onto the decisions you have to make about where human oversight goes.

The routing argument

Eval output as a signal for where oversight belongs

Here's the argument in concrete terms. Suppose you run GroundEval on your support agent before shipping it. The Perspective track comes back with a violation rate of 0.124, meaning about one in eight tool calls crossed a role boundary. The Silence track scores 0.42 on trajectory, meaning the agent often claims absence without adequately searching the expected places. The Counterfactual track is clean.

That profile tells you something specific. The agent has a measurable tendency to reach across role boundaries when answering questions about what a given actor could have known. It also tends to under-search before saying something doesn't exist. Counterfactual reasoning over your event log, by contrast, appears sound.

Now consider what targeted HITL placement looks like against that profile versus what blanket HITL looks like.

Blanket HITL

Human reviews every agent response before it reaches the user. The team sees 400 reviews a day. Most are fine. Reviewers start skimming after week two. The volume is unsustainable and the oversight degrades quietly.

HITL placed against the eval profile

Human review triggers on cross-role retrieval attempts and on any response that asserts absence. Counterfactual answers route without review. The review queue reflects actual risk. Reviewers can do the job because the volume is proportional to the real failure rate.

The difference in operational cost is significant. But the difference in the quality of the oversight is arguably more important. A reviewer looking at 40 flagged responses a day because those responses were flagged for a specific reason is doing real work. A reviewer looking at 400 responses because someone decided everything needs review is doing theater.

Targeted HITL isn't less safe than blanket HITL. When reviewers can actually engage with what they're reviewing, it's considerably safer.

The second-order argument

Some workflows don't need HITL at all

There's a stronger version of this argument that's worth naming directly. Targeted HITL placement isn't just about routing the right questions to reviewers. It's also about identifying the workflows where human oversight can be removed entirely because the eval showed the agent's evidence paths are clean under that domain config.

If the Counterfactual track came back with a violation rate of 0.000 and a strong trajectory score, that's not just a positive signal. It's a case for removing the review checkpoint on counterfactual responses entirely. The eval proved the agent follows valid causal evidence paths in this domain. Keeping a human in the loop on those responses isn't safety, it's overhead that costs reviewer attention that should be going somewhere else.

This is what makes GroundEval's determinism property matter beyond the obvious benefits. Because re-scoring an identical trace under an identical configuration always yields an identical score, the eval can serve as a regression gate. When you change the retrieval backend, update the prompt, or swap model versions, you re-run the eval against the same policy and see exactly what changed. If a workflow that previously had clean trajectory scores develops violations after a prompt change, the regression gate catches it before it reaches production, and the HITL routing updates accordingly.

Eval signal What it suggests about HITL placement
High violation rate on Perspective Flag cross-role retrieval attempts for review. The agent is reaching outside visibility cones.
Low trajectory score on Silence Intercept absence claims before they reach the user. The agent is under-searching.
Low answer score on Counterfactual Review causal claims in the domain. The agent is misidentifying or reversing causal direction.
High compliance-adjusted score, low violation rate Consider removing HITL for this track and workflow. The evidence paths are clean.
Score regression after a prompt or model change Restore or tighten HITL on the affected workflows until the regression is understood.
The epistemic shift

Deploying a characterized system is different from deploying an unknown one

The conventional framing treats HITL as a permanent feature of agent deployment, something you add to compensate for a system you can't fully trust. That framing makes sense when you genuinely can't characterize the system's behavior. It stops making sense when you can.

GroundEval's bet is that for agents operating over stateful domains with defined access policies and event structures, characterization is achievable. Not in the sense of predicting every possible response, but in the sense of knowing the failure class distribution before anything touches production. You know the agent violates role boundaries at a rate of 12% on perspective questions. You know it under-searches on absence claims. You know its causal reasoning in this domain is sound. That's a risk profile, not a guarantee, but a risk profile is exactly what you need to place oversight deliberately.

The teams that will get this right aren't the ones that add more HITL. They're the ones that understand what their agent actually does before shipping it, and then put oversight precisely where the evidence says it belongs.

Running GroundEval before deployment doesn't eliminate the need for human oversight. It changes the question from "should we add HITL?" to "where should we put it?" That's a much more tractable question, and it has a data-backed answer.

Getting started

The authoring cost is front-loaded and reusable

The honest thing to say about this is that getting to a characterized system requires writing the evaluation policy. That means an event log, an artifact corpus, an access policy, and a config declaring what correctness looks like in your domain. GroundEval ships with five ready-to-run domain examples covering enterprise support, cybersecurity, healthcare, finance, and legal workflows, and the README walks through a solo dev scenario you can stand up in under fifteen minutes using LLM-generated synthetic data.

But the authoring cost is front-loaded. Once the policy exists, it runs again across model versions and prompt changes without being re-authored. The eval that characterized your agent before the first deployment is the same eval that catches regressions six months later. The HITL routing decisions you made against the initial profile update automatically when the scores change.

That's the compounding benefit. The work you put in before the first deployment keeps paying off every time you change something downstream.

Related writing