Agent benchmark
SWE-bench Verified is a public set of 500 real GitHub issues from 12 open-source Python projects, each judged by the project’s own tests. We gave every one of them, once, to myide’s agent and let the official SWE-bench harness judge the result — no sampling this time. Run from 14 October 2026, 06:31 UTC to 15 October 2026, 14:53 UTC.
SWE-bench Verified: all 500 tasks
Version measured: the agent engine of 14 October 2026 (last release “20261014-preuves”), frozen at the start and identical for all 500 tasks. The releases of 15 October 2026 now running on myide.tech — cut replies repaired, cloud missions that resume instead of stopping — were not measured here.
- Tasks resolved (official harness)
- 346/50069.2%
- 95% confidence interval
- 65.0% – 73.1%
- Median agent time per task
- 66 s
- Model cost per task (average, upper bound)
- $0.130
49 of 500 missions ended unfinished, and 43 tasks hit by DeepSeek’s outage of 15 October had no agent attempt: they were replayed under a rule written beforehand. Method, incidents, results by repository and by difficulty, the 500 tasks one by one and the 13 October sample are on a dedicated page.
Cost by outcome
Computed from the 500 published attempts, without changing their outcomes. Estimated provider costs, not credit prices or a customer invoice.
| Group | Count | Mean model cost |
|---|---|---|
| Resolved attempts | 346 | $0.0799 |
| Unresolved attempts | 154 | $0.2417 |
| Incomplete missions (overlap both groups) | 49 | $0.3191 |
Total benchmark spend divided by resolved tasks (including failed-attempt spend) : $0.1875.
Campaign : swe-bench-verified-20261014-20261015. All 500 outcomes and calculations (JSON).
All SWE-bench Verified results →
Known defects
myide is a young product. These are the defects we found while measuring it and while looking at real missions, with what has become of each one.
A failed step could undo every change of a mission · Fixed
When a tool failed and the agent did not get past it (a write outside the project, a protected path, an edit that no longer matched), the mission ended in error and myide undid all its writes. 3 of the 50 SWE-bench tasks ended with no change for that reason, including one where the agent had already edited the right file. Fixed on 14 October 2026: a refused path no longer blocks the mission, and correct files are kept; only a file left broken is still restored. Measured on the 500 tasks: no mission ended in error over a refused path; 2 of 500 ended in error — one cut by a timeout at the model provider, one stopped by the import check described below.
The syntax check called written files “pending” · Fixed
After a file was written, the check tool still said it was “not yet on disk”: 214 of 218 such checks on 13 October 2026, a misleading message the agent could act on. Fixed on 14 October 2026: it now says so only when the checked version is really not on disk. On the 500 tasks, the message appears 28 times, in 10 missions, in the logs we keep (the last 300 events of each mission), against 218 times in the 50 missions of 13 October; we have not checked each of the 28.
Correct proofs read as missing · Fixed
myide calls a result verified only when the agent quotes an exact fact from a check it ran. The first full 500-task SWE-bench run, started on 14 October 2026, was stopped after 23 tasks: 13 missions were marked unfinished although most of the facts they quoted were in the outputs. The check did not read two facts in one quote (“Ran 75 tests” and “OK”) or a shortened one, and the answer given after the reminder often lost the summary of the work. Fixed on 14 October 2026: on those 23 missions, 78 of 84 quoted facts are now recognized instead of 60, and the summary is kept. The stopped run is not counted; the 500 tasks started again from zero. On those 500 tasks, 24 missions still concluded with a summary but at least one point the agent could not prove, and count as unfinished; 14 of them resolved the task.
Missions that stop without concluding · Still open
23 of the 50 SWE-bench missions stopped without concluding: 9 of them after several rounds without progress, often within 2 to 4 minutes of their 30, 6 of those unresolved. Their changes were kept and judged; in myide you have to reply “continue”. Since 14 October 2026 the agent is warned once and told to change approach before the stop. Measured on the 500 tasks with that engine: 49 of 500 missions ended unfinished, 5 of them after rounds without progress; on the same 50 tasks as on 13 October, 7 instead of 23. Of the 49, 25 stopped before concluding (replies cut several times in a row 6, turn limit 6, no progress 5, a requested visual check not done 4, the 30-minute limit 3, errors left 1) and 24 concluded with a point they could not prove; 21 resolved the task anyway. Since 15 October 2026, a cloud mission resumes by itself instead of stopping, except on a real blockage, the cost guard or your credits; not measured on SWE-bench yet.
The import check does not see compiled modules · Still open
Before a mission concludes, myide checks that each import of a changed Python file points to a module of the project. A module that exists only compiled (Cython, such as sklearn.utils.sparsefuncs_fast) or is created at import time (six.moves) is reported missing: 43 times in 6 of the 500 SWE-bench missions. In scikit-learn-9288 the mission ended in error and its changes were never applied, although Python imported the file without error; the other 5 missions got past it and resolved their task. Not fixed yet.
Requests for changes answered in read-only mode · Fixed
On 13 October 2026, on a user’s 3D map project, “help me code this…”, a bug report (“when I click play nothing is animated”) and five “Continue” in a row were routed to read-only question mode: the agent could only describe the problem. Fixed on 14 October 2026: these requests now reach the agent, and “continue” under a “Resume” banner resumes the mission.
Missions frozen by a very large file · Fixed
Reading a 23 MB JSON file written on a single line returned the whole line; the mission log overflowed and four missions stayed “running” with no answer. Fixed on 14 October 2026: such a line is cut and the agent is told how to explore it.
No visual check on heavy 3D pages · Still open
On the same 3D map, the screenshot tool timed out or lost the page every time, so the agent finished without ever seeing its result: trees drawn 3 km tall hid the whole city, and the map was mirrored.
A requirement claimed without being checked · Still open
The brief excluded the Bois de Boulogne and the Bois de Vincennes; the agent wrote in its code that clipping by district removed them. It did not: both woods belong to districts, and 688 of their buildings were still on the map.
Everyday tasks: 12 October 2026, 8 tasks × 3 runs
Eight tasks of the kind people bring to an AI coding agent — a landing page with a booking form, a cart with three reported bugs, two features in a to-do app, a React + Vite app with tests, a Node.js API, a Python module, a one-cent rounding bug, a Python class — each run three times, then judged by our own verifiers, validated beforehand on reference solutions. The requests were written in French.
- Runs passing the independent check
- 21/24
- Same check, morning series before the fix
- 18/24
- Median time per run
- 47 s
- Average model cost per run
- $0.043
| Task | Before the fix | After the fix: time per run | Model cost (average) | Independent check |
|---|---|---|---|---|
| Landing page with a validated booking form | 0/3 | 80 s · 148 s · 74 s | $0.089 | 3/3 |
| Cart page with three reported bugs | 3/3 | 82 s · 58 s · 60 s | $0.034 | 3/3 |
| Two features in an existing to-do app | 2/3 | 66 s · 75 s · 74 s | $0.042 | 2/3 |
| React + Vite + TypeScript contacts app with tests | 3/3 | 476 s · 148 s · 75 s | $0.086 | 3/3 |
| Node.js books API | 3/3 | 24 s · 32 s · 36 s | $0.028 | 3/3 |
| Python slugify module with a length limit | 1/3 | 16 s · 19 s · 20 s | $0.016 | 1/3 |
| One-cent VAT rounding bug (ticket #142) | 3/3 | 28 s · 13 s · 15 s | $0.025 | 3/3 |
| History and undo in a Python inventory class | 3/3 | 16 s · 20 s · 21 s | $0.022 | 3/3 |
Landing page with a validated booking form — Morning: asked to work “in this empty folder” (“dans ce dossier vide”), the agent wrote the three files into a new sub-folder named “vide” (“empty”), 3 runs out of 3. The landing page was then run 9 times in the afternoon, across two releases: 8 passed — files at the root, though 5 runs also left a stray vide/index.html — and 1 failed: its replies were cut several times in a row and its changes were never written to disk. The table shows the last 3 runs (all clean). All three still ended with “Not verified” on points our check confirmed — twice on “3 files created”, with the three files there.
Two features in an existing to-do app — Run 3 failed: the counter read “0 tâches restantes” where the request required exactly “0 tâche restante”, and the emptied list was not saved — yet the agent declared the task verified. A reasoning error of the model; the same failure happened once in the morning series.
Python slugify module with a length limit — Runs 1 and 3 failed one check out of 19: with max_len 13, slugify returned “un-deux” instead of “un-deux-trois”, which is exactly 13 characters — and the agent declared both runs verified. A reasoning error of the model (the same check failed twice in the morning series). slug.py and its tests were written to disk in all 6 runs of the day.
The agent’s own verdict: in 11 of 24 runs it ended with “Not verified” on at least one point although our check passed; in 3 runs it declared the task verified although our check failed (the to-do and Python failures above).
How we measured on 12 October
- Same agent engine and included model as myide.tech (DeepSeek Flash), in a disposable container, in “agent” mode: no hint, no retry, no human help.
- Two series the same day: 05:26–06:33 UTC, then 16:49–17:38 UTC after the release “20261012-corrections-banc”, which fixed what the morning series had found (the landing page also after a second release, “20261012-dossier-courant”). The table shows both; the figures above are the afternoon series. Six extra landing-page runs made between the two releases are described under that task, not hidden.
- Model cost: tokens counted by myide × $0.28 / $0.42 per million (input / output), the rate of myide’s own usage meter.
Everyday tasks: 5 and 10 October 2026
We gave myide’s agent real coding tasks — a new site, a bug hidden behind an unrelated request, a feature in an existing app, a tested API, a Python module — then checked every result ourselves, outside myide. Measured on 5 October 2026.
- Runs passing the independent check
- 14/17
- Median time per task
- 22 s
- Average model cost per task
- $0.017
- Runs ending with a “Verified” line
- 12/17
Results
| Task | Time per run | Tool calls per run | Model cost | Independent check |
|---|---|---|---|---|
| New one-page site with a validated form | 50 s · 47 s · 60 s | 26 · 25 · 21 | $0.025 · $0.040 | 3/3 Headless browser: no console error; an invalid e-mail address is refused with a message. |
| Requested feature on a page that crashes at load | 26 s · 22 s · 34 s | 19 · 15 · 12 | $0.012 · $0.023 | 3/3 Headless browser: no console error (the page’s own crash at load had to be found and fixed); “Clear all” empties the list. |
| Feature in an existing to-do app | 25 s · 83 s · 31 s | 16 · 25 · 12 | $0.017 · $0.022 | 3/3 Headless browser: “Clear completed” removes the checked task and keeps the other one. |
| Node.js API with a test, run in the terminal | 10 s · 8 s · 15 s | 8 · 7 · 9 | $0.0049 · $0.017 | 3/3 node --test re-run by us on the files produced, outside myide. |
| Python function with unit tests | 10 s · 8 s · 13 s · 16 s · 16 s | 7 · 6 · 7 · 10 · 9 | $0.0053 · $0.0048 · $0.017 · $0.016 | 2/5 python -m unittest re-run by us, plus our own checks of slugify(). |
New one-page site with a validated form — Third run (60 s) was on myide.tech on 10 October 2026: index.html, style.css and app.js were written; invalid e-mail is blocked with a message. The agent’s “Verified” line failed on a folder criterion even though the three files were there. Follow-up: still present on 12 October 2026, after that day’s release (see “What became of the 10 October bugs”).
Requested feature on a page that crashes at load — Third run (34 s) was on myide.tech on 10 October 2026: the load crash was removed and “Clear all” empties the list. The agent’s “Verified” line failed on its own emptying criterion even though its preview showed Milk and Bread gone. Follow-up: the same kind of false “Not verified” was still seen on 12 October 2026 (see below).
Feature in an existing to-do app — Third run (31 s) was on myide.tech on 10 October 2026: “Clear completed” removes the checked task, the other one stays, and the remaining count updates.
Node.js API with a test, run in the terminal — Third run (15 s) was on myide.tech on 10 October 2026: node --test passed on the VPS (2/2). The agent’s own “Verified” line failed on a folder criterion even though the files were there. Follow-up: still present on 12 October 2026 (see below).
Python function with unit tests — Run 2 failed: the requested folder did not exist yet, and the agent worked in the similarly named folder left by run 1 — it flagged that ❌ itself. Fixed the same day (a folder named in the request is now created), then run 3. On 10 October 2026 two more runs on myide.tech failed: the agent syntax-checked pending files and never wrote slug.py to disk. Follow-up: not fixed for certain — the same end result (changes prepared, never written to disk) was seen again once on 12 October 2026, in a landing-page run, though not in the 6 Python runs of that day nor in the 50 SWE-bench missions of 13 October (see below).
What became of the 10 October bugs
Python: files checked while still pending and never written to disk (2 runs on myide.tech, 10 October).
Not fixed: seen again on 12 October — On 12 October the Python task wrote slug.py and its tests to disk in 6 runs out of 6. But one landing-page run, after that day’s releases, ended the same way: its replies were cut several times in a row and its changes stayed unapplied, never written to disk — 1 run out of the 30 made after the fixes. Not seen in the 50 SWE-bench missions of 13 October.
“Verified” line failing on a folder criterion although the files were there (landing, bugfix and API, 10 October).
Still present on 12 October — After that day’s release, 11 of 24 runs still ended with “Not verified” on at least one point although our independent check passed all 11 — twice on “3 files created” for the landing page, with the three files present. Not fixed yet.
Related folder bug found on 12 October: asked to work “in this empty folder”, the agent created a sub-folder named “vide” (“empty”).
Fixed on 12 October 2026 — Landing page: 0 runs out of 3 before the releases “20261012-corrections-banc” and “20261012-dossier-courant” (files in vide/). Afterwards every run that wrote its files put them at the root; 5 intermediate runs still left a stray vide/index.html, the last 3 runs none.
How we measured
- Each task was sent at least twice to the agent, in separate runs, in “agent” mode with the model included in every plan (DeepSeek), and nothing else: no hint, no retry, no human help.
- Time runs from sending the request to the agent’s final answer, including every file write, command, preview and browser check it chose to do.
- Model cost is the provider cost estimated by myide’s own usage meter for that task, read once the meter had settled (second run).
- The check is ours, not the agent’s: a headless browser opens the result and clicks through it, and tests are re-run with node --test and python -m unittest on the files produced. A task only passes if that check passes.
Limits, honestly
- Two runs per task: language models vary from one run to the next — the same task took 25 s once and 83 s the other time — so treat these numbers as typical, not as a guarantee.
- 5 October 2026: measured on a development machine running the same code as myide.tech. 10 October 2026 on production (myide.tech): landing 60 s, bugfix 34 s, to-do 31 s, Node API 15 s (all four passed the independent check); Python failed twice (pending files never written). The agent’s own “Verified” line failed on a folder criterion for landing, bugfix and the API even when the files were there. Status of both: unwritten changes were seen again once on 12 October 2026 (1 run of the 30 made after that day’s fixes) and not in the 50 SWE-bench missions of 13 October; the false “Not verified” was still present on 12 October (11 runs out of 24).
- Small, well-defined tasks. Larger projects take longer and may need several exchanges.
- Few runs per task: 2 to 5 here, 3 on 12 October. More runs per task would make the medians more reliable; we have not run them yet.
- We publish no figures for other tools on this page. See the comparisons for documented differences instead.
The exact requests
Copy any of them into myide to reproduce the run. Only the working folder name changed between runs.
New one-page site with a validated form
In the folder bench-landing/, create a one-page website for a bakery (index.html, style.css, app.js) with a contact form whose email field is validated in JavaScript: an invalid address shows an error message and the form is not sent. Then check it in the preview.
Requested feature on a page that crashes at load
In the folder bench-bugfix/, add a "Clear all" button that empties the grocery list, then check it in the preview.
Feature in an existing to-do app
In the to-do app in bench-feature/, add a "Clear completed" button that removes the checked tasks, and show the number of remaining tasks. Check it in the preview.
Node.js API with a test, run in the terminal
In the folder bench-api/, create a small Node.js HTTP server without any dependency (server.js) with GET /health returning {"ok":true} as JSON, export a function to start it, and write a test with node:test (server.test.js) that starts it on a free port and checks the response. Run the test in the terminal and make sure it passes.
Python function with unit tests
In the folder bench-python/, write a Python module slug.py with a function slugify(text) that lowercases, removes accents, replaces runs of non-alphanumeric characters by a single hyphen and trims hyphens, plus unit tests with unittest in test_slug.py (at least 5 cases, including "Crème brûlée !" -> "creme-brulee"). Run the tests and make sure they pass.
Opens the IDE and the qualitative bench. The numbers above stay the official measurements; they change only when a new run is published.