บทความ

ลองใช้ defuss-vae: ทำให้ AI agent หยุดสร้างโค้ดขยะ

ผมใช้ AI agent เขียนโค้ดมาพักใหญ่แล้ว เจอปัญหาเดิมซ้ำๆ: agent บอกว่า "เสร็จแล้ว" แต่จริงๆ แล้วยังมี debug marker หลงเหลือ, test ผ่านแต่ไม่มีใครเช็คว่า docs ตรงกับโค้ดจริงไหม หรือ commit ไปแล้วค่อยพบว่า pattern เดิมที่เคยแก้กลับมาอีก

ช่วงนี้เลยได้ลองเล่น defuss-vae(vae.defuss.org) ซึ่งเป็น extension สำหรับ Claude Code, Codex และ agent อื่นๆ แนวคิดของมันตรงจุดมาก เลยอยากเล่าให้ฟังว่าใช้แล้วเป็นยังไง

มันทำอะไร?

พูดง่ายๆ คือมันเปลี่ยน "มาตรฐานคุณภาพ" ของ repo ให้เป็นdeterministic checks ที่รันได้จริงก่อน commit ไม่ใช่แค่ test — แต่รวม verification, code review และ docs ด้วย จุดสำคัญคือ check พวกนี้เป็น plain Python (standard library ล้วน)ไม่เสีย token ของ model เลย

ถ้า check ไหน fail มันจะ "กัน" commit ไว้ แล้วส่ง instruction ที่ชัดเจนกลับไปให้ agent เป็น task ถัดไป — เช่น REMAINS: hygiene.probes พร้อมบอกไฟล์และบรรทัดที่ต้องแก้ agent แก้เสร็จเรียก gate ใหม่จนกว่าจะเขียวถึงจะ commit ได้

สิ่งที่ผมชอบที่สุด: บทเรียนกลายเป็น gate ถาวร

นี่คือจุดที่ผมว่าเจ๋งจริงๆ — ปกติเวลา agent ทำพลาดแล้วเรามาสอนมัน ครั้งหน้ามันอาจลืม แต่ defuss-vae มีคำสั่ง wrapที่จะ "codify" บทเรียนนั้นให้เป็น verifier rule หรือ test ใหม่ ทุก gate ต่อจากนั้นจะเช็ค pattern เดิมอัตโนมัติ

ใน paper ของเขาเอง เล่าเคสที่ verifier โตจาก 33 เป็น 87 checks ตลอดการพัฒนา — แปลว่าทุกครั้งที่เจอ slop ใหม่ ระบบมันแน่นขึ้นเรื่อยๆ ไม่ใช่แค่จำไว้ใน memory (ที่จริงมันก็มี MEMORY.md และ EPISODES.md สำหรับสิ่งที่ program เช็คไม่ได้ แต่ memory เป็นแค่ "ชั้นรอง" — verifier คือของจริง)

เหมาะกับใคร

  • คนที่ใช้ agent เขียนโค้ดจริงจัง — ถ้าแค่ลองๆ อาจรู้สึก overhead แต่ถ้า commit บ่อยๆ มันคุ้มมาก
  • repo ที่มีมาตรฐานชัดเจน — ยิ่งมีกฎเยอะ (ห้าม mock, ต้องมี docs, ต้อง verify) ยิ่งได้ประโยชน์เต็มที่
  • ทีมที่อยาก review เฉพาะจุดเสี่ยง — เพราะ gate จัดการส่วนที่ machine เช็คได้หมด คนเหลือแค่อ่าน diff ที่ผ่าน gate แล้ว

ข้อควรรู้ก่อนใช้

  • ต้องมี Makefile verbs ของตัวเองอยู่แล้ว (build, test, verify) เพราะมันเรียกใช้ tools เดิมของ repo ไม่ได้บังคับ framework
  • ตอนแรกต้องเขียน rule ใน .vae/VERIFY.py เองบ้าง แต่มี stack defaults ให้ก่อนแล้วค่อยเติมของ repo
  • ถ้า commit ถูก gate กันบ่อยๆ แปลว่าต้องปรับ rule ให้สมเหตุสมผล ไม่ใช่ปิดทิ้ง — เพราะจุดประสงค์คือกัน slop จริงๆ

สรุป

defuss-vae ไม่ได้ทำให้ AI เขียนโค้ดเก่งขึ้น แต่มันทำให้โค้ดที่ AI เขียนถูกบังคับผ่านด่านคุณภาพเดียวกันทุกครั้งสำหรับผมที่ใช้ agent เป็นหลัก มันช่วยลด "slop" ได้จริง — น้อยลงทุก commit เพราะบทเรียนแต่ละครั้งกลายเป็น check ถาวร แนะนำให้ลองถ้าคุณ commit บ่อยและอยากให้ repo สะอาดขึ้นเรื่อยๆ MIT license ด้วย ใช้เชิงพาณิชย์ได้ไม่ต้องกังวล

ลองดูได้ที่ vae.defuss.orgและ repo บน GitHub — ถ้าใช้แล้วเจอปัญหาหรือ rule ที่อยากแชร์ เขียนมาในบทความหน้ามาได้ครับ