Prueba práctica

Agentes de programación con la misma tarea

Damos a Claude Code, OpenAI Codex y Gemini CLI un repositorio pequeño idéntico y un prompt idéntico, y registramos lo que costó cada uno y lo que produjo. Cada número se lee del informe de uso de la herramienta o del ejecutor de pruebas. Las ejecuciones que aún no hicimos lo indican.

Método: Cómo reseñamos · El protocolo y los casos de prueba están publicados en el repositorio del proyecto.

Ejecuciones completadas: 1Ejecuciones pendientes: 21de 3 ejecuciones
  • Ejecuciones completadas 1
  • Ejecuciones pendientes 2

Fix a bug, add a feature and a CLI flag in a small Python package

Starting from a 40-line Python package with 5 failing tests: fix CSV date parsing and a trailing blank line, add totals_by_customer(), and add a --top N CLI flag. Standard library only, tests must not be edited.

Prompt inicial, idéntico para cada agente
Read README.md and make all tests in tests/ pass. Do not edit the tests. Run the tests yourself before you finish.

Qué medimos

  • Tests passed out of 5, read from pytest
  • Wall time from sending the prompt to the agent saying it is done
  • Tokens and USD cost as reported by the tool itself (/cost in Claude Code, session summary in Codex)
  • Extra user turns and questions the agent asked
  • Size of the diff (files, lines) from git

Resultados

Claude Code

5/5pruebas

Hora
00:48
Costo
$1.22
Tokens de salida
1,820
Turnos extra
0
OpenAI Codex

—aún sin ejecutar

Gemini CLI

—aún sin ejecutar

Claude Code · costo
$1.22
Claude Code · hora
00:48
AgenteEstadoPruebasTiempo totalTokens de entrada / salidaCostoTurnos extraDiffModelo · plan
Claude Code Ejecutar Oct 2, 2026 5/5 00:48 162 / 1,820
250,959 en caché
$1.22
informado por la herramienta
0 2 archivos, +22 / −8 claude-fable-5-1 · Headless run (claude -p) on the reviewer's account; cost shown at API list price (costBasis: list), subscription plan not applied · v2.1.284
OpenAI Codex Aún sin ejecutar
Gemini CLI Aún sin ejecutar
Claude Code: salida de uso sin procesar y notas
{
  "duration_ms": 48154,
  "duration_api_ms": 46010,
  "num_turns": 8,
  "total_cost_usd": 1.2184397500000002,
  "usage": {
    "input_tokens": 162,
    "output_tokens": 1820,
    "cache_read_input_tokens": 250959,
    "cache_creation_input_tokens": 53154
  },
  "modelUsage": {
    "claude-fable-5-1": {
      "inputTokens": 162,
      "outputTokens": 1820,
      "cacheReadInputTokens": 250959,
      "cacheCreationInputTokens": 53154,
      "webSearchRequests": 0,
      "costUSD": 1.2184397500000002,
      "contextWindow": 1000000,
      "maxOutputTokens": 64000,
      "thinkingTokens": 201,
      "canonicalModel": "claude-fable-5-1",
      "provider": "firstParty",
      "costBasis": "list"
    }
  }
}

Opinion: clean argparse implementation, all 5 tests green on the first self-check. Caveats: (1) run via the non-interactive `claude -p` command with a tool allowlist (Read/Edit/Write/Bash for python and git), not the interactive TUI; (2) the reviewer's global Claude Code settings and skills were active, which a fresh install would not have; (3) the agent also removed the old "Total:" output line that no test covered.

Cómo funciona una ejecución

  1. Se crea y confirma una copia nueva del repositorio de prueba, para que la diferencia sea medible.
  2. El agente recibe el prompt inicial de arriba, tal cual, con su modelo predeterminado para el plan indicado en los resultados.
  3. Sin pistas. Si el agente pregunta, la única respuesta es “Usa tu criterio”. Cada mensaje extra se cuenta.
  4. La ejecución se detiene cuando el agente dice que terminó o a los 20 minutos.
  5. Las pruebas las hacemos nosotros, el diff se mide con git, y los tokens y el costo se copian del propio informe de uso de la herramienta.

Límites: una tarea, una ejecución por agente, solo valores por defecto. Es una comprobación puntual reproducible, no un ranking.