Agent Training · Environment Engineering · Google Research

First surfaced in Tandemly Briefing — 2026-08-24.

The environment
is the bottleneck.

Google researchers built EnvHarness: a programmable layer that wraps an existing agent training environment and reshapes its behavior to target the specific agent learning in it, without touching the environment's internal logic or replacing its verifier. A companion tool, EnvRigger, automates the wrapping by watching the agent's own failure trajectories and synthesizing harness components aimed at the diagnosed weaknesses.

Core finding
Across five benchmarks in four domains, wrapping the existing environment beat both the unmodified original and domain-specific generation pipelines: up to 9.0 percentage points of gain on held-out tasks with 9.8% fewer execution steps.
scroll to explore

Static environments,
improving agents.

A training environment designed for a weak agent does not automatically become the right environment for a stronger one. Most pipelines never account for this.

Training environments for AI agents are built once. They're calibrated around a set of tasks during early development, stress-tested until the pipeline works, and then used for the rest of the project. Nobody goes back to redesign the environment just because the agent improved. The environment is a fixed backdrop, not an active participant in training.

This creates a slow leak. As the agent gets better, the challenges that once produced useful learning signals become routine. The agent's actual current weaknesses, the places where it consistently fails, are almost certainly different from the ones the original environment was built to probe. The training signal gets stale. Performance plateaus. Teams often reach for a bigger model or more compute when the real bottleneck is that the environment stopped teaching anything new.

The conventional response is to build more environments. Add new tasks, generate new scenarios, commission domain experts to write harder cases. This works, but it's expensive. The hardest part isn't designing new tasks. It's verifying them. A verifier that reliably checks whether an agent genuinely completed a task (not just whether its output looks plausible) takes real engineering effort to write and is brittle when generalized to new task types.

Prior work on automatically generating new environments ran into this ceiling. Generated tasks either came without reliable verifiers, or the generation process operated independently of the specific agent's failure modes, so new tasks were essentially random from the learning perspective. They might probe an area the agent was already strong in. They might avoid the exact weakness that was limiting progress. There was no closed loop between what the agent struggled with and what the environment asked it to do.

The question EnvHarness asks

What if, instead of replacing the environment, you wrapped it? Keep the original tasks, the original verifier, the original logic. Add a layer on top that reshapes behavior, difficulty, and observation based on what the current agent specifically gets wrong. Let the environment and the agent evolve together.

Wrap it first,
rebuild later.

EnvHarness is a plug-in layer. EnvRigger is the tool that fills it automatically. Together, they close the loop between agent behavior and environment design.

The harness sits between the agent and the existing environment. It intercepts what the agent sees, what actions are available, and what happens when the agent acts. A harness can make certain scenarios appear more often, alter the difficulty gradient for specific subtasks, or reshape observations for the situations where the agent fails most. Crucially, it does all of this without modifying the environment's underlying logic. The original verifier, the thing that says whether the agent succeeded, stays in place. Whatever engineering effort went into making that verifier reliable is preserved.

This design choice matters practically. Verifiers are expensive to build and easy to break when you generalize them to new task structures. By wrapping the environment rather than replacing it, EnvHarness separates two concerns that previous approaches conflated: the question of what tasks to generate (the harness handles this) and the question of whether the agent completed them correctly (the original verifier handles this). You keep what works. You add only what's needed.

EnvRigger automates the harness construction process. It treats the agent as a black box, collects execution trajectories from the current environment, and identifies failure clusters. From those clusters, it synthesizes harness components targeted at the specific patterns it found. A validation step follows: EnvRigger runs fresh rollouts to confirm that the wrapped environment actually provokes the diagnosed failure modes, and that correct handling of those situations still leads to success. If the validation fails, the harness is revised.

Before: static environment
The environment is fixed. Tasks were designed for an earlier version of the agent. The training signal reflects problems the agent already largely solved. New weaknesses go unprobed. Performance plateaus. Teams rebuild the environment or generate new tasks without a direct line to what the agent currently struggles with.
After: harness-wrapped environment
The environment adapts. EnvRigger observes where the current agent fails, synthesizes targeted harness components, and validates them against fresh rollouts. The original verifier stays unchanged. The environment now probes the agent's actual current weaknesses. Agent and environment co-evolve.
The key design constraint

EnvHarness reshapes behavior through standard interfaces. It does not require access to the environment's source code or any modification of its internal state machine. This means the harness is portable: it can be applied to environments that were built without extensibility in mind, including many of the off-the-shelf benchmark environments teams use in practice.

Held-out gains,
not just training wins.

The numbers matter only if they hold up on tasks the harness was not built to address. They do.

9.0pp
Held-out gain
Maximum improvement over the unmodified baseline on instances not seen during harness construction, across five benchmarks in four domains.
9.8%
Fewer execution steps
Agents trained with a harness-wrapped environment solved tasks in fewer steps on average, suggesting improved efficiency alongside improved accuracy.
2 beaten
Comparison baselines
EnvHarness beat both the original unmodified environments and domain-specific environment generation pipelines tuned to their respective domains.

The held-out figure is the one to focus on. A gain on training tasks could mean the harness overfit to its own construction conditions. Improving on held-out instances, tasks the harness never directly targeted, suggests the agent developed more general capabilities rather than patching specific patterns.

The comparison against domain-specific generation pipelines is also notable. Those pipelines were tuned for their respective domains, while EnvHarness uses only what it observes in the agent's trajectories, no domain-specific knowledge beyond the failure logs. Beating tuned domain baselines without that expertise suggests the trajectory-grounded approach is capturing something hand-designed alternatives miss.

The reduction in execution steps hints at a second benefit: a harness that keeps probing the agent's weaknesses may produce a better reinforcement learning signal than a static environment that the agent has largely figured out. A static environment reaches a floor of useful gradient information once the agent handles its fixed difficulty range. A harness that tracks current weaknesses keeps the signal fresh longer into training.

Scope to keep in mind

Results span five benchmarks in four domains. Numbers are reported as maximums across that range, so individual domains will vary. The paper did not run ablations on harness construction frequency or the number of EnvRigger synthesis rounds needed before quality plateaus. These are the questions a practitioner would want answered before committing to a harness-first workflow.

Who this changes
what for.

EnvHarness is most directly actionable for teams that train or fine-tune agents with RL or behavioral cloning inside a fixed task environment.

1
For teams with a stalled training run
If the training environment has not changed since the early checkpoints, it is almost certainly miscalibrated for the current agent. Before reaching for a larger model or more compute, check how old the environment is relative to the current checkpoint. A harness that probes the agent's current failure modes is a lower-cost intervention than rebuilding the environment or scaling the model.
2
For teams weighing an environment rebuild
The EnvRigger workflow offers a lower-cost first step: instrument failures in the existing environment, synthesize a targeted harness, and compare against the unmodified baseline on a held-out set. If the wrapped version matches what you'd expect from a rebuild, the rebuild is unnecessary work. The verifier you already have is the most expensive part to recreate, so preserving it has concrete value.
3
For evaluation engineers
The wrapping principle applies beyond training. Evaluation pipelines, red-teaming setups, and benchmark test sets all suffer from the same staleness problem: once the model improves relative to what the environment was designed to probe, the signal degrades. A harness layer that tracks the current model's failure modes and adjusts what scenarios it encounters can keep evaluation relevant across model versions without rebuilding from scratch.
4
For practitioners without a full EnvRigger implementation
The core insight is manually actionable: collect recent failure logs from your training environment, group them by failure type, and increase the frequency of those scenario classes in your training data or task sampling. This is a manual approximation of what EnvRigger does automatically. It doesn't require new infrastructure, and it closes the feedback loop that most static environments leave open.

Next steps
from here.

Concrete actions, starting with what you can do before touching any new infrastructure.

1
Read the paper
Huang, Wang, Han, Yan, Chen et al. (2026). "EnvHarness: Awakening Static Worlds for Agent Learning." Google. arXiv:2608.19880. The benchmark setups and harness construction protocol are documented there.
2
Audit your training environment's age
Note when your current training environment was last updated. Compare that date to your current model checkpoint. If the environment predates the model by several training rounds, it is a candidate for harness augmentation. Task completion rate and failure type distribution are the metrics to track.
3
Instrument failure trajectories before building anything new
Before designing new tasks or rebuilding the environment, collect the agent's recent failure logs and group them by failure type or subtask. This is the input EnvRigger uses. Even without the tool, the diagnostic step alone is useful: it shows whether failures cluster around specific scenario types or are distributed evenly, which tells you whether targeted harness components are likely to help.
4
Design a harness from the top failure clusters
For the two or three most common failure clusters you found, design targeted modifications: increase the frequency of those scenario types in task sampling, adjust the difficulty gradient for that subtask, or alter the observation format for the cases where the agent consistently fails. Keep the original verifier unchanged.
5
Validate on held-out instances before treating it as the new baseline
Run the wrapped environment and the original environment on a held-out task set that neither targeted directly. A gain on held-out instances is evidence the harness helped generalization. A gain only on in-distribution tasks is a sign the harness overfit to its construction conditions. Report both figures alongside execution steps per task.