การรีวิวโค้ดของ 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
