Benchmarks

Medido. No prometido.

Seis sesiones de programación, desde un arreglo de 8 turnos hasta una auditoría de 120, repetidas en Dulus, en otros seis agentes y en un control ingenuo, con transcripciones idénticas byte a byte, un solo tokenizador y una sola tabla de precios. Dulus quedó primero en las cinco ponderaciones y costó menos en los 42 enfrentamientos directos.

Arena
1.0.0
Ejecución
2026-10-18 06:07 UTC
Commit
097aa216dc
Tiempo real
7.2 s
  • $25.63

    por las seis sesiones

    Claude Code, el siguiente más barato, cuesta $48.00 por el mismo trabajo. Dulus cuesta un 46.6% menos.

  • 9

    roturas del prefijo en caché

    Claude Code: 74. GitHub Copilot: 220. Cada rotura vuelve a cobrar a precio completo tokens que ya se habían enviado.

  • 0

    desbordes del contexto

    Su prompt más grande fue de 139.8k tokens en una ventana de 200k, en sesiones de hasta 120 turnos. GitHub Copilot se desbordó en 222 turnos.

Cómo leer cada cifra de esta página

  • Medido

    Dulus. La arena corre el propio código de contexto de Dulus sobre la transcripción: la ventana de lookback y la compactación de dos capas.

  • Modelado

    Los otros seis. La política de contexto de cada producto se reproduce como un comportamiento —crecer, ventana o resumir al pasar un umbral— sobre la misma transcripción, idéntica byte a byte. No es su código fuente.

  • El mismo instrumento

    Para todos. Un solo tokenizador y una sola tabla de precios, con el descuento por lectura de caché incluido. Los escenarios son sintéticos, calibrados con trabajo real de agentes.

01 · La factura

Las mismas seis sesiones. La factura más pequeña.

Lo que le costaron las seis sesiones a cada agente, con precios de una sola tabla y el descuento por lectura de caché incluido. Dulus: $25.63. Claude Code, el siguiente más barato: $48.00.

Fig. 01 Costo de las sesiones y tokens de prompt facturados, sumados en los seis escenarios
Agente Costo de las sesiones Tokens de prompt facturados
DulusMedido $25.63 18.52M tokens
Claude CodeModelado $48.00 32.13M tokens
Codex CLIModelado $49.38 31.59M tokens
CursorModelado $50.75 30.23M tokens
ClineModelado $53.65 27.86M tokens
AiderModelado $92.49 243.97M tokens
GitHub Copilot modo agenteModelado $373.53 71.71M tokens
Ciclo ingenuoControl $719.29 243.97M tokens
  • La escala llega hasta $100. Las dos barras más largas están cortadas, y su valor aparece escrito.
  • La cifra de Aider es un tope: su mapa real del repo tiene un presupuesto de tokens, y la forma modelada no lo toma en cuenta.
  • El ciclo ingenuo es el control: la transcripción completa en cada turno, sin caché y sin recortes.

02 · La ventana

Bajo la línea. En cada turno.

Un prompt más grande que la ventana del modelo no corre lento: falla. En los seis escenarios, Dulus nunca envió uno. Su prompt más grande fue de 139.8k tokens, en una ventana de 200k.

Fig. 02 Tamaño del prompt en cada turno de la auditoría maratón: 120 turnos en claude-sonnet-4-6, con su ventana de 200k
  • Dulus
  • Claude Code
  • GitHub Copilot
  • Ciclo ingenuo y Aider
  • Ventana del modelo de 200k

La auditoría maratón, por agente
AgentePrompt más grandeCortesTurnos por encima de la ventana
Dulus134,11230
Claude Code182,719170
GitHub Copilot289,280108105
Ciclo ingenuo y Aider2,357,3830110

Los puntos dorados marcan los 3 cortes de Dulus: turnos en los que el inicio en caché del prompt se reescribió y se volvió a cobrar a precio completo. Sus bajadas más pequeñas son la cola sin caché cambiando de tamaño, mientras el inicio en caché sigue creciendo. Claude Code cortó 17 veces, en cada caída brusca de su línea. El ciclo ingenuo nunca corta: cruza la ventana en el turno 11 y sale del gráfico en el turno 16, y la curva modelada de Aider es la misma línea.

Fig. 03 Los seis escenarios: el prompt más grande que envió cada agente, y cuántos de los 288 turnos pasaron la ventana
Agente Prompt más grande, frente a una ventana de 200k Turnos por encima de la ventana
Dulus139,8050 por encima de la ventana
Claude Code183,4051 por encima de la ventana
Codex CLI183,1921 por encima de la ventana
Cursor182,9941 por encima de la ventana
Cline182,4991 por encima de la ventana
GitHub Copilot604,731222 por encima de la ventana
Aider2,357,383240 por encima de la ventana
Ciclo ingenuo2,357,383240 por encima de la ventana

El único desborde de Claude Code, Codex CLI, Cursor y Cline llegó en la sesión con el modelo barato, donde deepseek-chat tiene una ventana de 64k: cada uno la cruzó en el turno 20. Ahí, el pico de Dulus fue de 41,151 tokens.

03 · La caché

La caché aguanta.

Un proveedor cobra la parte en caché de un prompt con un descuento grande, pero solo mientras el inicio del prompt siga exactamente igual. Si reescribes ese inicio, cada token que contiene se vuelve a cobrar a precio completo. En 288 turnos, Dulus lo reescribió 9 veces.

Fig. 04 Roturas del prefijo en caché, sumadas en los seis escenarios. Un cuadrito, una rotura.
  • Dulus9
  • Claude Code74
  • Codex CLI79
  • Cursor88
  • Cline102
  • GitHub Copilot220
  • Aider, ciclo ingenuo0Nunca recortan, así que nunca rompen el prefijo. A cambio, desbordan la ventana en 240 turnos.

No es la mayor tasa de aciertos. Es la factura más baja.

La política modelada de Claude Code sirve en promedio el 62.2% de sus tokens de prompt desde la caché; Dulus, el 61.2%. Claude Code reenvía más, y más de lo que reenvía acierta. Dulus mantiene su caché intacta mientras envía mucho menos, así que paga menos que nadie.

Tasa de aciertos de la caché del prompt, promedio

Dulus61.2%

Claude Code62.2%

Tokens de prompt enviados, en las seis sesiones

Dulus18.52M

Claude Code32.13M

En una factura real

Una cuenta · uso real

70.4%

tasa de aciertos de la caché, del 12 al 18 de octubre de 2026

155.7M tokens de entrada esa semana

Solo el 12 de octubre

  • 82.1M en caché
  • 40.3M sin caché

Nuestra propia cuenta, construyendo con Dulus, según el panel de uso del proveedor del modelo. Son sesiones reales en una sola cuenta: un instrumento distinto al de la arena, así que las dos tasas de aciertos no se comparan.

04 · Cómo funciona

Cuatro mecanismos. Todos en la app para Windows.

Sin opciones que buscar ni nada que instalar. Así maneja el contexto el agente de la app para Windows, desde el primer día.

  1. Una caché que aguanta

    La ventana de lookback está anclada con histéresis: crece un tiempo en vez de deslizarse en cada turno. Solo corta el inicio cuando la parte oculta es al menos el doble de la ventana que se conserva, una compuerta que exige que el corte compense la caché; por debajo de eso, sale el historial completo y la caché lo absorbe. Las imágenes y el razonamiento anteriores se quedan donde estaban, así que nunca obligan a reescribir.

    9

    roturas del prefijo en 288 turnos. Los demás que recortan: de 74 a 220.

    oculto ≥ 2 × conservado corta el inicio

    si no envía todo; la caché lo absorbe

  2. Lookback y Loopback

    Por defecto, solo los últimos 20 turnos del usuario van a la API, y puedes elegir cualquier valor de 2 a 250. El corte cae en el borde entre turnos del usuario, así que cada llamada a una herramienta sigue junto a su resultado. La conversación completa se queda en tu máquina, y el agente la busca por sí mismo con su herramienta Loopback: status, show, head, search.

    El costo, dicho claro: el modelo ve textualmente el 28.0% del historial viejo, frente al 46.1% de Claude Code. Loopback es cómo recupera el resto. Dulus es el único agente de la arena que puede releer el historial descartado: medido en Dulus, y estimado como ausente en los otros seis.

    20

    turnos del usuario enviados, por defecto. De 2 a 250.

  3. Una consola de Python para el modelo

    La herramienta Python es un kernel persistente: las variables, los imports y los datos sobreviven entre llamadas. Así, el modelo guarda los datos grandes en la memoria del kernel y no en la conversación, y al contexto solo entra el pedazo que imprime. Un ciclo infinito o un fallo tumban el kernel, nunca a Dulus, y se reinicia en la siguiente llamada.

    20,000

    caracteres por flujo como máximo, con el tope aplicado en el origen. Tiempo límite: 30 s por defecto, hasta 300 s.

    >>> runs = load("ci/") se queda en el kernel

    >>> failing(runs)[:3] solo esto llega al contexto

  4. MemPalace

    La memoria es markdown, archivada en un palacio de salas que puedes abrir y editar. Lo esencial, short_memory y las memorias gold, se carga al inicio de cada sesión, en cada superficie. El agente guarda lo que aprende y busca en el palacio con sus propias herramientas de memoria.

    Cada sesión

    lo esencial se carga primero: short_memory y las memorias gold.

    • soul
    • facts
    • events
    • discoveries
    • preferences
    • advice
Fig. 05 Las herramientas de contexto de cada agente, con la evidencia detrás de cada celda
Función Dulus Claude Code Codex CLI Cursor Cline Aider GitHub Copilot
Compactación del contexto SíMedido SíPúblico del proveedor SíPúblico del proveedor SíEstimado SíPúblico del proveedor NoEstimado Sin datos
Ventana deslizante del historial SíMedido NoEstimado NoEstimado Sin datos SíEstimado NoEstimado SíEstimado
Compuerta de recorte que respeta la caché SíMedido NoEstimado NoEstimado Sin datos Sin datos NoEstimado Sin datos
El agente puede releer el historial descartado SíMedido NoEstimado NoEstimado NoEstimado NoEstimado NoEstimado NoEstimado

Las cuatro de Dulus están medidas. La mayoría de las celdas de los otros productos son estimaciones, y están marcadas así: léelas como la mejor suposición de la arena, no como un hallazgo. La arena sigue 21 capacidades en total; estas cuatro son las que trata esta página, y el dossier las lista todas.

05 · Cara a cara

42 enfrentamientos. 42 veces más barato.

Cada escenario contra cada rival. Cada celda es el costo del rival dividido entre el de Dulus en el mismo escenario, con un intervalo del 95% de un bootstrap pareado sobre los costos por turno. Por encima de 1, Dulus es más barato. Los 42 intervalos quedan por encima.

Fig. 06 Costo del rival ÷ costo de Dulus, por escenario. En cada celda: la razón, y luego su intervalo del 95%.
Escenario Claude Code Codex CLI Cursor Cline Aider GitHub Copilot Ciclo ingenuo
Arreglo rápido8 turnos · claude-sonnet-4-6 1.113×1.047–1.208 1.113×1.047–1.208 1.113×1.047–1.208 1.113×1.047–1.208 1.113×1.047–1.208 1.113×1.047–1.208 3.063×2.056–4.533
Construir una función30 turnos · claude-sonnet-4-6 1.298×1.187–1.425 1.296×1.186–1.422 1.307×1.154–1.529 1.336×1.139–1.573 1.646×1.520–1.774 8.936×6.762–11.161 9.215×7.640–10.828
Refactor profundo60 turnos · claude-sonnet-4-6 1.664×1.440–1.938 1.732×1.482–2.023 1.733×1.499–1.996 1.937×1.641–2.243 3.102×2.757–3.500 15.019×13.171–17.020 22.595×19.205–26.522
Auditoría maratón120 turnos · claude-sonnet-4-6 1.465×1.336–1.613 1.488×1.363–1.632 1.448×1.329–1.590 1.492×1.348–1.640 4.893×4.432–5.384 15.115×13.966–16.355 41.446×36.801–46.413
Mucha recuperación40 turnos · claude-sonnet-4-6 2.974×2.533–3.441 3.085×2.624–3.542 3.367×2.922–3.825 3.537×3.112–4.022 2.637×2.312–2.997 15.522×12.538–18.566 17.944×14.696–21.538
Construir una función con un modelo barato30 turnos · deepseek-chat 2.446×2.024–2.889 2.491×2.077–2.913 2.531×2.140–2.960 2.601×2.217–3.016 3.183×2.674–3.777 9.166×6.811–11.782 10.177×8.144–12.514
  • 1.11×

    El más reñido: el arreglo rápido de 8 turnos. Ninguno de los seis productos ha recortado todavía, así que comparten una misma razón, y aun así Dulus cuesta menos.

  • 15.5×

    La mayor diferencia frente a un producto: GitHub Copilot, en mucha recuperación.

  • 41×

    Frente al ciclo ingenuo, en la auditoría maratón de 120 turnos.

Mucha recuperación está hecho para castigar a las ventanas deslizantes, incluida la de Dulus: casi cada turno arrastra un bloque grande de recuperación que el modelo puede volver a necesitar más adelante.

06 · Cualquier ponderación

Pondéralo como quieras. Sigue primero.

Lo que cuenta como mejor depende de lo que pondere cada quien. Por eso la arena vuelve a puntuar a cada agente con cinco perfiles publicados, desde quien paga la factura hasta quien necesita que el agente nunca olvide el plan. Dulus quedó primero en los cinco.

Fig. 07 Puntuaciones de 0 a 1 con cada perfil de pesos
  1. Neutral

    Todas las métricas cuentan igual.

    Dulus 0.847

    Segundo lugar Cursor 0.760

  2. Primero el costo

    Quien paga la factura.

    Dulus 0.931

    Segundo lugar Claude Code 0.856

  3. Primero la fidelidad

    Quien necesita que el agente no olvide el plan.

    Dulus 0.764

    Segundo lugar Cursor 0.757

  4. Primero las capacidades

    Quien compara funciones.

    Dulus 0.934

    Segundo lugar Cline 0.690

  5. Por defecto de la arena

    Los pesos propios del catálogo.

    Dulus 0.909

    Segundo lugar Cursor 0.824

El más reñido es primero la fidelidad, que le da más peso a conservar el historial y mostrarlo textual: Dulus 0.764, Cursor 0.757.

Las 40 puntuaciones, con su posición
AgenteNeutralPrimero el costoPrimero la fidelidadPrimero las capacidadesPor defecto de la arena
Dulus0.847 #10.931 #10.764 #10.934 #10.909 #1
Claude Code0.752 #30.856 #20.751 #30.590 #40.810 #4
Codex CLI0.748 #50.851 #30.748 #50.589 #50.806 #5
Cursor0.760 #20.849 #40.757 #20.683 #30.824 #2
Cline0.748 #40.836 #50.749 #40.690 #20.818 #3
Aider0.586 #60.628 #60.687 #60.487 #60.526 #6
GitHub Copilot0.489 #70.469 #70.595 #70.487 #70.488 #7
Ciclo ingenuo0.333 #80.158 #80.556 #80.171 #80.235 #8

07 · Método

Cómo se midió. Y qué no.

La Dulus Benchmark Arena crea una transcripción por escenario a partir de una semilla fija, la pasa por la política de contexto de cada agente y le pone precio a cada turno de la misma manera. Esto es exactamente lo que eso significa, y hasta dónde llega.

  • Medido

    Dulus, y el control

    La arena corre el propio código de contexto de Dulus: recorta las salidas viejas de las herramientas, quita las inyecciones caducadas y aplica la ventana de lookback, conservando el ancla de la ventana entre turnos para que la compuerta de la caché y la histéresis se pongan a prueba de verdad. Lo único sustituido es la tarjeta de resumen, por un sustituto de tamaño fijo, porque escribirla requeriría llamar a un modelo en vivo. El control ingenuo es el ciclo de referencia de la propia arena.

  • Modelado

    Los otros seis

    La política de contexto de cada producto es una forma de comportamiento: crecer, ventana o resumir al pasar un umbral. Se reproduce sobre la misma transcripción, y no es el código fuente de ese producto. Cuando la forma favorece a un competidor, la arena lo dice.

  • Declarado

    Capacidades

    Cada capacidad lleva su nivel y una cita. Varias filas se corrigieron a favor de los competidores frente al marketing anterior de este mismo proyecto, y lo desconocido se registra como desconocido, nunca como cero.

Fig. 08 El campo, y cuánta confianza merece cada fila
AgentePolítica de contextoCalidad de la evidencia
DulusMedidoVentana de lookback y compactación de dos capasCalidad de la evidencia 92%
Claude CodeModeladoContexto completo, autocompactación tardíaCalidad de la evidencia 40%
Codex CLIModeladoContexto completo, compactación tardíaCalidad de la evidencia 37%
CursorModeladoContexto del editor, resumen a mitad de la ventanaCalidad de la evidencia 41%
ClineModeladoBarra de contexto visible, recorte bajo presiónCalidad de la evidencia 40%
AiderModeladoMapa del repo e historial completo del chatCalidad de la evidencia 44%
GitHub Copilot modo agenteModeladoVentana de turnos acotada, armada por recuperaciónCalidad de la evidencia 43%
Ciclo ingenuoMedidoTranscripción completa, sin caché y sin recortesCalidad de la evidencia 100%

La calidad de la evidencia es la fuerza promedio de la evidencia detrás de las filas de cada agente, desde medido arriba hasta desconocido en cero. Nunca puntúa; te dice cuánto confiar en lo demás.

Seis escenarios

  • Arreglo rápido8 turnosLeer un archivo, encontrar un bug, parcharlo y correr los tests.
  • Construir una función30 turnosBuscar con grep, leer varios módulos, escribir código, correr tests e iterar: la sesión real típica.
  • Refactor profundo60 turnosMuchos archivos, diffs grandes y lecturas repetidas de archivos completos.
  • Auditoría maratón120 turnosTrabajo de largo aliento, como una revisión de seguridad o una migración.
  • Mucha recuperación40 turnosCasi cada turno arrastra un bloque grande de recuperación.
  • Construir una función con un modelo barato30 turnosLa misma construcción de una función, enviada a un modelo de bajo costo.

Los primeros cinco corren en claude-sonnet-4-6 con una ventana de 200k; el último en deepseek-chat, con 64k.

Un solo instrumento

Tokens
compaction.estimate_tokens, una estimación: caracteres ÷ 2.8, más 4 por mensaje, más un 10%.
Precios
providers.calc_cost, con el descuento por lectura de caché.
Intervalos
Bootstrap pareado sobre los costos por turno, al 95%. Un intervalo que toca la paridad cuenta como sin diferencia, no como una victoria.
Pesos
Cinco perfiles publicados. La estabilidad del ranking es la proporción que coincide en el primer lugar.

Las salvedades, completas

  1. Los otros seis son modelos de una estrategia. No el código de los productos. Las curvas de costo comparan estrategias; no miden el software que se distribuye.
  2. Sus filas descansan en evidencia más débil. La calidad de la evidencia es de 37–44% para los seis productos y de 92% para Dulus, así que sus filas merecen menos peso del que sugiere la aritmética.
  3. Un dato pesa más que los demás. El umbral de compactación de Claude Code es la cifra más sensible de la arena.
  4. El costo de Aider es un tope. Su mapa del repo tiene un presupuesto de tokens que la forma modelada no toma en cuenta.
  5. Los conteos de tokens son estimaciones. La misma estimación para todos, así que las comparaciones son justas; los conteos absolutos son aproximados.
  6. Los escenarios son sintéticos. Tienen la forma del trabajo real de un agente, pero no son muestras de él.
  7. Nada de esto mide la calidad del resultado. La arena mide lo que cuesta una sesión y lo que el modelo todavía puede ver, no si el código que escribe es bueno.
  8. Dulus le muestra menos al modelo. Envía textual el 28.0% del historial viejo, frente al 46.1% de Claude Code. Loopback es la mitigación, y está en otro eje.
  9. La lista de capacidades viene de los autores de la arena, que también hacen Dulus. La cobertura de capacidades entra en todos los perfiles, así que lee el ranking de primero las capacidades con eso en mente.

Niveles de procedencia, del más fuerte al más débil

Medido
Calculado corriendo código del repositorio de Dulus.
Documentado
Tomado de una fuente primaria, leída directamente.
Público del proveedor
Una cifra publicada por el proveedor.
Doc del repo
Una afirmación de la propia documentación de este proyecto: autodeclarada.
Estimado
Modelado a partir de una suposición declarada, no medido.
Sin datos
No encontrado. El puntaje lo omite, nunca lo cuenta como cero.

El dossier completo

Cada gráfico, cada enfrentamiento, cada salvedad.

28 páginas: el método, los doce gráficos, los 42 enfrentamientos con sus intervalos, el registro completo de capacidades y las salvedades.

Arena
1.0.0
Ejecución
2026-10-18 06:07 UTC
Commit
097aa216dc
Suite de tests
4,105 tests en 256 archivos
Descarga el dossier completo (PDF)

PDF · 28 páginas · 1.75 MB

Seis sesiones medidas. La séptima es tuya.

Descarga la app para Windows. La ventana de lookback, la compuerta de la caché, Loopback, la consola de Python y MemPalace vienen incluidos.

esc

Acciones