Этот агент использует генеративный искусственный интеллект, чтобы определить причину ошибки, предложить исправление и даже изменить ошибочный код.
Агент начнет с трассировки стека, а затем прочитает код каждой задействованной функции, чтобы получить больше контекста. Затем он объяснит ошибку и предложит исправление в отчете.
Исправление также может быть выполнено автоматически на месте.
Запросы на включение этого репозитория являются примером исправления, сделанного агентом: https://github.com/Aschen/bug-agent-llm/pulls
Импортируйте агент и поймайте ошибку с помощью функции handleErrorWithAgent
.
app . post ( '/tasks' , ( req , res ) => {
try {
createTask ( req , res ) ;
}
catch ( error ) {
handleErrorWithAgent ( error , { modify : true , verbose : true } ) ;
throw error ;
}
} ) ;
Запустите одно из примеров приложений: npx ts-node ./examples/context-understanding/app.js
Отправить запрос: bash ./examples/context-understanding/create.sh
Эта ошибка вызвана доступом к свойству, которого нет в объекте.
Доступ к свойству осуществляется в функции createTask
файла app.js
, но он задается в функции addTask
файла database.js
Агент успешно предлагает вернуть обновленную задачу, включая новое свойство.
См. PR №1
(См. пример каталога приложений)
// 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 ;
}
Ошибка более или менее та же самая, но на этот раз нам нужно обновить две функции, чтобы ее решить.
См. PR №2
(См. пример каталога приложений)
// 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 ) ;
}