การรีวิวโค้ดของ GLM-5.2 ขึ้นอยู่กับ Prompt ของคุณ

GLM-5.2 จาก Z.ai เป็นโมเดลแบบ open-weight ที่ได้รับความนิยม เราได้ทำการทดสอบเพื่อดูว่ามันสามารถรีวิวโค้ดได้ดีแค่ไหน และพบว่าคุณภาพของผลลัพธ์จะเปลี่ยนแปลงไปตามวิธีการที่คุณสื่อสารกับมัน

เราได้ทำการทดสอบสองรูปแบบ ในการทดสอบแรก เราใช้ TypeScript backend แบบง่ายที่มีบั๊ก 16 จุด ส่วนในการทดสอบที่สอง เราได้สร้างระบบที่ซับซ้อนซึ่งมีบั๊กที่ตรวจจับได้ยาก 10 จุด ซึ่งบั๊กเหล่านี้จำเป็นต้องอาศัยความเข้าใจว่าส่วนประกอบต่างๆ ของแอปพลิเคชันทำงานร่วมกันอย่างไร

สิ่งที่เราได้เรียนรู้มีดังนี้:

  • การใช้คำใน Prompt สำคัญกว่าความพยายามในการใช้เหตุผล (reasoning effort) การเปลี่ยน Prompt ส่งผลต่อผลลัพธ์มากกว่าการสลับโหมดการใช้เหตุผลจากระดับต่ำไปสูง
  • Prompt ที่เข้มงวดเกินไปอาจให้ผลลัพธ์ที่ย้อนกลับมาทำร้ายเราได้ หากคุณสั่งโมเดลว่าให้ "block หรือ approve a production PR" มันจะไปโฟกัสที่เรื่องความปลอดภัย เช่น การหา hardcoded secrets หรือการทำ hashing ที่อ่อนแอ แต่มันกลับมองข้ามบั๊กทางตรรกะ (logic bugs) จริงๆ ที่คุณต้องการให้มันหา
  • บั๊กเฉพาะจุด (Local bugs) เป็นเรื่องง่ายสำหรับ GLM-5.2 มันสามารถตรวจจับข้อผิดพลาดภายในฟังก์ชันเดียวได้ เช่น permission guard ที่ทำงานผิดพลาด หรือการใช้ตัวแปรผิด
  • บั๊กที่ส่งผลกระทบทั้งระบบ (System-wide bugs) เป็นเรื่องยากสำหรับ GLM-5.2 มันมักจะมีปัญหากับกฎที่ครอบคลุมหลายไฟล์ ตัวอย่างเช่น มันพลาดกรณีที่งานที่ถูกเก็บถาวร (archived tasks) หลุดเข้าไปในผลการค้นหาและการส่งออกข้อมูล (exports)
  • โมเดลระดับแนวหน้า (Frontier models) มีความน่าเชื่อถือมากกว่า โดย GPT-5.5 และ Opus 4.8 สามารถตรวจพบความผิดพลาดที่ซับซ้อนและข้ามเส้นทาง (cross-route bugs) ได้ในการตรวจสอบเพียงครั้งเดียว ในขณะที่ GLM-5.2 ยังให้ผลลัพธ์ที่ไม่สม่ำเสมอสำหรับงานประเภทนี้

วิธีการใช้ GLM-5.2 อย่างมีประสิทธิภาพ:

  • ใช้สำหรับตรรกะเฉพาะจุด (local logic) มันทำงานได้ดีเยี่ยมในการหาข้อผิดพลาดภายในฟังก์ชันเดียว
  • ระบุคำสั่งให้ชัดเจน แทนที่จะขอให้รีวิวแบบ "strict" ให้เปลี่ยนเป็นสั่งให้ตรวจสอบความสอดคล้อง (consistency) ระหว่างเส้นทาง (routes) ต่างๆ แทน
  • ระบุพฤติกรรมที่คุณต้องการตรวจสอบ เช่น สั่งให้ตรวจสอบว่าการค้นหา (search), การส่งออก (exports) และรายการ (lists) จัดการข้อมูลด้วยวิธีเดียวกันทั้งหมดหรือไม่
  • อย่าพึ่งพาการตรวจสอบเพียงครั้งเดียวสำหรับโค้ดที่มีความสำคัญสูง เนื่องจากผลลัพธ์มีความผันผวน คุณควรสั่งให้ตรวจสอบหลายครั้งหรือใช้โมเดลที่ทรงพลังกว่าสำหรับการเปลี่ยนแปลงที่ซับซ้อน

GLM-5.2 เป็นเครื่องมือที่มีความสามารถ แต่คุณต้องปรับ Prompt ให้เหมาะสมกับงานที่ทำ

Source: https://dev.to/kilocode/glm-52s-code-reviews-are-only-as-good-as-your-prompt-5233

Optional learning community: https://t.me/GyaanSetuAi