งาน AI สองงานของผมแย่งเมาส์ตัวเดียวกัน
การสาธิตเอเจนต์แบบขนานดูเหมือนจะดี จนกระทั่งมีงานสองงานแย่งเมาส์ตัวเดียวกัน
งานหนึ่งกำลังล็อกอินเข้าเว็บไซต์ อีกงานหนึ่งกำลังเปิดเบราว์เซอร์ และงานที่สามกำลังพยายามตอบคำถามง่ายๆ ทันใดนั้น ระบบก็คลิกผิดที่หรือยกเลิกการทำงานที่ผิดพลาด นี่ไม่ใช่ปัญหาเรื่อง prompt แต่มันคือปัญหาเรื่องทรัพยากร
ผมเรียนรู้เรื่องนี้ระหว่างการสร้าง CliGate ผมตระหนักว่าแม้ว่างานด้านโค้ดจะสามารถรันแบบขนานได้ แต่เดสก์ท็อปนั้นต่างออกไป คุณมีคีย์บอร์ดเพียงอันเดียว เมาส์เพียงอันเดียว และหน้าจอเพียงจอเดียว หากเอเจนต์สองตัวพยายามจะควบคุมพื้นที่นั้น พวกมันจะขัดขวางกันเอง
ไอเดียแรกของผมคือการยกเลิกงานเก่าเมื่อมีงานใหม่เข้ามา แต่นี่คือความผิดพลาด ผู้ใช้ที่ถามเพื่อขออัปเดตสถานะไม่ควรทำให้กระบวนการล็อกอินต้องหยุดชะงัก
ผมจึงต้องเปลี่ยนกฎใหม่
กฎใหม่เพื่อความน่าเชื่อถือของเอเจนต์:
- งานที่เป็นอิสระต่อกันสามารถรันแบบขนานได้
- งานที่ต้องใช้เดสก์ท็อปต้องเข้าคิว
- การยกเลิกจะเกิดขึ้นก็ต่อเมื่อผู้ใช้สั่งเท่านั้น
ใน CliGate การป้อนข้อมูลผ่านเดสก์ท็อปทำงานเหมือนการเช่าสิทธิ์ งานหนึ่งจะถือครองเดสก์ท็อปไว้ ส่วนงานอื่นๆ จะต้องรอคิวของตนเอง
ตรรกะใหม่ทำงานดังนี้:
- มีงานใหม่เข้ามา
- งานนั้นต้องใช้เดสก์ท็อปหรือไม่?
- ถ้าไม่ ให้รันแบบขนานไปเลย
- ถ้าใช่ และเดสก์ท็อปว่าง ให้เริ่มทำงานได้
- ถ้าใช่ และเดสก์ท็อปไม่ว่าง ให้เข้าคิวรอ
- จะหยุดก็ต่อเมื่อผู้ใช้สั่งให้หยุดเท่านั้น
การพยายามทำซ้ำ (Retries) อาจทำให้สถานการณ์แย่ลง หากงานหนึ่งพยายามแย่งเมาส์ในขณะที่อีกงานหนึ่งกำลังพิมพ์อยู่ มันจะเกิดการรบกวนกัน วิธีแก้ไขไม่ใช่การพยายามทำซ้ำให้หนักขึ้น แต่คือการพูดความจริง ผู้ช่วยควรบอกว่า: "เดสก์ท็อปไม่ว่าง ขณะนี้ฉันกำลังอยู่ในคิว และจะเริ่มทำงานเมื่อเดสก์ท็อปว่าง"
สิ่งนี้เปลี่ยนความล้มเหลวให้กลายเป็นพฤติกรรมที่คาดเดาได้
ผมยังเพิ่มกฎเหล็กอีกข้อคือ: เอเจนต์ไม่สามารถยกเลิกตัวเองได้ เพื่อป้องกันไม่ให้เอเจนต์คลิกปุ่มปิดตัวเองด้วยความตื่นตระหนก
การสร้างเครื่องมือ AI มักจะเป็นเรื่องของการทำให้เรียบง่ายมากกว่าการทำให้ดูฉลาด:
- หากงานไม่ขัดแย้งกัน ก็ปล่อยให้รันไป
- หากขัดแย้งกันในเรื่องทรัพยากรทางกายภาพ ให้จัดคิวไว้
- หากผู้ใช้ถามถึงสถานะ ให้แจ้งสถานะ
- หากผู้ใช้สั่งให้หยุด ก็ต้องหยุด
สิ่งนี้ทำให้ผู้ช่วยดูมีความเป็นมนุษย์มากขึ้น มันหยุดแย่งชิงการควบคุม และเริ่มทำตัวเหมือนผู้ควบคุม (operator) ที่เข้าใจความแตกต่างระหว่างคำถามและคำสั่ง
หาก AI ของคุณต้องสัมผัสกับเดสก์ท็อป ให้จำไว้ว่า: การรันงานแบบขนานนั้นทำได้ แต่ทรัพยากรทางกายภาพจำเป็นต้องมีการถือครองสิทธิ์
Source: https://dev.to/codekingai/my-two-ai-tasks-kept-fighting-for-the-same-mouse-1hij
Optional learning community: https://t.me/GyaanSetuAi