ผู้นำทางความคิด

เหตุใดเอเจนต์ AI จึงต้องมีหลักฐานก่อนลองอีกครั้ง

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

วิธีป้องกันไม่ให้การตอบกลับที่สูญหายกลายเป็นการดำเนินการซ้ำ

เอเจนต์ฝ่ายสนับสนุนที่ได้รับอนุญาตให้ออกเงินคืนหนึ่งรายการส่งคำขอ แต่การเชื่อมต่อขาดหายไป เอเจนต์ไม่ได้รับการยืนยันว่าดำเนินการสำเร็จ จึงพยายามส่งคำขอคืนเงินอีกครั้ง หากคำขอเดิมดำเนินการสำเร็จแล้ว การดำเนินการซ้ำของเอเจนต์อาจทำให้มีการคืนเงินเป็นครั้งที่สอง

นี่เป็นเพียงสถานการณ์สมมติ ตัวอย่างนี้แสดงให้เห็นถึงปัญหาที่ไม่อาจแก้ได้ด้วยความแม่นยำของโมเดลเพียงอย่างเดียว หากเอเจนต์ไม่อาจระบุได้ว่าการกระทำก่อนหน้าเปลี่ยนแปลงสถานะของสภาพแวดล้อมหรือไม่ เอเจนต์ควรดำเนินการอย่างไร

Unite.AI ได้สำรวจความน่าเชื่อถือของเอเจนต์ในแง่มุมที่นอกเหนือจากโมเดล ประเด็นเกี่ยวกับการกู้คืนควรมีกฎเฉพาะของตนเองในการพูดคุยเหล่านั้น ก่อนดำเนินการที่มีผลตามมาอีกครั้ง เอเจนต์ควรตรวจสอบให้แน่ใจว่าเกิดอะไรขึ้น หรือมีหลักประกันที่เชื่อถือได้ว่าจะไม่เกิดผลซ้ำ

การไม่ได้รับการตอบกลับไม่ได้ยืนยันว่าการดำเนินการล้มเหลว

การไม่ได้รับการตอบกลับไม่ได้ยืนยันว่าการดำเนินการล้มเหลว และไม่ได้บ่งชี้ว่ามีข้อผิดพลาดเกิดขึ้นก่อนเริ่มดำเนินการหรือไม่ การดำเนินการเสร็จสิ้นแล้วแต่ไม่มีการตอบรับหรือไม่ หรือกระบวนการยังดำเนินอยู่หรือไม่

นี่เป็นปัญหาที่พบได้ทั่วไปในระบบแบบกระจาย ดังที่ Amazon อธิบายไว้ Amazon อธิบายว่าทำไมกลไกการลองใหม่จึงต้องมีมาตรการป้องกันเฉพาะเพื่อไม่ให้เกิดผลข้างเคียงซ้ำ เอเจนต์เพิ่มหน่วยตัดสินใจใหม่เข้ามาในเส้นทางการกู้คืนของระบบ และอาจตัดสินใจเพิ่มเติมเกี่ยวกับวิธีกู้คืนจากข้อผิดพลาด

การตัดสินใจเหล่านี้อาจทำให้วิธีดำเนินธุรกิจเปลี่ยนแปลงไป ตัวอย่างเช่น การลองคืนเงินอีกครั้งด้วยจำนวนเงินดอลลาร์ที่ต่างออกไปไม่ใช่เพียงการส่งคำขอเดิมซ้ำอีกครั้ง เช่นเดียวกัน การเลือกใช้บริการชำระเงินรายที่สองเมื่อรายแรกหยุดตอบสนอง ก็ไม่ใช่เพียงการส่งคำขอเดิมซ้ำอีกครั้ง

ทีมงานต้องแยกให้ชัดระหว่างการอนุญาตให้ดำเนินการ กับการอนุญาตให้กู้คืนจากผลลัพธ์ที่ยังไม่ทราบแน่ชัด การอนุมัติครั้งแรกไม่ได้หมายความว่าการดำเนินการซ้ำจะปลอดภัย

งานวิจัยล่าสุดประเมินความเสี่ยง

เอกสารวิจัยฉบับก่อนตีพิมพ์เดือนกันยายน 2026 เรื่อง “Where Does Exactly-Once Live?” นำเสนอเกณฑ์มาตรฐาน LIMBO และทดสอบ 25,930 ตอนการทำงานบนโมเดล 9 ตัว โดยทดสอบบริการจำลองภายใต้สถานการณ์ที่การตอบรับสูญหาย การประมวลผลล่าช้า และการส่งข้อมูลซ้ำ

ในบรรดา 1,279 ตอนการทำงานที่เกิดผลซ้ำในการทดสอบหลักของผู้เขียน เอเจนต์รายงานว่าดำเนินการสำเร็จ 90% ดังนั้น เอเจนอาจรายงานความสำเร็จแม้จะมีการประมวลผลที่ไม่ถูกต้องเกิดขึ้นแล้ว

ผลลัพธ์เหล่านี้มาจากการทดสอบมาตรฐานแบบควบคุม และไม่ได้ใช้ประเมินอัตราความล้มเหลวในการใช้งานจริง บริการต่าง ๆ เป็นการจำลอง และการวิเคราะห์หลายส่วนยังอยู่ในขั้นสำรวจ ทีมงานควรประเมินผลลัพธ์จากการกระทำของเอเจนต์แยกจากรายงานการดำเนินการสำเร็จของเอเจนต์

บทความนี้ยังกล่าวถึงเหตุผลที่การตรวจสอบสถานะปัจจุบันอาจไม่เพียงพอ คำขอที่ยังอยู่ระหว่างดำเนินการอาจมีผลหลังจากตรวจสอบไปแล้ว แม้สถานะที่ตอบกลับมาจะว่างเปล่า ก็ไม่ได้หมายความว่าคำขอนั้นจะไม่มีผลในภายหลัง

การลองซ้ำต้องอ้างอิงเจตนาเดิม

บริการปลายทางมีวิธีระบุการลองดำเนินการเดิมซ้ำ โดยใช้คีย์ idempotency หากรองรับอย่างถูกต้อง วิธีนี้จะช่วยให้การลองซ้ำไม่ก่อให้เกิดผลเพิ่มเติม คีย์ idempotency ต้องคงเดิมตลอดการลองใหม่ทุกครั้ง

เอกสารประกอบ API ของ Stripe ยกตัวอย่างทั้งกลไกและข้อจำกัดของคีย์ idempotency สำหรับ API v1 สามารถลบคีย์ได้หลังผ่านไปอย่างน้อย 24 ชั่วโมง หากนำคีย์ที่ถูกลบออกแล้วกลับมาใช้ จะทำให้เกิดคำขอใหม่ Stripe ยังตรวจสอบด้วยว่าพารามิเตอร์ที่ผู้ส่งคำขอระบุตรงกับพารามิเตอร์ในคำขอแรกหรือไม่

ในทางปฏิบัติ คุณสมบัติ idempotency ต้องมีอยู่ในชั้นการเชื่อมต่อระบบ ไม่ใช่แค่ในพรอมป์ตก่อนส่งคำสั่งให้ดำเนินการ ให้บันทึกการดำเนินการที่ได้รับอนุมัติไว้ จัดเก็บรหัสประจำการดำเนินการ พารามิเตอร์ที่ถูกต้องทุกประการ ข้อมูลอ้างอิงของผู้ให้บริการหากมี และสถานะของการดำเนินการ

สำหรับการคืนเงิน ให้จัดเก็บความเชื่อมโยงระหว่างการอนุมัติกับธุรกรรมเดิม รวมถึงรหัสการคืนเงินจากผู้ให้บริการที่ได้รับกลับมา การค้นหารายการคืนเงินใด ๆ ที่มียอดเท่ากันเป็นหลักฐานที่ไม่น่าเชื่อถือเท่า เพราะคำขอที่ถูกต้องสองรายการอาจมียอดเท่ากันได้ นอกจากนี้ ผลการค้นหาอาจยังไม่แสดงรายการคืนเงินทันทีหลังส่งคำขอ และคำขอเดิมอาจยังอยู่ระหว่างดำเนินการ

เมื่อเอเจนต์หรือเวิร์กเกอร์เริ่มทำงานใหม่ ชั้นการดำเนินการควรคงข้อมูลระบุตัวตนนั้นไว้ และควรปฏิเสธคำขอที่มีการแก้ไขแต่ส่งเข้ามาในฐานะการดำเนินการเดิม การเปลี่ยนแปลงดังกล่าวถือเป็นการกระทำใหม่ ซึ่งต้องได้รับการอนุมัติใหม่ตามกฎของเวิร์กโฟลว์

คำอธิบายเครื่องมือยังไม่เพียงพอ

นอกเหนือจากคำอธิบายเครื่องมือแล้ว ให้ตรวจสอบข้อตกลงของบริการปลายทางเกี่ยวกับการรองรับ idempotency และทดสอบการทำงานจริงเพื่อยืนยันว่ามีหลักประกันใดบ้างที่ทำได้ตามที่ระบุ

ถือว่าความไม่แน่นอนเป็นสถานะหนึ่งของการปฏิบัติงาน

รูปที่ 1 แนวทางการกู้คืนที่เสนอสำหรับการดำเนินการที่มีผลตามมา การลองใหม่ทุกครั้งยังต้องได้รับอนุญาตในปัจจุบัน

เมื่อยืนยันได้ว่างานเสร็จสมบูรณ์ เวิร์กโฟลว์จะบันทึกผลลัพธ์และดำเนินการต่อโดยไม่ทำซ้ำ ส่วนการยืนยันว่าไม่มีการดำเนินการเกิดขึ้นจะอนุญาตให้ลองอีกครั้งได้ก็ต่อเมื่อไม่มีคำขอเดิมค้างอยู่ และการอนุญาตยังมีผลอยู่

ผลลัพธ์ที่ยังไม่ชัดเจนมีประเด็นให้พิจารณาอีกมาก หากผู้ให้บริการรับรองอย่างถูกต้องว่าจะไม่เกิดผลซ้ำ คุณอาจอนุญาตให้ลองส่งคำขอเดิมอีกครั้งโดยใช้คีย์เดิมได้ มิฉะนั้น ให้ระงับการเขียนข้อมูลและตรวจสอบสถานะเพื่อหาข้อสรุป โดยสอบถามผู้ให้บริการหรือให้ผู้ปฏิบัติงานที่ได้รับอนุญาตดำเนินการ การตรวจสอบที่ยังไม่ได้ข้อสรุปไม่ใช่เหตุผลเพียงพอที่จะอนุญาตให้ลองอีกครั้ง

การหยุดรอชั่วคราวอาจสมเหตุสมผลเช่นกัน หากผู้ให้บริการระบุขอบเขตด้านระยะเวลาการประมวลผลและการปรากฏของผลลัพธ์ไว้ หากไม่มีการระบุขอบเขตดังกล่าว เพียงแค่เวลาผ่านไปก็ยังยืนยันไม่ได้ว่าการดำเนินการนั้นไม่เกิดขึ้น คุณต้องกำหนดว่าใครเป็นผู้รับผิดชอบกรณีที่ยังหาข้อสรุปไม่ได้ และผู้รับผิดชอบเหล่านั้นต้องตรวจสอบกรณีดังกล่าวเมื่อใด

การกู้คืนจากความล้มเหลวอาจต้องใช้กระบวนการทางธุรกิจที่แตกต่างออกไป

หากการคืนเงินสำเร็จ แต่การแจ้งลูกค้าในขั้นตอนถัดไปล้มเหลว การทำเวิร์กโฟลว์ทั้งหมดซ้ำอาจทำให้คืนเงินซ้ำอีกครั้ง การกู้คืนควรมุ่งดำเนินขั้นตอนที่ยังไม่เสร็จให้ครบถ้วน พร้อมเก็บหลักฐานของงานที่เสร็จแล้วไว้

หากจำเป็นต้องดำเนินการแก้ไขกับรายการที่เสร็จสมบูรณ์ไปแล้ว Microsoft ให้คำแนะนำเกี่ยวกับธุรกรรมชดเชย แต่ละแอปพลิเคชันจะเป็นผู้กำหนดวิธีที่เหมาะสมในการชดเชยข้อผิดพลาด การชดเชยอาจไม่ทำให้ทุกอย่างกลับไปเป็นเหมือนเดิม และกระบวนการชดเชยเองก็อาจล้มเหลวได้

นอกจากนี้ การยกเลิกธุรกรรมอาจทำให้เกิดค่าใช้จ่าย การแก้ไขข้อความไม่อาจรับประกันได้ว่าจะไม่มีใครเห็นข้อความฉบับก่อนหน้า ดังนั้น กิจกรรมการกู้คืนทุกอย่างต้องจำกัดให้ชัดเจนว่าตัวแทนสามารถยกเลิก เปลี่ยนแปลง หรือยืนยันสิ่งใดได้บ้าง การตัดสินใจที่อยู่นอกเหนือข้อจำกัดเหล่านี้ต้องส่งต่อให้บุคคลที่มีอำนาจเหมาะสม

ทดสอบการลองครั้งที่สองก่อนนำไปใช้งาน

เลือกเครื่องมือที่มีผลสำคัญหนึ่งรายการ แล้วทดสอบการกู้คืนอย่างเป็นระบบในสภาพแวดล้อมทดสอบ หลังดำเนินการสำเร็จ ให้ทิ้งการตอบกลับของคำขอเดิม หน่วงการดำเนินการของคำขอแรกไว้จนกว่าจะตรวจสอบสถานะแล้ว ระหว่างการกู้คืน ให้เริ่มเวิร์กเกอร์ใหม่ รอให้ระยะเวลาเก็บรักษาคีย์หมดอายุก่อนลองอีกครั้ง และเปลี่ยนพารามิเตอร์หนึ่งรายการระหว่างการลองซ้ำ

ประเมินจากบันทึกทางธุรกิจที่เกิดขึ้นจริง แทนที่จะพึ่งพาเฉพาะการตอบกลับจากเครื่องมือ บันทึกผลซ้ำ การดำเนินการที่ยังหาข้อสรุปไม่ได้ งานที่ตกหล่น เวลาที่ใช้ในการกู้คืน และการแทรกแซงด้วยตนเองเพิ่มเติม คำนวณต้นทุนต่องานที่เสร็จสมบูรณ์อย่างถูกต้อง โดยใช้ต้นทุนรวมของเวิร์กโฟลว์ ซึ่งรวมถึงการกลับรายการธุรกรรมและการเยียวยาลูกค้าด้วย

นอกจากนี้ ให้ทดสอบคำขอครั้งที่สองที่เกิดขึ้นจริงและคล้ายกับคำขอเดิม ตรวจสอบให้แน่ใจว่าระบบป้องกันการสร้างรายการซ้ำโดยไม่ขัดขวางงานใหม่ ประเมินการป้องกันรายการซ้ำและการทำงานให้เสร็จสมบูรณ์ในท้ายที่สุดแยกจากกัน มิฉะนั้น ตัวแทนที่ยุติทุกงานอาจดูเหมือนปลอดภัย ทั้งที่แทบไม่สร้างคุณค่าหรือไม่สร้างคุณค่าเลย

ควรระบุคำถามที่ใช้ประเมินให้ชัดเจน ระบบสามารถอธิบายสิ่งต่อไปนี้ได้หรือไม่:

  • ได้รับอนุญาตให้ดำเนินการใด?
  • มีหลักฐานใดที่แสดงผลลัพธ์ของการดำเนินการนั้น?
  • เหตุใดจึงอนุญาตให้ลองอีกครั้งได้?

ตัวแทนที่หยุดรอเพราะยังมีความไม่แน่นอนที่หาข้อสรุปไม่ได้อาจดูเหมือนทำงานได้ไม่มีประสิทธิภาพนักในการสาธิต อย่างไรก็ตาม ในสภาพแวดล้อมการใช้งานจริง การหยุดรออาจช่วยรักษาเจตนาเดิมของลูกค้าไว้ได้ การทำงานต่อเนื่องที่มีประโยชน์หมายถึงระบบทำงานที่ได้รับอนุญาตจนเสร็จ โดยไม่ดำเนินการซ้ำอย่างเงียบ ๆ

mm

Himanshu Goel เป็นนักวิจัย AI/ML ที่เชี่ยวชาญด้านการสร้างเนื้อหาที่เสริมด้วยการค้นคืนข้อมูลสำหรับโดเมนที่มีความเสี่ยงสูง รวมถึงการทำงานของเอกสารทางชีวการแพทย์ การเงิน และกฎระเบียบ