เอเจนต์นี้ใช้ Generative AI เพื่อระบุสาเหตุของข้อผิดพลาด แนะนำการแก้ไข และแม้กระทั่งแก้ไขโค้ดที่ผิดพลาด
เอเจนต์จะเริ่มต้นจากสแต็กเทรซ จากนั้นอ่านโค้ดของทุกฟังก์ชันที่เกี่ยวข้องเพื่อรับบริบทเพิ่มเติม จากนั้นจะอธิบายข้อผิดพลาดและแนะนำการแก้ไขในรายงาน
การแก้ไขยังสามารถทำได้โดยอัตโนมัติอีกด้วย
คำขอดึงของที่เก็บนี้เป็นตัวอย่างของการแก้ไขที่ทำโดยตัวแทน: 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
ตัวแทนแนะนำให้ส่งคืนงานที่อัปเดตรวมถึงคุณสมบัติใหม่ได้สำเร็จ
ดูประชาสัมพันธ์ #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 ฟังก์ชันเพื่อแก้ไข
ดูประชาสัมพันธ์ #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 ) ;
}