Microsoft and Hugging Face Taught an AI Agent to Stop Pretending It Finished the Job
A new training method catches AI agents that report success while leaving the actual database in the wrong state. The results are striking, though the gap to the best frontier models stays wide.

Key points
- After 50 training steps, a Qwen3.8-27B AI agent completed 107 of 507 benchmark tasks correctly on every single attempt, up from 38, nearly tripling its reliability score.
- The training signal came from checking real database records, not from human graders or model self-assessment.
- The fine-tuned 27B model still trails Claude Opus 5 and Claude Opus 5.5, which each locked in 241 tasks on every attempt.
- ThinkingBox-Bench tests agents across five business sectors: retail, travel, auto insurance, neobank operations, and consulting IT.
- Microsoft and Hugging Face built the research jointly, with training code now publicly available on GitHub.
An AI agent, software that can carry out multi-step tasks on its own by calling tools and reading responses, has a failure mode that ordinary accuracy scores hide. It completes its steps, reports success, and leaves the underlying database wrong. The customer's ticket says resolved. The carrier exception behind it is still open.
That scenario kicked off this project. Researchers from Microsoft and Hugging Face built a testing environment called ThinkingBox specifically to catch it. Rather than judging whether an agent chose the right tool calls, ThinkingBox checks the terminal database state, the actual records left behind after the agent finishes, against what they should look like. Pass or fail comes from the database, not a human reviewer.
What did the training actually do?
That same database check, a binary pass-or-fail signal, became the reward in a reinforcement learning loop. Reinforcement learning (RL) is the family of techniques used to train game-playing AI: the system tries something, gets a score, then adjusts to score higher.
Using a method called GRPO for 50 training steps, the team fine-tuned Qwen3.8-27B, a 27-billion-parameter open model from Chinese AI lab Qwen. Training tasks came from outside the benchmark so the model couldn't simply memorise answers.
One concrete example from the published paper shows what changed. A traveller requests a room downgrade. Company policy requires manager approval first. Before training, the agent bypassed approval and changed the booking in 15 of 20 attempts. After training, it preserved the booking and payment state in all 20.
The headline numbers: pass@1, meaning average success across all attempts, rose from 51.70% to 60.78%. Observed 20/20, meaning tasks the agent completed correctly on every single one of 20 tries, jumped from 38 tasks to 107.
Should anyone care about the 20/20 metric?
Yes, and this is the part that matters most practically. A model that solves a task 19 times out of 20 looks great on a headline accuracy chart. For a production system touching real customer records, that one failure in 20 is a corrupted database row.
The benchmark's leaderboard makes the point sharply. Kimi-K3 solved 93.89% of tasks at least once but completed only 68 of 507 on all 20 attempts. The fine-tuned Qwen3.8-27B, a much smaller model, passed 107 tasks on every attempt. Consistency and coverage pull in opposite directions, and most benchmarks only report the coverage number.
We first reported the benchmark itself on 3 October in "The Agent Said It Was Done. The Database Knew Better.", and this training paper is a direct follow-on to that work. Microsoft's separate push to give IT teams control over agents, which we covered on 22 October, sits in the same frame: an agent that usually does the right thing isn't the same as one that reliably does it.
The gap to the frontier still matters. Claude Opus 5.5 scored 241 tasks on every attempt. The fine-tuned Qwen reached 107. RL on database signals closed a real gap, but not all of it. Separate research from arxiv.org published earlier this year found that RL training of this kind sharpens what a base model already knows rather than teaching genuinely new reasoning. The ceiling is still set by the base model underneath, which is the thing to watch as teams decide whether post-training a smaller open model is a credible alternative to paying for a frontier API.



