EAU: Environment-Agent-User Co-evolution for Training User-Centric Agents
Min Cai, Dan Zhang, Gao Xing, Libin Ma, Zhaohui Xu, Xi Ye
cs.AI, cs.CL, cs.LG
2026-10-12
A coding agent hot-swaps the user simulator, rewards, and hyperparameters during multi-turn RL training, beating the strongest baseline by ~15% overall and 36.7% on ColBench.
For agents that interact with users over multiple turns, the learning signal is produced jointly by three things: the policy, the LLM user simulator, and the environment. Simulators drift off persona, leak answers early, and flip intent between similar episodes; environments ship silently failing tools and verifiers that reject correct trajectories. Prior work mostly patches downstream, with reward shaping for partial progress or denser auxiliary supervision, but the source of the noise stays fixed. When a verifier kills a good trajectory, or the simulator volunteers information the agent was supposed to elicit, no reward tweak recovers that interaction. And as the policy improves, a fixed simulator keeps producing redundant trajectories. EAU moves the intervention upstream: diagnose and revise the interaction process itself while training runs.
EAU is a meta-agent instantiated with a coding agent (Claude Code on Claude Opus-5 by default, Codex also tested). It reads source code, training logs, and trajectories from a local filesystem at fixed intervals, decides whether a problem lives in the policy, the simulator, the environment, or the RL configuration, and acts through a pre-declared set of knobs:
Three benchmarks (UserGym, ColBench, τ²-bench) across two backbones (Qwen3-4B, Qwen2.5-7B-Instruct):
| Setting | Best baseline | EAU | Gain |
| Overall (UserGym+ColBench), Qwen3-4B | 0.545 (InfoPO) | 0.627 | +15.0% |
| Overall, Qwen2.5-7B-Instruct | 0.544 (InfoPO) | 0.615 | +14.7% |
| ColBench success, Qwen3-4B | 0.439 (InfoPO) | 0.600 | +36.7% |
| UserGym avg, Qwen3-4B | 0.559 (InfoPO) | 0.622 | +11.3% |
| τ²-bench avg, Qwen3-4B | 18.5 (PPO) | 21.5 | +16.2% |
The 4B model's 0.627 overall also clears the evaluated closed-source models, Gemini-3-Flash (0.606) and GPT-4.1 (0.568), and reaches 2.023 on Inten., a UserGym environment held out during training (InfoPO 1.862). Three ablations hold up: the hybrid simulator slightly beats LLM-only while symbolic-only is worse (ColBench Pass 0.294 / 0.284 / 0.229); a generic meta-agent stripped of the symbolic user and the intra-run skill is unstable, dropping Qwen2.5 UserGym from 0.568 to 0.512; EAU stacks on UserRL (13.8→20.8) and InfoPO (18.0→21.0), so the gain is not PPO-specific. The appendix intervention log is the most convincing part: a min-questions counter that ignored turns which both asked and answered a question deadlocked 41% of episodes; repairing the code helped, while raising the threshold further was neutral to harmful. Setting facts-per-reply from 1 to 3 made the simulator dump an 837-character reference solution, and was reverted. On ColBench, EAU proactively restarted its first three runs; run five, only the second completed run, passed the prior state of the art.
"Use an LLM to optimize LLM training" has mostly meant prompt and hyperparameter tweaks; this paper makes the training system itself an editable object at runtime, covering simulator behavior, reward rules, and environment constraints, with decisions drawn from training-side signals alone. For teams running agent RL with user simulators, where unstable rewards are a known pain point, it is working evidence for treating training infrastructure as code. The ColBench gain of 36.7% came from reproducible moves like fixing a counter bug and tightening disclosure rules. One caveat on the nature of the gains: they concentrate on ColBench, a coding benchmark the backbone already handles well; the paper itself suspects EAU elicits existing capability rather than raising the ceiling.
The appendix lists all 15 knob writes, two measured harms, and three retracted attributions, which is rare transparency. The hard limits: