bug agent llm
1.0.0
該代理程式使用生成式人工智慧來確定錯誤原因,提出修復建議,甚至修改錯誤程式碼。
代理將從堆疊追蹤開始,然後讀取所涉及的每個函數的程式碼以獲取更多上下文。然後它會在報告中解釋錯誤並建議修復。
修復也可以自動就地進行。
此儲存庫的拉取請求是代理程式所做的修復範例: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
此錯誤是由於存取對像上不存在的屬性而引起的。
該屬性在app.js
的createTask
函數中訪問,但在database.js
的addTask
函數中設定。
代理成功建議傳回包含新屬性的更新任務。
請參閱 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 ;
}
錯誤或多或少是相同的,但這次我們需要更新 2 個函數才能解決它。
請參閱 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 ) ;
}