ทีม Princeton เปิดตัว Coding Agent 100 บรรทัดท้าทาย Approach ที่ซับซ้อนและใช้เครื่องมือมากมาย

ทีมชุมชน BigGo
ทีม Princeton เปิดตัว Coding Agent 100 บรรทัดท้าทาย Approach ที่ซับซ้อนและใช้เครื่องมือมากมาย

ทีม Princeton SWE-bench ได้เปิดตัว coding agent ที่เรียบง่ายอย่างน่าประหลาดใจซึ่งมีประสิทธิภาพดีใน software engineering benchmarks โดยใช้โค้ดเพียง 100 บรรทัด วิธีการแบบมินิมอลนี้ได้จุดประกายการถกเถียงอย่างเข้มข้นในชุมชนนักพัฒนาเกี่ยวกับว่าเครื่องมือที่เรียบง่ายอาจมีประสิทธิภาพมากกว่าทางเลือกที่ซับซ้อนและมีฟีเจอร์มากมาย

ข้อมูลจำเพาะของ Princeton Mini-SWE-Agent

  • ฐานโค้ด: โค้ด Python ประมาณ 100 บรรทัด
  • เครื่องมือหลัก: คำสั่ง Bash และการดำเนินการ shell พื้นฐาน
  • ความเข้ากันได้กับโมเดล: ทำงานได้กับ LLM ใดๆ ไม่ว่าจะมีขนาดเท่าไหร่
  • สถาปัตยกรรม: ระบบแบบ prompt-based อย่างง่ายพร้อมการรันคำสั่ง shell
  • Repository: มีให้บน GitHub ในชื่อ SWE-agent/mini-swe-agent

คำสั่ง Bash ง่ายๆ มีประสิทธิภาพเหนือกว่าเครื่องมือเฉพาะทาง

mini-swe-agent ของทีม Princeton อาศัยคำสั่ง bash พื้นฐานเป็นหลักมากกว่าเครื่องมือโปรแกรมมิ่งเฉพาะทาง วิธีการนี้ขัดแย้งกับความเชื่อทั่วไปที่ว่า coding agents ต้องการเครื่องมือที่ซับซ้อนหลายตัวเพื่อจัดการกับงานต่างๆ ได้อย่างมีประสิทธิภาพ agent นี้ใช้คำสั่ง shell ที่ตรงไปตรงมาสำหรับการดำเนินการไฟล์ การค้นหาโค้ด และงานแก้ไขที่ agents อื่นๆ จัดการด้วยเครื่องมือเฉพาะทาง

การอภิปรายในชุมชนเผยให้เห็นว่าวิธีการแบบมินิมอลิสต์นี้มีข้อได้เปรียบที่ไม่คาดคิด agent สามารถทำงานกับ large language model ใดๆ ไม่ว่าจะมีขนาดเท่าไหร่ ในขณะที่ทางเลือกที่ใช้เครื่องมือมากมายมักจะมีปัญหากับโมเดลที่เล็กกว่า ความยืดหยุ่นนี้ทำให้วิธีการเรียบง่ายเข้าถึงได้ง่ายและคุ้มต้นทุนมากกว่าสำหรับนักพัฒนาที่ทำงานด้วยทรัพยากรที่จำกัด

การใช้งาน JavaScript แบบง่ายๆ ของปัญหา FizzBuzz แบบคลาสสิกที่แสดงให้เห็นความเรียบง่ายในการเขียนโค้ด
การใช้งาน JavaScript แบบง่ายๆ ของปัญหา FizzBuzz แบบคลาสสิกที่แสดงให้เห็นความเรียบง่ายในการเขียนโค้ด

ประสิทธิภาพ Token และความกังวลเรื่องต้นทุนเป็นตัวขับเคลื่อนการตัดสินใจออกแบบ

การถกเถียงขยายไปเกินกว่าการทำงานไปถึงการพิจารณาทางเศรษฐกิจ นักพัฒนากำลังกังวลมากขึ้นเกี่ยวกับต้นทุนของการรัน coding agents เนื่องจากการดำเนินการแต่ละครั้งใช้ API tokens ที่มีราคาแพง วิธีการของทีม Princeton แก้ไขปัญหานี้โดยการลดความซับซ้อนของการโต้ตอบระหว่าง AI model และ codebase

You just keep throwing money at the loop, and then you've got yourself an agent.

อย่างไรก็ตาม ชุมชนยังคงแบ่งแยกความคิดเห็นเกี่ยวกับว่าเครื่องมือเฉพาะทางปรับปรุงประสิทธิภาพได้ดีพอที่จะสมเหตุสมผลกับความซับซ้อนหรือไม่ นักพัฒนาบางคนโต้แย้งว่าเครื่องมือ file-listing และ code-editing เฉพาะทางให้ผลลัพธ์ที่ดีกว่าเพราะ AI models สมัยใหม่ได้รับการฝึกฝนเฉพาะกับ tool patterns เหล่านี้ คนอื่นๆ ยืนยันว่าคำสั่ง bash ให้การทำงานที่เพียงพอในขณะที่รักษาความเรียบง่าย

การเปรียบเทียบเครื่องมือ: แนวทางแบบเรียบง่ายเทียบกับแบบซับซ้อน

  • แนวทางมินิมอลลิสต์: ใช้เพียงเครื่องมือ Bash เท่านั้น รองรับ LLM ได้หลากหลาย ใช้ token น้อยกว่า
  • แนวทางแบบดั้งเดิม: ใช้เครื่องมือเฉพาะทางหลายตัว (การแสดงรายการไฟล์ การแก้ไขโค้ด การค้นหา) ใช้ token มากกว่า ประสิทธิภาพดีกว่าเมื่อใช้กับโมเดลขนาดใหญ่
  • ปัจจัยด้านต้นทุน: การใช้ token ส่งผลโดยตรงต่อต้นทุนการดำเนินงาน ทำให้แนวทางที่เรียบง่ายประหยัดกว่า
  • การแลกเปลี่ยนประสิทธิภาพ: เครื่องมือเฉพาะทางอาจให้ความแม่นยำที่ดีกว่า แต่ต้องใช้ทรัพยากรการคำนวณมากกว่า
ผลกระทบของการเลือกใช้เครื่องมือเขียนโค้ดแบบง่ายต่อประสิทธิภาพและต้นทุนในการพัฒนาซอฟต์แวร์
ผลกระทบของการเลือกใช้เครื่องมือเขียนโค้ดแบบง่ายต่อประสิทธิภาพและต้นทุนในการพัฒนาซอฟต์แวร์

คำถามเกี่ยวกับประสิทธิภาพในโลกแห่งความจริงยังไม่ได้รับคำตอบ

แม้จะมีความสำเร็จทางเทคนิค สมาชิกในชุมชนกำลังถามคำถามสำคัญเกี่ยวกับการประยุกต์ใช้ในทางปฏิบัติ นักพัฒนาหลายคนต้องการเห็นหลักฐานของ agents เหล่านี้ที่ทำโปรเจ็กต์ในโลกแห่งความจริงขนาดใหญ่สำเร็จ ไม่ใช่แค่งาน benchmark ช่องว่างระหว่างการสาธิตและการใช้งานจริงยังคงเป็นความกงวลที่สำคัญ

การอภิปรายยังเน้นย้ำถึงความท้าทายที่ยังคงอยู่กับ AI coding agents รวมถึงแนวโน้มที่จะทำการเปลี่ยนแปลงที่ไม่จำเป็น ติดอยู่ใน error loops และมีปัญหากับ codebase ขนาดใหญ่ที่มีอยู่แล้ว ปัญหาเหล่านี้ยังคงอยู่ไม่ว่า agents จะใช้ tool sets ที่เรียบง่ายหรือซับซ้อน ซึ่งบ่งชี้ว่าวิธีการพื้นฐานสำหรับ AI-assisted coding อาจต้องการการปรับปรุงเพิ่มเติม

งานของทีม Princeton แสดงให้เห็นว่า coding agents ที่มีประสิทธิภาพไม่จำเป็นต้องใช้สถาปัตยกรรมที่ซับซ้อน ในขณะที่เทคโนโลยียังคงพัฒนาอย่างรวดเร็ว วิธีการที่เรียบง่ายนี้อาจมีอิทธิพลต่อวิธีที่นักพัฒนาสร้างและใช้งาน AI coding assistants ในเวิร์กโฟลว์ประจำวันของพวกเขา

Reference: How to build a coding agent. Free workshop