Chiosa
Software & Code

El contexto con archivos completos ayuda a resolver más problemas de código

2 min
Publicado en Chiosa Actualizado

En palabras sencillas

Un programa que intenta corregir un problema necesita los archivos adecuados y el código exacto que contienen. Una búsqueda basada en palabras puede pasar por alto el archivo que hay que editar, y acortar el código puede cambiar el texto que el cambio propuesto debe reproducir.

CQ2-CARE pregunta a un modelo qué archivos probablemente necesitan cambios y luego entrega esos archivos completos al modelo de programación. En 300 problemas de Python, dos modelos probados resolvieron una proporción mayor con este contexto que con el mejor método de recuperación o compresión evaluado, con presupuestos igualados. La prueba usó un solo cambio propuesto por problema.

La investigación

Cuando un agente de programación solo puede recibir una parte del repositorio, ¿qué contexto le ayuda a hacer un cambio que funcione? El cambio necesita los archivos que hay que modificar, pero también el código exacto para que la edición coincida con lo que realmente hay en el repositorio. La recuperación de archivos y el recorte de texto pueden perder cada uno una de esas dos cosas.

CQ2-CARE selecciona archivos del repositorio que probablemente cambiarán y los muestra completos, para que los agentes de programación aprovechen un presupuesto de contexto limitado sin recortar el código que deben editar.

En SWE-rebench, un sistema de evaluación comprueba si un cambio resuelve un problema de Python reportado: lo aplica y ejecuta las pruebas requeridas. La puntuación es la proporción de problemas cuyas pruebas pasan.

Los autores comparan métodos de contexto con el mismo presupuesto de tokens para cada problema; un modelo fijo propone un único cambio por contexto.

CQ2-CARE resolvió el 43,7 % de los problemas con GPT-5.6 y el 46,7 % con Claude Opus 5. Para cada modelo, esos resultados superaron en 6,3 puntos porcentuales al compresor probado más sólido y en 9,3 o 12,7 puntos al mejor recuperador principal.

Esto respalda la selección de archivos completos en esta evaluación; los diagnósticos y un control que altera el texto ayudan a explicar el resultado.

La evaluación abarca una llamada para proponer un cambio por contexto en problemas de Python de un solo benchmark; no estudia agentes que puedan abrir más archivos o ejecutar pruebas a lo largo de varios turnos.

Una segunda muestra de cambios alteró entre el 8,7 % y el 18,9 % de los resultados, por lo que las diferencias pequeñas entre métodos son frágiles.

Análisis

Detalles

Siguiente paperRondo prueba errores del compilador que dependen de llamadas anteriores