Benchmark · agentic
SWE-Lancer
SWE-Lancer es un benchmark de 1488 tareas reales de ingeniería de software freelance de Upwork, valoradas en 1 millón de dólares (USD) en pagos reales; mide cuánto de ese dinero puede «ganar» un modelo al resolverlas por completo, puntuado como el total de USD ganados (y la proporción de tareas resueltas).
Leer más
- Ejemplo
- Una tarea de corrección de errores estilo freelance: dado un issue real (al estilo de GitHub) y el repositorio completo de la app, el modelo debe producir un patch que haga funcionar de nuevo un flujo de usuario roto (por ejemplo, la pantalla de dividir una cuenta o de pago), verificado con pruebas end-to-end. Una segunda vía ofrece tareas de gestión: elegir la mejor propuesta de ingeniería entre varias.
- Puntuación
- Cada tarea lleva el precio real en USD que se pagó en Upwork (de unos 50 a 32 000 dólares). Un modelo gana el precio completo de una tarea solo si su solución la supera; no hay crédito parcial dentro de una tarea. La métrica principal es el total de dólares ganados del fondo de 1 millón, junto con el porcentaje de tareas resueltas; las dos vías (codificación IC y gestión) también se informan por separado.
- Verificación
- Las tareas de codificación (IC) se califican con pruebas end-to-end (Playwright) que simulan acciones reales del usuario, escritas y verificadas por ingenieros profesionales y ejecutadas en un entorno Docker aislado; el patch del modelo debe superar todas las pruebas de la tarea, y el modelo no puede verlas ni editarlas. Las tareas de gestión se aceptan cuando el modelo elige la misma propuesta que realmente escogió el gerente que contrató.
- Por qué importa
- Vincula el rendimiento del modelo con trabajo económicamente real y con precio de mercado sobre una base de código de producción real, en lugar de problemas sintéticos o autoevaluados. Como la calificación usa flujos de usuario end-to-end completos (no arreglos aislados de funciones) más una vía de decisiones de gestión, comprueba si los modelos de frontera pueden hacer la ingeniería completa y valiosa por la que la gente realmente paga a freelancers.
Ejemplo resuelto
Tarea
Tarea IC SWE (ilustrativa, ~250 USD): la pantalla «Split Bill» de la app muestra un total de NaN cuando se elimina a un participante antes de escribir un importe. Trabajando en un contenedor Docker con el repositorio completo, corrige el error para que el total mostrado vuelva a $0.00; una prueba end-to-end oculta reproduce este flujo de usuario.
Solución
```diff
function getSplitTotal(amounts) {
- return amounts.reduce((sum, a) => sum + a.value, 0);
+ return amounts.reduce((sum, a) => sum + (Number(a?.value) || 0), 0);
}
```
Explicación
Eliminar a un participante deja una entrada cuyo value es undefined, por lo que a.value convierte la suma acumulada en NaN; convertir cada valor con Number(...) || 0 omite el importe faltante y el total se muestra como $0.00. La calificación es binaria: el patch gana el precio completo en USD de la tarea solo si supera todas las pruebas end-to-end de esa tarea, ejecutadas contra el flujo de usuario real.
| Fecha | Modelo | Puntuación | Fuente |
|---|---|---|---|
| 2025-03-05 | GPT-4.5 | 32.6% | OpenAI lanza GPT-4.5, su modelo más grande, para ChatGPT Plus |