ระบบติดตาม AI Coding Agent เป็นระบบรายงานตัวเองและทำไมบอร์ดกับโค้ดถึงแยกทางกัน
ปัญหาโครงสร้างของ AI coding agent ที่เขียนรายงานความคืบหน้าของตัวเอง และวิธีแก้ด้วยการให้เครื่องมือตรวจสอบความจริงจากระบบ

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- AI coding agent ทำงานเสร็จแล้วเขียนรายงานความคืบหน้าของตัวเองโดยไม่มีคนตรวจสอบ
- บอร์ดติดตามงานและโค้ดในรีโปมักจะแยกทางกันทันทีเมื่อนักพัฒนาหยุดเฝ้าระวัง
- การแก้ปัญหาต้องใช้ระบบที่ดึงความจริงจากเครื่องมือภายนอก เช่น คำสั่งตรวจสอบที่มนุษย์กำหนด
- เครื่องมือใหม่ชื่อ Shipward ถูกสร้างขึ้นมาเพื่อแก้ปัญหานี้ด้วย MIT ไลเซนส์
วันที่ 27 กรกฎาคมที่ผ่านมา ขณะที่กำลังเปิดโปรเจกต์ที่สร้างขึ้นด้วย Claude Code นักพัฒนาพบปัญหาที่ซ่อนอยู่สามอย่างพร้อมกัน ปัญหานั้นไม่ใช่เพราะตัวเอเจนต์เขียนโค้ดแย่ โค้ดใช้งานได้ปกติ แต่เป็นเพราะบันทึกความคืบหน้าของโค้ดที่เอเจนต์ทำไว้ค่อยๆ พังทลายลงทีละน้อย โดยที่ไม่มีสัญญาณเตือนล่วงหน้าให้สังเกตเห็นเลย
ก่อนหน้านี้เคยโทษผิดจุดมานานหลายสัปดาห์ พยายามแก้ด้วยวิธีทั่วไป เช่น ปรับแต่งไฟล์ CLAUDE.md ให้เข้มงวดขึ้น ใช้ตัวติดตามงานที่มีพรอมต์ดีขึ้น หรือใส่ฮุกคอยเตือน วิธีเหล่านี้ช่วยได้เพียงเล็กน้อยเท่านั้น แต่ไม่ได้แตะต้องปัญหาเชิงโครงสร้างที่แท้จริง
ปัญหาที่แท้จริงคือ เอเจนต์เป็นคนทำงาน และเอเจนต์ก็เป็นคนเขียนใบรายงานคะแนนของตัวเอง ปัญหาโหมดความล้มเหลวมีแค่นั้น ตัวติดตามงานเป็นเหมือนตู้เก็บเอกสาร เอเจนต์บอกว่าเสร็จแล้วและเทสต์ผ่าน บอร์ดก็เก็บบันทึกข้อความนั้นไว้ โดยไม่มีส่วนไหนเลยที่ตั้งคำถามว่ามันจริงหรือไม่

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ดังนั้น สิ่งเดียวที่คั่นกลางระหว่างคำกล่าวอ้างกับความทรงจำของโปรเจกต์ก็คือนักพัฒนาที่คอยอ่าน diff ทีละบรรทัด มนุษย์คือขั้นตอนการตรวจสอบ นั่นคือเหตุผลว่าทำไมจึงละสายตาจากหน้าจอไม่ได้ขณะที่เอเจนต์กำลังทำงาน และเป็นเหตุผลที่ทำให้บอร์ดกับรีโปแยกทางกันทันทีที่หยุดเฝ้าดู
ในมุมมองของการพัฒนาซอฟต์แวร์ยุค AI ปัญหาความน่าเชื่อถือของเอเจนต์ (Agentic Reliability) กลายเป็นความท้าทายหลัก เนื่องจากโมเดลภาษาถูกออกแบบมาให้ตอบสนองความต้องการของผู้ใช้โดยพยายามทำตามคำสั่งให้สำเร็จ มากกว่าการตรวจสอบความถูกต้องอย่างเป็นวิทยาศาสตร์ การปล่อยให้เอเจนต์ประเมินผลงานของตัวเองจึงมีความเสี่ยงสูงที่จะเกิดการรายงานผลที่คลาดเคลื่อนจากความเป็นจริง
คำแนะนำทั่วไปไม่สามารถแก้ปัญหานี้ได้ ผู้พัฒนาเคยเขียนคำแนะนำเหล่านี้มาแล้ว เซิร์ฟเวอร์ MCP ทั้งหมดสำหรับโปรเจกต์นี้ถูกสร้างขึ้นโดยไม่เคยเรียกคำสั่ง start เลย การ์ดงานยังคงอยู่ใน Backlog ในขณะที่มีการเขียนโค้ดไปแล้วถึง 500 บรรทัด หากตัวผู้สร้างโปรโตคอลเองยังหลุดโฟกัสระหว่างเซสชัน โปรโตคอลนั้นก็เป็นได้แค่วิชญาณหรือความปรารถนา ไม่ใช่กลไกที่ใช้งานได้จริง
แนวทางใหม่จึงเปลี่ยนจากการพยายามทำให้เอเจนต์มีความน่าเชื่อถือมากขึ้น เป็นการตั้งคำถามกับทุกข้อเท็จจริงบนบอร์ดว่า ใครมีอำนาจในการยืนยันสิ่งนี้ โดยมีหลักการตรวจสอบดังนี้:
- คำสั่งผ่านหรือไม่ เครื่องจักรต้องเป็นผู้ยืนยัน เมื่อเอเจนต์ส่งการ์ดกลับมา ตัวติดตามจะรันการตรวจสอบของโปรเจกต์ก่อน และจะให้สถานะผ่านก็ต่อเมื่อคำสั่งจบด้วยรหัสศูนย์
- งานถูกส่งเข้าเมนหรือยัง Git เป็นเครื่องยืนยัน หากคอมมิทของการ์ดเป็นบรรพบุรุษของ main แล้ว บอร์ดจะถูกแก้ไขโดยอัตโนมัติเมื่อเริ่มเซสชัน
- บันทึกนี้ยังจริงอยู่ไหม Diff เป็นเครื่องยืนยัน บันทึกทุกลำดับจะระบุรหัส sha ที่มันเคยเป็นจริง เพื่อบอกว่าต้นไม้ของโค้ดขยับไปไกลแค่ไหนแล้ว
การเก็บรักษาบอร์ดไว้ใน git เป็นเพียงการจัดเก็บ แต่การให้ git มาคัดค้านบอร์ดได้คือการชี้ขาด นั่นคือความแตกต่างและคือหัวใจทั้งหมดของผลิตภัณฑ์นี้ โปรเจกต์นี้ถูกพัฒนาขึ้นจนมี 75 การ์ดงานและ 274 บันทึกย่อ รวมกว่า 43,000 คำที่เอเจนต์เขียนขึ้นระหว่างทำงาน รวมถึงข้อผิดพลาดต่างๆ เช่น บั้กการล็อกที่ทำให้ข้อมูลหาย หรือฟีเจอร์ความปลอดภัยที่เปลี่ยนข้อผิดพลาดให้เงียบสนิท
"การจับคู่ข้อผิดพลาดครั้งแรกของเครื่องมือคือเครื่องมือจับตัวผมเอง"
Alberto Clemente

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
เครื่องมือดังกล่าวมีชื่อว่า Shipward เปิดใช้งานภายใต้ไลเซนส์ MIT ไม่มีดีเพนเดนซี ไม่มีขั้นตอนการบิวด์ รองรับ Node 20 ขึ้นไป และมีชุดทดสอบถึง 547 รายการ หากคุณใช้งานเอเจนต์เขียนโค้ดอยู่ สามารถเข้าไปดูรายละเอียดเพิ่มเติมได้ที่รีโปสิตอรีทางการ
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น