Este agente utiliza IA generativa para determinar la causa de un error, sugerir una solución e incluso modificar el código defectuoso.
El agente comenzará desde el seguimiento de la pila y luego leerá el código de cada función involucrada para obtener más contexto. Luego explicará el error y sugerirá una solución en un informe.
La corrección también se puede realizar automáticamente en el lugar.
Las solicitudes de extracción de este repositorio son un ejemplo de corrección realizada por el agente: https://github.com/Aschen/bug-agent-llm/pulls
Importe el agente y detecte un error con la función handleErrorWithAgent
.
app . post ( '/tasks' , ( req , res ) => {
try {
createTask ( req , res ) ;
}
catch ( error ) {
handleErrorWithAgent ( error , { modify : true , verbose : true } ) ;
throw error ;
}
} ) ;
Ejecute una de las aplicaciones de ejemplo: npx ts-node ./examples/context-understanding/app.js
Enviar una solicitud: bash ./examples/context-understanding/create.sh
Este error se produce al acceder a una propiedad que no existe en un objeto.
Se accede a la propiedad en la función createTask
de app.js
pero se establece en la función addTask
de database.js
.
El agente sugiere con éxito devolver una tarea actualizada que incluya la nueva propiedad.
Ver el PR #1
(Ver directorio de aplicaciones de ejemplo)
// app.js
function createTask ( req , res ) {
const newTask = req . body ;
verifyTask ( newTask ) ;
const savedTask = database . addTask ( newTask ) ;
res . status ( 201 ) . send ( `Task ${ savedTask . metadata . id } saved successfully` ) ;
}
// database.js
function addTask ( newTask ) {
const tasks = readTasksFromFile ( ) ;
tasks . push ( { ... newTask , metadata : { id : generateId ( ) } } ) ;
writeTasksToFile ( tasks ) ;
return newTask ;
}
El error es más o menos el mismo pero esta vez necesitamos actualizar las 2 funciones para poder solucionarlo.
Ver el PR #2
(Ver directorio de aplicaciones de ejemplo)
// app.js
function createTask ( req , res ) {
const newTask = req . body ;
verifyTask ( newTask ) ;
database . addTask ( newTask ) ;
res . status ( 201 ) . send ( `Task ${ newTask . metadata . id } saved successfully` ) ;
}
// database.js
function addTask ( newTask ) {
const tasks = readTasksFromFile ( ) ;
tasks . push ( { ... newTask , metadata : { id : generateId ( ) } } ) ;
writeTasksToFile ( tasks ) ;
}