Agen ini menggunakan AI Generatif untuk menentukan penyebab kesalahan, menyarankan perbaikan, dan bahkan memodifikasi kode yang salah.
Agen akan memulai dari stacktrace dan kemudian membaca kode setiap fungsi yang terlibat untuk mendapatkan lebih banyak konteks. Kemudian ia akan menjelaskan kesalahannya dan menyarankan perbaikan dalam laporan.
Perbaikan juga dapat dilakukan secara otomatis di tempat.
Permintaan penarikan repositori ini adalah contoh perbaikan yang dilakukan oleh agen: https://github.com/Aschen/bug-agent-llm/pulls
Impor agen dan tangkap kesalahan dengan fungsi handleErrorWithAgent
.
app . post ( '/tasks' , ( req , res ) => {
try {
createTask ( req , res ) ;
}
catch ( error ) {
handleErrorWithAgent ( error , { modify : true , verbose : true } ) ;
throw error ;
}
} ) ;
Jalankan salah satu contoh aplikasi: npx ts-node ./examples/context-understanding/app.js
Kirim permintaan: bash ./examples/context-understanding/create.sh
Kesalahan ini disebabkan oleh pengaksesan properti yang tidak ada pada suatu objek.
Properti ini diakses di fungsi createTask
di app.js
tetapi diatur di fungsi addTask
di database.js
.
Agen berhasil menyarankan untuk mengembalikan tugas yang diperbarui termasuk properti baru.
Lihat PR #1
(Lihat contoh direktori aplikasi)
// 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 ;
}
Errornya kurang lebih sama namun kali ini kita perlu mengupdate 2 fungsi tersebut agar bisa mengatasinya.
Lihat PR #2
(Lihat contoh direktori aplikasi)
// 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 ) ;
}