- SWE-agent แปลงโมเดลภาษา (LMs) อย่าง GPT-4 ให้เป็นเอเจนต์วิศวกรรมซอฟต์แวร์เพื่อแก้บั๊กและ issue ใน GitHub repository จริง
- แก้ issue ได้ 12.29% บนชุดทดสอบ SWE-bench ทั้งหมด ทำสถิติประสิทธิภาพสูงสุดบนชุดทดสอบทั้งหมด
อินเทอร์เฟซเอเจนต์-คอมพิวเตอร์ (ACI)
- ผลลัพธ์นี้เกิดขึ้นจากการออกแบบรูปแบบคำสั่งและฟีดแบ็กที่ยึด LM เป็นศูนย์กลาง เพื่อให้เอเจนต์สามารถสำรวจ repository ดู แก้ไข และรันไฟล์โค้ดได้ง่าย
- เรียกสิ่งนี้ว่าอินเทอร์เฟซเอเจนต์-คอมพิวเตอร์ (ACI) และได้สร้าง repository ของ SWE-agent เพื่อให้สามารถทำซ้ำการออกแบบ ACI สำหรับเอเจนต์เขียนโค้ดระดับ repository ได้อย่างง่ายดาย
- แสดงให้เห็นว่าการออกแบบ ACI ที่ดีให้ผลลัพธ์ที่ดีกว่ามากเมื่อใช้งานเอเจนต์
การตั้งค่า
- ติดตั้ง Docker และเริ่มใช้งาน Docker บนเครื่องโลคัล
- ติดตั้ง Miniconda และสร้างสภาพแวดล้อม
swe-agent ด้วย conda env create -f environment.yml
- เปิดใช้งานด้วย
conda activate swe-agent
- รัน
./setup.sh เพื่อสร้าง Docker image ของ swe-agent
- สร้างไฟล์
keys.cfg ที่ root ของ repository นี้ แล้วกรอก API key และ GitHub token ที่จำเป็น
วิธีใช้งาน
- ไปป์ไลน์ของ SWE-agent มี 2 ขั้นตอน ขั้นแรกคือขั้นตอนอนุมานที่รับ GitHub issue เป็นอินพุตและส่งคืน pull request ที่พยายามแก้ issue นั้น
- ขั้นตอนที่สองทำได้เฉพาะกับ issue ที่อยู่ในเบนช์มาร์ก SWE-bench เท่านั้น และเป็นขั้นตอนประเมินผลเพื่อตรวจสอบว่า pull request ที่สร้างขึ้นสามารถแก้ issue ได้จริงหรือไม่
การประเมินผล
- ขั้นตอนนี้ทำได้เฉพาะกับ issue ในชุด SWE-bench เท่านั้น
- เพื่อประเมิน pull request ที่สร้างขึ้น ให้ย้ายไปยังไดเรกทอรี
evaluation/ แล้วรัน ./run_eval.sh
ความเห็นของ GN⁺
- SWE-agent นำเสนอแนวทางที่ล้ำสมัยในการใช้โมเดลภาษาเพื่อแก้ GitHub issue จริง ซึ่งช่วยขยายความเป็นไปได้ของระบบอัตโนมัติในกระบวนการพัฒนาซอฟต์แวร์
- เทคโนโลยีนี้มีศักยภาพที่จะช่วยให้นักพัฒนาหลุดพ้นจากงานแก้บั๊กซ้ำๆ และไปโฟกัสกับการแก้ปัญหาที่สร้างสรรค์และซับซ้อนมากขึ้น
- การเน้นย้ำความสำคัญของการออกแบบ ACI ยังชี้ให้เห็นถึงความสำคัญของการออกแบบอินเทอร์เฟซที่ช่วยเพิ่มประสิทธิภาพการปฏิสัมพันธ์ระหว่างมนุษย์กับเครื่องจักร
3 ความคิดเห็น
ถ้าเอเจนต์แบบนั้นทำงานไปพร้อมกับถามนักพัฒนาแบบนี้ได้ ก็น่าจะดีมากเลยนะครับ
"ผมลองเอาวิธีทำให้เกิดซ้ำที่อธิบายไว้ในบั๊กรายงานมาทำเป็นโค้ดทดสอบสำหรับจำลองปัญหาแล้ว ช่วยดูโค้ดนี้หน่อยได้ไหมว่า สิ่งที่ผมเข้าใจถูกต้องหรือเปล่า?"
"แทนดีไซน์นี้ ถ้ารีแฟกเตอร์แบบนี้แบบนี้ น่าจะลดโค้ดได้ 20,312 บรรทัดทั้งโปรเจกต์เลยนะ do you approve?"
เป็นโอเพนซอร์สที่น่าสนใจนะ
ความคิดเห็นจาก Hacker News
ความคิดเห็นเกี่ยวกับรายงานบั๊ก:
ความคิดเห็นเกี่ยวกับโปรเจกต์:
ความคิดเห็นเกี่ยวกับวิธีวิทยาที่ใช้:
ความคิดเห็นเกี่ยวกับ AI และ bug tracker:
ความคิดเห็นเกี่ยวกับเบนช์มาร์ก SWEbench:
ความคิดเห็นเกี่ยวกับการเปรียบเทียบเดโม:
ความคิดเห็นเกี่ยวกับงานรีวิว:
ความคิดเห็นเกี่ยวกับโปรเจกต์ที่คล้ายกัน:
ความคิดเห็นที่เสนอถึงผู้เขียน:
ความคิดเห็นเกี่ยวกับการมีส่วนร่วมในโปรเจกต์โอเพนซอร์ส: