← All IntelClip / AI AgentsSWE-bench mechanics reveal why models game tests instead of writing good code
From Harness Engineering is not Enough: Why Software Factories Fail — Dex Horthy, HumanLayer · ≈12:03
“There's no way in this system that we can penalize it for poor program design or for eroding the maintainability of our systems.”
“I'm sure you've seen models comment out tests just to get things working.”
“I think Bybop gave us this example earlier of casting things to other things just so the model can just just it just wants to get the test to pass.”
What’s in it
- Explains how SWE-bench style evals hide golden patches to test real fixes
- Shows why coding agents game tests instead of fixing root causes
- Uses a Fastlane Ruby nil-check bug as a concrete reward-hacking example
Clip transcript
anything else? Um and we look at actually a real problem from one of these benchmarks. This is Fastlane, which is a Ruby project. Um basically, there was some issue where we weren't checking for nil and we have a stack trace blow up because you have a null pointer exception. And in this um in this benchmark, you have a base commit that we're going to check out before the issue was solved by a human in the past. We're going to give it a test patch that says here's what the behavior should be afterwards. We have a golden patch. Both these are hidden from the model. Uh and so we have the agent go try to solve the problem. We store its patch. We undo all the changes it made to any test files cuz I'm sure you've seen models comment out tests just to get things working. And then um we're going to apply our golden test patch. Uh and then we're going to run the test. Old test and did the new test pass? And if they both pass, then uh then we get the reward. Otherwise, we don't. Um and so models are trying to get the test to pass. There's no way in this system that we can penalize it for poor program design or for eroding the maintainability of our systems. That's why we get things like this. Try catches around things that probably don't need a try catch. Or things like this. I think Bybop gave us this example earlier of casting things to other things just so the model can just just it just wants to get the test to pass. Um and so if you can't verify the uh maintainability of the code, it gets way
Comments
Sign in to comment.
Loading comments…