Evaluating Coding Agents and LLMs on Real-World Software Engineering Tasks

nebius · Research & Academia · 2026 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: benchmarking coding agents on real-world software engineering tasks

Nebius needed a reliable, decontaminated, infrastructure-stable benchmark for evaluating coding agents and LLMs on real software-engineering tasks before teams trust them in production.

Constraints:

Architecture

Nebius operates a SWE Bench leaderboard that collects fresh GitHub issues from the previous month, builds executable Docker environments, uses pull-request tests as verifiers, and runs the same evaluation harness across roughly 30 models every month. The pipeline creates task descriptions, sandbox snapshots, fail-to-pass and pass-to-pass tests, filters tasks, runs agents, and post-processes trajectories to catch cheating or reward hacking. The same infrastructure supports open-source releases of large software-engineering task datasets.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  fresh-issue-collector["Fresh issue collector"] --> task-description["Task description"]
  task-description --> evaluation-harness["Evaluation harness"]
  docker-sandbox["Docker sandbox"] --> evaluation-harness
  verifier-tests["Verifier tests"] --> evaluation-harness
  evaluation-harness --> cheating-detection-and-post-processing["Cheating detection and post-processing"]
  cheating-detection-and-post-processing --> leaderboard["Leaderboard"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Fresh issue collector Collects recent GitHub issues from permissive popular repositories. Task description
Task description Represents the original issue title and description given to the model. Evaluation harness
Docker sandbox Executable repository snapshot with installed dependencies and project environment. Evaluation harness
Verifier tests Fail-to-pass and pass-to-pass tests used to judge whether the issue was solved without regressions. Evaluation harness
Evaluation harness Runs each model against the same tasks, sandboxes, and verifiers. Cheating detection and post-processing
Cheating detection and post-processing Inspects trajectories and artifacts for reward hacking or solution leakage. Leaderboard
Leaderboard Publishes monthly model results for real-world software-engineering tasks. —

Data flow

Each month, fresh issues are collected from permissive popular repositories. The system builds a task description from the GitHub issue, creates a Docker sandbox with dependencies, derives verifiers from tests, filters for viable tasks, runs about 30 models through the same harness, and analyzes pass/fail behavior, infrastructure noise, and cheating patterns.

“every month we collect only fresh problems from the previous month and then assess the models' capabilities.”transcript, stated
“We also evaluate something like 30 models with the same harness, simple same harness.”transcript, stated

Why this architecture

The benchmark uses fresh monthly tasks and executable sandboxes because static public tasks contaminate models and gut-feel evals fail before production. Dockerized repositories and tests turn real GitHub issues into verifiable tasks, while a shared harness makes model comparisons consistent and post-processing guards against cheating.

“if you want to build some open truly decontaminated benchmark, um time splits are the only way.”transcript, stated
“everything is fun until you roll out something into the production and it just breaks down and clients are unhappy. So, I think that we need to evaluate everything.”transcript, stated

Models used: Coding agents · LLMs · SWE Bench leaderboard · Docker · Fail-to-pass tests · Pass-to-pass tests

Scale

Alternatives considered (roads not taken)

Use static public benchmarks.

Rejected because: Public benchmark questions and tests can be included in model training data, contaminating results.

“Most of the benchmarks, uh during their release, they release questions and solutions. So, implicitly or explicitly, this data can become a part of the pre-training”transcript, stated

Choose models by gut feeling or favorite prompts.

Rejected because: Informal checks do not predict production failures.

“you can rely on your gut feeling, vibe checks, or maybe one or two your most favorite questions to choose between the options.”transcript, stated

Evaluate only with fail-to-pass tests.

Rejected because: Pass-to-pass regression tests are needed to catch changes that solve one issue but break existing behavior.

“fail to pass. It is the test that should be failed before uh solving the issue, for example, and should be passed after. And pass to pass, it's something like a regression test.”transcript, stated

Patterns

eval-driven-development (coding-agent benchmarking)

Nebius evaluates many models monthly on fresh real-world software-engineering tasks before trusting them.

“Sweet bench leaderboard update every month.”transcript, stated

batch-offline-processing (benchmark execution)

The benchmark collects tasks, builds environments, and runs roughly 30 models through the same monthly harness.

“We also evaluate something like 30 models with the same harness, simple same harness.”transcript, stated

guardrails-io-filtering (benchmark integrity)

The pipeline post-processes trajectories and filters task artifacts to reduce cheating and benchmark leakage.

“we solve only with some kind of post-processing and trajectory”transcript, stated

synthetic-data-generation (training data release)

The evaluation infrastructure also supports large releases of task environments for training better coding models.

“same pipeline that we use for SWE Bench leaderboard to make two big open-source releases.”transcript, stated

Tradeoffs

Use fresh monthly tasks.

Chose Previous-month GitHub issues over Static benchmark releases.

Rationale: Fresh tasks reduce contamination but require ongoing collection and environment building.

“every month we collect only fresh problems from the previous month and then assess the models' capabilities.”transcript, stated

Use Dockerized executable environments.

Chose Real repository sandboxes with dependencies and tests over Question-only benchmark prompts.

Rationale: Real software engineering requires repository structure, tests, dependencies, and multi-turn execution.

“for the sandbox, you can call it environment or real environment, sandbox snapshot, but basically, it's just an executable Docker image with the installed dependencies”transcript, stated

Publish training datasets from the evaluation pipeline.

Chose Open-source task-environment releases over Keeping the pipeline only as a private leaderboard.

Rationale: The same infrastructure can evaluate models and create real-world environments useful for training.

“And it was used by some frontier labs to train better models.”transcript, stated

Gotchas (what bit them)

Benchmark contamination makes static tasks unreliable.

Root cause: Once benchmark questions and tests are public, they can enter model training data.

Resolution: Use monthly time splits and collect only fresh problems from the previous month.

“time splits are the only way. That's why every month we collect only fresh problems from the previous month”transcript, stated

Verifiers can overfit to implementation details.

Root cause: Some tests require exact substrings or overly specific behavior even when a solution is semantically correct.

Resolution: Inspect verifier quality and infrastructure noise as part of benchmark construction.

“test require the agent to generate exact substring in the error message. So, even with the correct solution, this past will this test will not be passed.”transcript, stated

Infrastructure noise can corrupt model comparisons.

Root cause: External resources, dependency problems, and environment time defaults can cause failures unrelated to model capability.

Resolution: Build stable Docker environments and minimize infrastructure noise during runs.

“you need a stable infrastructure because you need to minimize the infrastructural noise during your runs.”transcript, stated

Coding agents can reward-hack the benchmark.

Root cause: Agents may inspect tests, solution artifacts, or repository history in ways that bypass intended problem solving.

Resolution: Nebius uses post-processing and trajectory analysis to detect cheating behaviors.

“when models uh get better, actually, I believe that they may might like to tend to cheat even more and do some reward hacking.”transcript, stated

Evaluation

Nebius evaluates about 30 coding models monthly with the same harness on fresh real-world tasks. Each task has a GitHub issue description, Docker sandbox, and fail-to-pass plus pass-to-pass verifier tests, with additional checks for infrastructure noise and cheating.

Metrics: Monthly model ranking · Fail-to-pass tests · Pass-to-pass regression tests · Task viability · Infrastructure stability · Cheating or reward-hacking incidents · Open-source task dataset coverage

“We also evaluate something like 30 models with the same harness, simple same harness.”transcript, stated
“And the third one is a verifier. Basically, it's just a test from the pull request that solved some issue or implemented uh some feature.”transcript, stated

Outcomes

The talk provides concrete scale: about 30 models evaluated monthly, Docker images of 1 to 10 GB per task, roughly 30,000 released RL environments, and another dataset across 20 programming languages.

“we found at least two ways how models cheat.”transcript, stated
“Sweet bench leaderboard update every month.”transcript, stated