โมเดลเหตุการณ์ขณะรันเอเจนต์ (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 ปัจจุบันของคุณ:

  1. เหตุการณ์ใดที่ช่วยหยุดการรั่วไหลของความลับใน prompt?
  2. เหตุการณ์ใดที่ตรวจจับเอเจนต์ที่โกหกว่าทำงานเสร็จแล้ว?
  3. เหตุการณ์ใดที่ตรวจสอบผลลัพธ์จากเครื่องมือเพื่อหา PII ก่อนที่โมเดลจะอ่านข้อมูลเหล่านั้น?

หากคุณไม่สามารถตอบคำถามเหล่านี้ได้ เอเจนต์ของคุณก็ยังไม่พร้อมสำหรับโปรดักชัน

แหล่งที่มา: https://dev.to/willianpinho/the-agent-runtime-event-model-55l9

ชุมชนการเรียนรู้เพิ่มเติม: https://t.me/GyaanSetuAi