Routine ของผมบอกว่ามันทำงานแล้ว แต่มันกำลังโกหก
ผมรันระบบ AI ระบบนี้ทำงานตามตารางเวลาเพื่อดูแลตัวเอง โดยมี routine หนึ่งที่จะทำงานสัปดาห์ละสองครั้งเพื่อบันทึกไฟล์
ตัว scheduler บอกว่ามันทำงานแล้ว มี timestamp ระบุไว้ สถานะก็เป็นสีเขียว
แต่ไฟล์กลับไม่มีอยู่จริง มันไม่ได้อยู่ในโฟลเดอร์ที่ผิด แต่มันหายไปเลย
คนส่วนใหญ่มักพลาดเรื่องนี้เวลาสร้าง autonomous agents คำว่า "it ran" (มันทำงานแล้ว) กับ "it worked" (มันทำงานสำเร็จ) นั้นไม่เหมือนกัน Dashboard ส่วนใหญ่ตรวจสอบแค่ว่ามันได้เริ่มทำงานหรือไม่เท่านั้น
Scheduler บอกคุณแค่ว่ากระบวนการได้เริ่มต้นขึ้นแล้ว แต่มันไม่ได้บอกอะไรเลยเกี่ยวกับผลลัพธ์ Routine ของผมเริ่มทำงาน เจอข้อผิดพลาดจากการพยายามอ่านไฟล์ที่ไม่มีอยู่ แล้วก็หยุดลง มันไม่ได้ crash และไม่มีข้อความ error สีแดงปรากฏขึ้น มันทำงานแล้ว แต่มันไม่ได้สร้างอะไรออกมาเลย
ผมเลิกดูที่สถานะ แล้วหันไปดูที่ disk แทน โดยผมใช้การตรวจสอบ 3 อย่าง:
- ไฟล์ผลลัพธ์มีอยู่จริงในตอนนี้หรือไม่?
- ไฟล์นั้นเป็นไฟล์ใหม่และไม่ว่างเปล่าใช่ไหม?
- หากไฟล์หายไป ให้ไปอ่าน raw run log อย่าอ่านแค่ summary แต่ให้ไปอ่าน transcript จริงๆ ของทุก tool call
ใน summary บอกว่า routine นี้เป็นแบบ "episodic" แต่ใน transcript บอกความจริงว่า agent พยายามจะอ่านไฟล์ memory แต่ไฟล์นั้นไม่มีอยู่จริง ทำให้ agent ไม่เคยไปถึงขั้นตอนการสร้างไฟล์เลย มันไม่ได้มีการเรียกใช้ write calls เลยแม้แต่ครั้งเดียว
ถ้าผมเชื่อ summary ผมคงแก้ปัญหาผิดจุดไปแล้ว
หากคุณรันระบบ autonomous นี่คือสิ่งที่ต้องจำไว้:
- "Ran" ไม่ใช่ "worked" สุขภาพของระบบดูได้จากตัวไฟล์เอง ไฟล์ต้องมีอยู่จริง ต้องเป็นไฟล์ใหม่ และต้องไม่ว่างเปล่า
- Spec คือสมมติฐาน แต่ disk คือความจริง เมื่อสองอย่างนี้ไม่ตรงกัน ให้เชื่อ disk
- อ่าน raw log เพราะ summary ถูกเขียนขึ้นโดยระบบตัวเดียวกับที่ล้มเหลวนั่นแหละ แต่ transcript จะแสดงให้เห็นว่า tools ไหนที่ทำงานจริงๆ
วิธีแก้ปัญหานั้นง่ายมาก ผมปรับให้ routine เขียนไฟล์ของมันก่อนเป็นอันดับแรก ตอนนี้มันจะเขียนไฟล์ก่อนที่จะเริ่มขั้นตอนอื่นๆ
ปัญหาของ agent ส่วนใหญ่ไม่ใช่เรื่องของความล้มเหลวในการใช้เหตุผล (reasoning failures) แต่มันคือความล้มเหลวของระบบท่อส่งข้อมูล (plumbing failures)
Source: https://dev.to/eltony_lfgi/my-routine-said-it-ran-it-was-lying-2gfb
Optional learning community: https://t.me/GyaanSetuAi
