Methodik des Coding Agent Index
Überblick
Artificial Analysis bewertet Programmieragenten anhand umfassender Aufgaben aus der Softwareentwicklung. Ziel ist es, zu messen, wie gut Agenten realistische Programmieraufgaben erledigen und wie sich ihre Leistung hinsichtlich Ergebnis, Zuverlässigkeit, Tokenverbrauch, Kosten und Ausführungszeit unterscheidet.
Die öffentlichen Ergebnisse auf der Seite des Coding Agent Index basieren auf Benchmark-Versuchen auf Aufgabenebene. Sie werden zu Werten je Evaluation, gepoolten Effizienzmetriken und dem Artificial Analysis Coding Agent Index zusammengefasst.
Diese Seite erläutert, wie der öffentliche Artificial Analysis Coding Agent Index aufgebaut ist, welche Benchmark-Komponenten derzeit enthalten sind und wie die öffentlichen Metriken für pass@1, Kosten, Tokenverbrauch und Ausführungszeit abgeleitet werden.
Artificial Analysis Coding Agent Index
Der aktuelle öffentliche Artificial Analysis Coding Agent Index ist ein zusammengesetzter Benchmark-Wert, der aus den konfigurierten Benchmark-Komponenten der öffentlichen Programmieragenten-Suite gebildet wird.
Der Index soll nicht sämtliche Programmierarbeit auf einen einzigen Benchmark-Aufgabentyp reduzieren. Verschiedene Programmieragenten können bei Fragen und Antworten zu Repositorys, Implementierungs- und Fehlerbehebungsaufgaben sowie terminalintensiven Workflows sehr unterschiedlich abschneiden. Der Index fasst diese verschiedenen Benchmark-Familien in einer übergeordneten Leistungsansicht zusammen, während die Aufschlüsselung nach einzelnen Benchmarks erhalten bleibt.
Indexkomponenten
Der aktuelle öffentliche Index umfasst folgende Benchmark-Komponenten:
| Evaluation | Bereich | Aufgaben | Versuche pro Aufgabe | Antworttyp | Bewertung |
|---|---|---|---|---|---|
| DeepSWE | Softwareentwicklung über lange Zeithorizonte | 113 | 3 | Code-Patch / Änderungen am Repository | Programmverifizierung mit pass/fail, pass@1 |
| Terminal-Bench v2 | Agentische Terminalnutzung | 84* | 3 | Terminalbasierte Aufgabenausführung | Testsuite mit pass/fail, pass@1 |
| SWE-Atlas-QnA | Fragen und Antworten zu Repositorys | 124 | 3 | Freitextantwort | Scale AI Task Resolve Rate (binäres pass/fail), pass@1 |
* Terminal-Bench v2 enthält ursprünglich 89 Aufgaben; fünf Aufgaben schließen wir aufgrund von Kompatibilitätsproblemen mit der Umgebung aus.
Evaluierte Aufgaben
Der aktuelle öffentliche Index umfasst 321 evaluierte Aufgaben aus den 3 Benchmark-Komponenten.
- Add iterable collection combinators to true-myth
- Abort pending body reads on shutdown
- Add rolling min, max, median, and quantile methods
- Format BigQuery pipe syntax queries correctly
- Add unified manifest stream output across Helm commands
- Add a deterministic CookieStore with modern Set-Cookie parsing
- Preserve restored query state in persisted snapshots
- Add an error-accumulating Validated container
- Add a persistent analysis cache to Vulture
- Add multi-module memory snapshots to wazero
- Add JSONPath query APIs to orderedmap and Starlark modules
- Add a per-origin circuit breaker to ofetch
- Add stepped slices for arrays and strings
- Add `matchEach` to ts-pattern
- Harden module loading, cache introspection, and script flags
- Add action pinning linting for actions and reusable workflows
- Add typed window function builders with OVER clauses
- Add typed blend range access and blend-if compositing
- Add deterministic map conflict detection to Y.Map writes
- Add dependency-aware async initialization to the container
- Add multipart response parsing to HTTPX
- Add scoped per-rule ignore markers to Obsidian Linter
- Partition report files by launcher and expand report templates
- Add keyset cursor pagination to `$find`
- Add ShapeIndex encoding and decoding
- Add entity snapshot and rollback APIs to Koota
- Restore RichLog follow-state parity and expand reflow behavior
- Add duration-aware sharding to Vitest
- Add grouped test phases with synchronized barriers
- Add bidirectional TOML table converters
- Add go:embed directive support for interpreted packages
- Add task snapshots, inspection, and diffing to aiomonitor
- Add drift detection and compliance baselines
- Expose accumulated streamed function-call args in SDK surfaces
- Add grouping-set and window-frame SQL helpers
- Add rule evaluation profiling to Rego
- Add typed variable bindings to Anko
- Add multiplexed ordered streams over KCP
- Add single-active-consumer priority and cancel tracking to virtual transports
- Reconstruct template strings in partial evaluation output
- Add bounded-memory spilling to SCC aggregation
- Fix isolated Go-side calls for Tengo callables and closures
- Add interprocedural taint checks for Bandit injection sinks
- Add deterministic multi-key sorting to fd
- Add task graph export with JSON, DOT, and text output
- Add default arguments to Anko function parameters
- Add deprecation, sunset, and successor headers to FastAPI routes
- Add a checker for broken doc comment links
- Add boundary modes to `@stencil`
- Add retry-aware publishing audit logs
- Add method declarations and interface dispatch to Scriggo
- Add partial structuring with error recovery to cattrs
- Add conditional required attributes to schemas
- Add worktree merge conflict handling
- Add session bundle recording and replay to IPython
- Add flattened dataclass fields to Mashumaro field options
- Add build-time grammar conflict analysis to participle
- Add XML diff, patch, and merge operations to etree
- Add streaming JSON iteration to HTTPX responses
- Validate daemon watch, status, and log lifecycle
- Add recursive schema composition to Valibot
- Add input key aliases to name mapping
- Add durability callbacks and wait APIs for sync writes
- Add duration encoding to TableVectorizer
- Add safe import checkpoints and invariant validation
- Add shorthand expansion and compression to the lexer
- Add RFC 5545 timezone interoperability to dateutil recurrence parsing
- Add atomic signal selectors to Kea
- Add consistent hash policy support to TrafficPolicy
- Fix PromQL label sorting across typed and untyped values
- Format CREATE TABLE DDL and add DDL parsing helpers
- Add trap coredump generation to wasmi
- Add hierarchical evaluation cancellation to Boa
- Add value-based query predicates to Koota
- Add request coalescing to `Runnable`
- Add explicit resource management declarations to the parser
- Add lazy recursive schemas with DTO and JSON Schema export
- Persist the fitted feature schema across evaluate, predict, serve, and export
- Add composite trait aspects to Koota
- Add tube multiplexing to pwntools
- Add scoped state data to state machine callbacks and history
- Add destructuring bindings to Tengo
- Add JSON Schema refs and dependency keywords
- Add link format conversion between wiki and markdown syntax
- Add implicit HEAD and automatic OPTIONS responses to FastAPI routes
- Add transparent encryption to dump uploads
- Add conditional option dependencies to Optique
- Preserve structure needed by stylesheet selectors
- Add policy-based alerting for failures, latency, and SSL expiry
- Add incremental cache controls to Bandit
- Coalesce qualifying choices into character classes
- Preserve ANSI resets during truncation and styling
- Add async autocomplete options and fetch lifecycle handling
- Add config file parsing to Cliffy commands
- Add HTML document format handling to Dasel
- Add CSS Grid layout to the Box component
- Add `\multicolumn` column spans to array-like environments
- Add a deferred mutation buffer to batch entity changes
- Add automatic table of contents generation for Obsidian linter
- Implement a deterministic IntersectionObserver in Happy DOM
- Add pair-level relation tracking modifiers
- Add error stack serialization to SuperJSON
- Complete Kitty keyboard phases and stable fallback key metadata
- Add structured nosec directives for regions and next line
- Add bail-on-test-failure handling to Testem
- Add try/catch error recovery to expr
- Add configurable array merge strategies to Helm value coalescing
- Implement recursive agent delegation through delegate_task tool calls
- Add SSE streaming endpoints to HttpApi
- Add transactional reload status and rollback tracking to Prometheus
- Add GraphQL incremental delivery with @defer and @stream
- Add dead-lettering, TTL, and overflow handling to virtual queues
- Reuse one toolbar across multiple Quill editors
- adaptive-rejection-sampler
- bn-fit-modify
- break-filter-js-from-html
- build-cython-ext
- build-pmars
- build-pov-ray
- caffe-cifar-10
- cancel-async-tasks
- chess-best-move
- circuit-fibsqrt
- cobol-modernization
- code-from-image
- compile-compcert
- configure-git-webserver
- constraints-scheduling
- count-dataset-tokens
- crack-7z-hash
- custom-memory-heap-crash
- db-wal-recovery
- distribution-search
- dna-assembly
- dna-insert
- extract-elf
- extract-moves-from-video
- feal-differential-cryptanalysis
- financial-document-processor
- fix-code-vulnerability
- fix-git
- fix-ocaml-gc
- gcode-to-text
- git-leak-recovery
- git-multibranch
- headless-terminal
- hf-model-inference
- install-windows-3.11
- kv-store-grpc
- large-scale-text-editing
- largest-eigenval
- llm-inference-batching-scheduler
- log-summary-date-ranges
- mailman
- make-mips-interpreter
- mcmc-sampling-stan
- merge-diff-arc-agi-task
- model-extraction-relu-logits
- modernize-scientific-stack
- mteb-leaderboard
- mteb-retrieve
- multi-source-data-merger
- nginx-request-logging
- openssl-selfsigned-cert
- overfull-hbox
- password-recovery
- path-tracing
- path-tracing-reverse
- polyglot-c-py
- polyglot-rust-c
- portfolio-optimization
- protein-assembly
- prove-plus-comm
- pypi-server
- pytorch-model-cli
- pytorch-model-recovery
- qemu-alpine-ssh
- qemu-startup
- query-optimize
- raman-fitting
- regex-chess
- regex-log
- reshard-c4-data
- rstan-to-pystan
- sam-cell-seg
- sanitize-git-repo
- schemelike-metacircular-eval
- sparql-university
- sqlite-db-truncate
- sqlite-with-gcov
- torch-pipeline-parallelism
- torch-tensor-parallelism
- train-fasttext
- tune-mjcf
- video-processing
- vulnerable-secret
- winning-avg-corewars
- 6905333b74f22949d97ba998
- 6905333b74f22949d97ba999
- 6905333b74f22949d97ba99a
- 6905333b74f22949d97ba99b
- 6905333b74f22949d97ba99d
- 6905333b74f22949d97ba99f
- 6905333b74f22949d97ba9a2
- 6905333b74f22949d97ba9a3
- 6905333b74f22949d97ba9a4
- 6905333b74f22949d97ba9a5
- 6905333b74f22949d97ba9a6
- 6905333b74f22949d97ba9a7
- 6905333b74f22949d97ba9a8
- 6905333b74f22949d97ba9a9
- 6905333b74f22949d97ba9aa
- 6905333b74f22949d97ba9ab
- 6905333b74f22949d97ba9ac
- 6905333b74f22949d97ba9ad
- 6905333b74f22949d97ba9ae
- 6905333b74f22949d97ba9af
- 6905333b74f22949d97ba9b1
- 6905333b74f22949d97ba9b2
- 6905333b74f22949d97ba9b3
- 6905333b74f22949d97ba9b5
- 6905333b74f22949d97ba9b6
- 6905333b74f22949d97ba9b7
- 6905333b74f22949d97ba9b8
- 6905333b74f22949d97ba9ba
- 6905333b74f22949d97ba9bb
- 6905333b74f22949d97ba9bc
- 6905333b74f22949d97ba9bd
- 6905333b74f22949d97ba9be
- 6905333b74f22949d97ba9bf
- 6905333b74f22949d97ba9c0
- 6905333b74f22949d97ba9c1
- 6905333b74f22949d97ba9c2
- 6905333b74f22949d97ba9c3
- 6905333b74f22949d97ba9c4
- 6905333b74f22949d97ba9c5
- 6905333b74f22949d97ba9c6
- 6905333b74f22949d97ba9c8
- 6905333b74f22949d97ba9c9
- 6905333b74f22949d97ba9ca
- 6905333b74f22949d97ba9cb
- 6905333b74f22949d97ba9cc
- 6905333b74f22949d97ba9cd
- 6905333b74f22949d97ba9ce
- 6905333b74f22949d97ba9cf
- 6905333b74f22949d97ba9d0
- 6905333b74f22949d97ba9d1
- 6905333b74f22949d97ba9d2
- 6905333b74f22949d97ba9d3
- 6905333b74f22949d97ba9d4
- 6905333b74f22949d97ba9d5
- 6905333b74f22949d97ba9d6
- 6905333b74f22949d97ba9d7
- 6905333b74f22949d97ba9d8
- 6905333b74f22949d97ba9d9
- 6905333b74f22949d97ba9db
- 6905333b74f22949d97ba9dc
- 6905333b74f22949d97ba9dd
- 6905333b74f22949d97ba9de
- 6905333b74f22949d97ba9e0
- 6905333b74f22949d97ba9e1
- 6905333b74f22949d97ba9e3
- 6905333b74f22949d97ba9e4
- 6905333b74f22949d97ba9e5
- 6905333b74f22949d97ba9e7
- 6905333b74f22949d97ba9e8
- 6905333b74f22949d97ba9e9
- 6905333b74f22949d97ba9eb
- 6905333b74f22949d97ba9ee
- 6905333b74f22949d97ba9f0
- 6905333b74f22949d97ba9f1
- 6905333b74f22949d97ba9f2
- 6905333b74f22949d97ba9f4
- 6905333b74f22949d97ba9f5
- 6905333b74f22949d97ba9f7
- 6905333b74f22949d97ba9f8
- 6905333b74f22949d97ba9f9
- 6905333b74f22949d97ba9fa
- 6905333b74f22949d97ba9fb
- 6905333b74f22949d97ba9fc
- 6905333b74f22949d97ba9fd
- 6905333b74f22949d97ba9ff
- 6905333b74f22949d97baa01
- 6905333b74f22949d97baa02
- 6905333b74f22949d97baa03
- 6905333b74f22949d97baa04
- 6905333b74f22949d97baa05
- 6905333b74f22949d97baa06
- 6905333b74f22949d97baa07
- 6905333b74f22949d97baa09
- 6905333b74f22949d97baa0b
- 6905333b74f22949d97baa0c
- 6905333b74f22949d97baa0d
- 6905333b74f22949d97baa0f
- 6905333b74f22949d97baa10
- 6905333b74f22949d97baa11
- 6905333b74f22949d97baa12
- 6905333b74f22949d97baa14
- 6905333b74f22949d97baa15
- 6905333b74f22949d97baa16
- 6905333b74f22949d97baa17
- 6905333b74f22949d97baa19
- 6905333b74f22949d97baa1a
- 6905333b74f22949d97baa1b
- 6905333b74f22949d97baa1c
- 6905333b74f22949d97baa1d
- 6905333b74f22949d97baa1e
- 6905333b74f22949d97baa1f
- 6905333b74f22949d97baa20
- 6905333b74f22949d97baa21
- 6905333b74f22949d97baa22
- 6905333b74f22949d97baa23
- 6905333b74f22949d97baa24
- 6905333b74f22949d97baa25
- 6905333b74f22949d97baa26
- 6905333b74f22949d97baa27
- 6905333b74f22949d97baa28
- 6905333b74f22949d97baa2a
- 6905333b74f22949d97baa2b
- 6905333b74f22949d97baa2c
- 6905333b74f22949d97baa2d
Was der Index zusammenfasst
Für jede Agentenvariante berechnet Artificial Analysis einen pass@1-Wert für jede enthaltene Benchmark-Komponente und fasst diese Komponentenwerte anschließend im öffentlichen Index zusammen.
Dieselbe Benchmark-Suite bildet auch die Grundlage der öffentlichen gepoolten Effizienzmetriken auf der Benchmark-Seite, darunter Ausführungskosten, Tokenverbrauch und Ausführungszeit. Leistungs- und Effizienzansichten beruhen somit auf derselben zugrunde liegenden Benchmark-Abdeckung und nicht auf voneinander unabhängigen Läufen.
Bewertung und Ergebnisse
pass@1-Ergebnisse
Jeder evaluierte Versuch erhält vom Benchmark-Evaluator ein pass@1-Ergebnis. SWE-Atlas-QnA verwendet eine binäre pass/fail-Bewertung entsprechend der Task-Resolve-Rate-Methodik von Scale AI: Bestandene Versuche erhalten den Wert 1, fehlgeschlagene oder fehlerhafte Versuche den Wert 0.
| Begriff | Definition |
|---|---|
| Binäres pass@1 | Ergebnis einer Testsuite-Evaluation, bei der eine Aufgabe bei Erfolg den Wert 1 und bei Misserfolg den Wert 0 erhält. |
Werte je Evaluation
Für jede Evaluation bildet Artificial Analysis zunächst den Durchschnitt der drei evaluierten Versuche innerhalb jeder Aufgabe und anschließend den Durchschnitt dieser pass@1-Werte auf Aufgabenebene, sodass jede Aufgabe gleich gewichtet wird.
Effizienzmetriken
Kosten, Tokenverbrauch und Ausführungszeit werden als gepoolte Durchschnittswerte pro Aufgabenversuch über die aktuelle öffentliche Benchmark-Suite für Programmieragenten hinweg ausgewiesen.
- Ausführungskosten: durchschnittliche, tokenbasiert abgerechnete API-Kosten pro Aufgabe auf Grundlage der Tokenpreise der Anbieter statt der Endkundentarife.
- Tokenverbrauch: durchschnittliche Anzahl an Eingabe-, Cache-, Cache-Schreib-, Reasoning- und Ausgabetokens pro Aufgabe.
- Ausführungszeit: durchschnittliche reale Laufzeit pro Aufgabe einschließlich der gesamten Aufgabenlaufzeit und, sofern verfügbar, des darin enthaltenen Anteils der Agentenlaufzeit.
Fehlen für eine bestimmte Metrik Telemetriedaten, werden diese fehlenden Werte aus dem entsprechenden Durchschnitt ausgeschlossen und nicht als null behandelt.
Bei der Kostenmetrik werden Eingaben aus dem Cache getrennt von nicht zwischengespeicherten Eingaben behandelt, sofern die Anbieterpreise diese Unterscheidung unterstützen. Gebühren für Cache-Schreibvorgänge werden einbezogen, wenn Anbieter die Erstellung eines Prompt-Cache-Zustands berechnen. Dadurch sollen tokenbasiert abgerechnete API-Preise genauer abgebildet werden als mit einer pauschalen Schätzung pro Token.
Agenteneinstellungen
Öffentliche Benchmark-Zeilen stellen Agentenvarianten und nicht nur Modellnamen dar. Einstellungen, die das Verhalten verändern können, werden in der Auswertung getrennt ausgewiesen.
Sofern nicht anders angegeben, verwenden wir die Reasoning-Standardeinstellungen jedes Agenten, damit der Benchmark die standardmäßige Nutzererfahrung abbildet.
Die Benchmarking-Methodik kann sich mit der Aufnahme neuer Evaluationen und Agentenvarianten im Laufe der Zeit weiterentwickeln. Öffentliche Vergleiche sollen jedoch gleichartige Agentenvarianten innerhalb der veröffentlichten Benchmark-Suite gegenüberstellen.
Versionsverlauf
Version 1.3
Juli 2026–heute
- Binäre pass/fail-Bewertung von SWE-Atlas-QnA zur Angleichung an die Task-Resolve-Rate-Methodik von Scale AI präzisiert
Version 1.2
Juli 2026
- Bewertung von SWE-Atlas-QnA von einer Rubrikbewertung auf binäres pass/fail umgestellt; eine Aufgabe gilt nur dann als korrekt, wenn alle Rubrikkriterien erfüllt sind
Version 1.1
Juni 2026–Juli 2026
- DeepSWE (Softwareentwicklung über lange Zeithorizonte) hinzugefügt
- SWE-Bench-Pro-Hard-AA aus dem Coding Agent Index entfernt
Version 1.0
Mai 2026–Juni 2026
- Erstveröffentlichung mit SWE-Bench-Pro-Hard-AA (Codegenerierung), Terminal-Bench v2 (agentische Terminalnutzung) und SWE-Atlas-QnA (Fragen und Antworten zu Repositorys)