What it is
SWE-bench is a test for AI coding systems built from real work. Its full set has 2,294 tasks drawn from issues and pull requests in 12 popular open-source Python projects. For each task the AI gets the project's code and the bug report, then has to write a patch.
How it is graded
The grading is mechanical. After the AI's patch is applied, the project's own tests run. If the tests that failed before now pass, and the tests that passed before still pass, the task counts as solved. A score is the percentage of tasks solved. No human has to judge the answer.
That makes it more realistic than a quiz of small puzzles. The AI has to find the right files in a large codebase, understand the problem and change the code without breaking anything else.
SWE-bench Verified
Some original tasks were flawed: vague descriptions, or tests that rejected valid fixes. In August 2024, OpenAI worked with the benchmark's authors to release SWE-bench Verified, a 500-task subset that human annotators judged clear and solvable. It is the version most labs quote when they report a "SWE-bench" score.
How to read a score
- A score is only meaningful alongside the setup. The same model can score very differently depending on the agent harness around it, the tools it can use and how many attempts it gets.
- Changing how a model shows its reasoning can move the result. A lab may report both numbers.
- Like any AI benchmark, it can be gamed or leaked into training data, and it covers Python bug fixing, not every kind of programming.
- Models that find a shortcut to pass tests without really fixing the bug are showing reward hacking.
Why you should care
If you choose a model for coding work, SWE-bench is a useful first filter, because it measures finishing real tasks. It is not a substitute for trying the model on your own codebase, where your conventions, tests and languages differ.