โมเดลเหตุการณ์ขณะรันเอเจนต์ (The Agent Runtime Event Model)
เลิกถกเถียงกันเรื่องเฟรมเวิร์กของเอเจนต์ได้แล้ว
วิศวกรมักจะถามว่าควรใช้ LangChain, CrewAI หรือสร้างขึ้นมาเองดี นี่คือคำถามที่ผิด การตัดสินใจที่แท้จริงคือคุณจะแนบนโยบาย (policy) ไว้ตรงไหนภายใน agent runtime ของคุณ
เฟรมเวิร์กเปลี่ยนไปได้เสมอ แต่ความต้องการเชิงสถาปัตยกรรมสำหรับนโยบายนั้นยังคงเดิม
ทุก stack ของเอเจนต์ในระดับโปรดักชันจำเป็นต้องมี 4 เหตุการณ์ขณะรัน (runtime events) ที่เฉพาะเจาะจง เพื่อป้องกันบั๊กและการรั่วไหลของความปลอดภัย:
• UserPromptSubmit: ก่อนที่ prompt จะส่งถึงโมเดล ใช้ส่วนนี้เพื่อบล็อกข้อมูลความลับ (secrets) และข้อมูลส่วนบุคคล (PII) • PreToolUse: ก่อนที่เครื่องมือ (tool) จะทำงาน ใช้ส่วนนี้เพื่อควบคุมงบประมาณค่าใช้จ่ายและรายการเครื่องมือที่อนุญาต (tool whitelists) • PostToolUse: หลังจากเครื่องมือส่งข้อมูลกลับมา ใช้ส่วนนี้เพื่อสแกนหา PII หรือการโจมตีแบบ injection • Stop: หลังจากเอเจนต์ทำงานเสร็จสิ้น ใช้ส่วนนี้เพื่อตรวจสอบว่าเอเจนต์ได้ทำงานเสร็จสมบูรณ์จริงหรือไม่
แต่ละเหตุการณ์มีหน้าที่แตกต่างกัน
การส่ง prompt ต้องรวดเร็ว ต้องทำงานได้ภายในระดับมิลลิวินาทีเพื่อให้ผู้ใช้ไม่ต้องรอนาน ส่วนเหตุการณ์ Stop สามารถใช้เวลานานกว่าได้ คุณสามารถใช้เวลาได้ถึงหนึ่งวินาทีเต็มเพื่อตรวจสอบว่าเอเจนต์ได้ทำงานของมันจริงหรือไม่ ก่อนที่ผู้ใช้จะเห็นผลลัพธ์
คุณต้องตัดสินใจด้วยว่า hook ของคุณจะจัดการอย่างไรเมื่อเกิดข้อผิดพลาด (fail)
หาก security hook เกิดขัดข้อง คุณควรเลือกแบบ fail closed (ปฏิเสธการทำงาน) เพราะการปฏิเสธคำขอดีกว่าการปล่อยให้ข้อมูลความลับรั่วไหล หากการตรวจสอบคุณภาพเกิดขัดข้อง คุณอาจเลือกแบบ fail open เพื่อให้ผู้ใช้ยังคงได้รับคำตอบ
เฟรมเวิร์กเป็นสิ่งที่หาได้ทั่วไป (commodity) แต่การครอบคลุมนโยบายของคุณคือปราการสำคัญ (moat)
ลองถามคำถามสามข้อนี้กับ stack ปัจจุบันของคุณ:
- เหตุการณ์ใดที่ช่วยหยุดการรั่วไหลของความลับใน prompt?
- เหตุการณ์ใดที่ตรวจจับเอเจนต์ที่โกหกว่าทำงานเสร็จแล้ว?
- เหตุการณ์ใดที่ตรวจสอบผลลัพธ์จากเครื่องมือเพื่อหา PII ก่อนที่โมเดลจะอ่านข้อมูลเหล่านั้น?
หากคุณไม่สามารถตอบคำถามเหล่านี้ได้ เอเจนต์ของคุณก็ยังไม่พร้อมสำหรับโปรดักชัน
แหล่งที่มา: https://dev.to/willianpinho/the-agent-runtime-event-model-55l9
ชุมชนการเรียนรู้เพิ่มเติม: https://t.me/GyaanSetuAi