สถาปัตยกรรม AI Agent: ทำไมความทนทานสำคัญกว่าความอึด
บทวิเคราะห์จาก Dev.to ชี้การรัน AI Agent แบบกระบวนการเดียวยาวนานสิ้นเปลืองทรัพยากร เสนอแนวคิดแยกสถานะให้ทนทานและใช้หน่วยประมวลผลแบบเช่าระยะสั้น

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- AI Agent แบบเดิมที่รันกระบวนการค้างไว้นานมีความเสี่ยงสูงเมื่อเกิดระบบล่ม
- แนวคิดใหม่เสนอแยกสถานะการทำงาน (State) ออกจากตัวประมวลผลชั่วคราว
- ระบบสามารถรองรับ Agent นับล้านตัวได้โดยไม่ต้องใช้กระบวนการรันจริงพร้อมกัน
การพัฒนา AI Agent ในปัจจุบันมักนิยมตั้งค่าให้ทำงานเป็นกระบวนการระยะยาว (Long-running process) โดยเมื่อพนักงานหรือระบบส่งคำสั่งเข้ามา ตัว Agent จะเข้าสู่ลูปการทำงาน เรียกใช้โมเดลและเครื่องมือ รอผลลัพธ์ และส่งคำตอบกลับในท้ายที่สุด วิธีนี้ดูเหมือนจะใช้งานได้ดีในขั้นต้นจนกระทั่ง Agent เริ่มทำงานที่มีความซับซ้อนและใช้เวลานานจริง ๆ
ในความเป็นจริง Agent อาจต้องใช้เวลาค้นคว้าข้อมูลนานถึง 20 นาที รอการคอมไพล์โค้ด 10 นาที รอการอนุมัติจากผู้ใช้งาน หรือต้องรอคิวงานภายนอกที่ใช้เวลาหลายชั่วโมง การรักษาเวิร์กเกอร์ให้ทำงานค้างไว้ตลอดช่วงเวลาดังกล่าวจึงเป็นการสิ้นเปลืองทรัพยากรอย่างมาก และทำให้ความล้มเหลวมีต้นทุนที่สูงขึ้น หากเกิดการอัปเดตระบบ เซิร์ฟเวอร์ล่ม หรือเครื่องรีสตาร์ท งานทั้งหมดที่ทำมาก็อาจสูญหายได้ทันที

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
โมเดลที่ดีกว่าคือการแยกสถานะการทำงานของ Agent ออกจากกระบวนการที่ประมวลผล โดยตัวสถานะ ข้อมูลการสนทนา ผลลัพธ์เครื่องมือ งบประมาณ และตำแหน่งปัจจุบัน จะถูกจัดเก็บไว้ภายนอกเวิร์กเกอร์ ส่วนตัวเวิร์กเกอร์จะเป็นเพียงกระบวนการชั่วคราวที่เข้ามาเช่าใช้งานระบบประมวลผลระยะสั้น ทำงานให้เสร็จ บันทึกจุดตรวจสอบ (Checkpoint) แล้วปิดตัวลง
แนวคิดนี้มีความคล้ายคลึงกับสถาปัตยกรรมของระบบเว็บขนาดใหญ่ในอดีต ที่เลิกกำหนดเซิร์ฟเวอร์ถาวรให้กับผู้ใช้งานแต่ละคนตลอดเวลา และเปลี่ยนมาใช้โมเดลการจัดสรรทรัพยากรตามคำขอ ซึ่งช่วยเพิ่มขีดความสามารถในการรองรับผู้ใช้งานจำนวนมากพร้อมกันได้อย่างมีประสิทธิภาพ
แนวทางปฏิบัตินี้ไม่ได้หมายความว่าทุก ๆ การเรียกใช้โมเดลหรือเครื่องมือจะต้องแยกกระบวนการเด็ดขาด เพราะจะทำให้เกิดภาระในการจัดคิวและการสร้างสถานะใหม่โดยไม่จำเป็น แต่เวิร์กเกอร์อาจได้รับสัญญาเช่าเวลาสั้น ๆ เช่น 30 หรือ 60วินาที เพื่อประมวลผลขั้นตอนต่าง ๆ ต่อเนื่องกันไปจนกว่าจะมีความคืบหน้า
- หาก Agent ต้องรอระบบ CI นาน 5 นาที จะไม่มีการสั่งให้ระบบจำศีลรอค้างไว้
- ระบบจะบันทึกสถานะว่ากำลังรอแล้วออกจากกระบวนการทันที
- เมื่อ CI ทำงานเสร็จหรือครบกำหนดเวลา ระบบจะดึง Agent กลับมาทำงานต่อได้ทันที
รูปแบบดังกล่าวสามารถนำไปใช้จัดการกับข้อจำกัดด้านอัตราการเรียกใช้งาน (Rate limits) การรอการอนุมัติจากมนุษย์ การตั้งเวลาทำงาน การติดต่อจากภายนอก และการสื่อสารระหว่าง Agent ได้เป็นอย่างดี ซึ่งช่วยเปลี่ยนมุมมองจากเดิมที่มองว่า "หนึ่ง Agent เท่ากับหนึ่งกระบวนการทำงานต่อเนื่อง" ไปสู่ "หนึ่ง Agent ประกอบด้วยสถานะที่ทนทานรวมกับชุดคำสั่งเช่าระยะสั้น"
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น