Design

From real sessions to verifiable tasks

Static benchmarks hand an agent a complete spec up front and grade only its final code. Real coding help is interactive — users clarify goals, add constraints, and correct mistakes across many turns. SWE-Together reconstructs that loop from real user–agent sessions and scores agents as collaborators, not one-shot solvers.

Pipeline from recorded user-agent coding sessions to the final TogetherBench task suite
Source-to-suite funnel. We start from recorded developer sessions and retain only cases with a public repository, recoverable pre-fix state, clear user intent, and an outcome that can be evaluated from code or public artifacts.
01

Real sessions

Every task comes from an actual user–agent coding session, not a synthetic prompt — the first-turn instruction is the user's verbatim initial request.

02

Verifiable state

From 11,260 recorded sessions we keep 109 with a recoverable repository state, a clear user goal, and an observable outcome such as submitted code changes.

03

Multi-turn intent

Intent is revealed incrementally — clarifications, added requirements, and corrections — so each task preserves the real interaction loop instead of one fixed instruction.

04

Anchored user simulator

A state-conditional LLM simulator keeps the original user's intents and intervention order, releasing feedback only when its trigger conditions arise in the agent's trajectory.

05

Scored by frozen rubrics

The final repository state is judged against task-specific, implementation-agnostic rubrics derived from repository inspection and original-session evidence.

06

Measures interaction, not just success

Beyond final correctness we report User Correction — how much corrective steering the user needed — and Intent Coverage, whether intents are conveyed consistently.

Representative replay traces showing questions, redirects, new requirements, and no-intervention turns
Replay traces expose the interaction process. Representative trials show when the simulated user asks for evidence, redirects an off-track implementation, adds scope, or stays silent while the agent continues.

Method

How a session becomes an evaluation

Each benchmark instance packages the original task, the repo state, the user simulator, and the scoring rubric as separate artifacts. That separation lets us test whether an agent can collaborate through corrections without letting the simulator or judge leak the answer.

Task artifact

Rebuild the coding problem from the original session.

A task contains the user's first message, a Docker environment pinned to the pre-fix commit, a structured summary of the original interaction, and frozen evaluation goals. The agent sees the same kind of workspace a developer would see, not the paper's analysis.

InputInitial user request plus repository state before the fix.
HiddenOriginal follow-up messages, scoring rubrics, and verifier scripts.
OutputA final repository patch after up to several user-simulator turns.
Task construction diagram showing instruction, environment, user simulator, and scoring artifacts
The benchmark task is assembled from independent artifacts: instruction, environment, simulator prompt, rubric, verifier, and original-session evidence.
Runtime loop

The user simulator responds to what the agent actually does.

After each agent turn, the trajectory is summarized into task progress, missing requirements, and observable failures. The simulator compares that state with the original user's intents and decides whether to stay silent, clarify, correct, or approve.

This keeps the interaction conditional: an agent that solves the issue early should not receive unnecessary hints, while an agent that misses a real follow-up requirement should still face it.

Runtime loop where the agent edits code, a summarizer describes progress, and the user simulator decides the next message
The simulator sees a structured progress summary rather than raw answer keys, preserving the original intervention order while adapting to the agent's trajectory.
State separation

Agent, simulator, and judge each get different evidence.

The coding agent operates in the task workspace. The simulator receives progress summaries and original-session intent anchors. The final judge receives the completed patch and frozen rubric. Keeping those views separate reduces leakage and makes the benchmark easier to audit.

Separation between agent workspace, user simulator state, and final judge evidence
State separation is the core guardrail: the agent must earn progress through edits and responses, while the simulator and judge use task-specific evidence only in their assigned roles.
Diagnostics

We report collaboration signals alongside correctness.

Final correctness is scored by an implementation-agnostic rubric. Interaction quality is tracked separately through User Correction and Intent Coverage, so the leaderboard can distinguish agents that solve tasks smoothly from agents that need repeated steering.

Interaction diagnostics for user correction and intent coverage
Correctness answers whether the final patch works; interaction diagnostics answer how much corrective pressure was needed to get there and whether user intent was conveyed consistently.

Results

What the benchmark reveals

The clearest story is not another budget curve: stronger cohorts need less corrective steering, and efficiency separates models that finish with similar solve rates.

Correction Better cohorts need fewer steering turns after mistakes.
Efficiency Similar solve rates can still require very different time and tokens.
User Correction plotted against pass rate and stable solve rate across suite subsets
Correction. Cohorts with higher pass rates require fewer corrective turns across the full suite, active subset, and hard subset.
Stable solve rate plotted against wall clock time and output token usage
Efficiency. Stable solve rate is plotted against wall-clock time and output tokens; better systems move toward the upper-left region.

Composition

What's in the suite


FAQ

Frequently asked questions

What makes TogetherBench different from single-turn benchmarks like SWE-bench?

Single-turn benchmarks test whether an agent can solve a task from one prompt. In practice, developers steer agents through multiple turns — redirecting, clarifying, and reviewing. TogetherBench captures this loop: a user simulator replays the original human interaction pattern, and the headline metric is the gain from turn 0 (first attempt) to the final turn after corrections.

How does the user simulator work?

Each turn, the coding agent's work is distilled into a structured summary — a compact digest of what changed, what's still broken, and what tests pass. A Gemini-based user simulator reads this summary alongside the ground-truth session notes, then decides what a human would say next: a correction, a follow-up question, a new requirement, or "looks good, stop." The simulator never sees the agent's raw code — only the summary.

Why use an agentic judge instead of test suites?

Narrow test suites reject correct solutions that take a different implementation path — OpenAI found 35.5% of SWE-bench test failures were false negatives. Our agentic judge (Opus 4.6 in an E2B sandbox) reads the full diff, runs the tests, and scores against weighted completeness goals. The judge score, not the raw test reward, is the headline ranking metric.

Where do the tasks come from?

Every task is reconstructed from a real developer session on a public GitHub repository (20+ stars). The instruction is the verbatim first user message (PII-redacted). The Docker environment clones the repo at the exact pre-fix commit with all dependencies installed. We currently have 109 tasks spanning TypeScript, Go, Python, Rust, and more — covering bugfixes, features, and refactors.