ทุกคนพูดถึงแต่เรื่อง Prompt แต่จุดที่ Agent ล้มเหลวจริงๆ คือ Loop

Prompt engineering เป็นสิ่งที่ได้รับความสนใจมากที่สุด ผู้คนต่างแชร์ prompt และรู้สึกว่าตัวเองเก่ง แต่ในระบบ Agentic ที่ผมสร้างขึ้น Prompt ไม่ใช่สิ่งที่ทำให้ระบบพัง แต่เป็น Loop ต่างหากที่พัง

Agent ไม่ใช่แค่การส่ง prompt และรับคำตอบเพียงครั้งเดียว แต่มันคือ Loop

  • สังเกตสถานะ (Observe the state)
  • ดำเนินการ (Take an action)
  • ประเมินผลลัพธ์ (Evaluate the result)
  • ตัดสินใจว่าจะทำต่อหรือหยุด (Decide to continue or stop)

หากขั้นตอนใดขั้นตอนหนึ่งล้มเหลว Agent ก็จะล้มเหลวด้วย ผมได้วิเคราะห์โมเดล 12 ตัวจากการรันทั้งหมด 1,412 ครั้งเพื่อศึกษาเรื่องนี้ และนี่คือสาเหตุที่ทำให้ Loop ล้มเหลวและวิธีแก้ไข

ความล้มเหลวของ Loop ที่พบบ่อย:

  • Token Spirals: Agent พูดซ้ำไปซ้ำมาและใช้ token มากเกินไป
  • Blind Spots: Agent มองไม่เห็นสภาพแวดล้อมของตัวเองและทำผิดพลาดซ้ำเดิม
  • False Success: Agent ให้คำตอบที่ผิดแต่กลับคิดว่าตัวเองตอบถูก
  • Dead Ends: Agent พบข้อผิดพลาดแต่ไม่สามารถนำข้อมูลนั้นมาใช้เพื่อปรับปรุงได้

Prompt ที่ดีขึ้นไม่สามารถแก้ปัญหาเหล่านี้ได้ คุณจำเป็นต้องทำ Loop engineering

4 หลักการออกแบบเพื่อ Loop ที่ดีขึ้น:

  • จำกัดขอบเขตของ Loop (Bound the loop): กำหนดขีดจำกัดที่ชัดเจนสำหรับจำนวนรอบ (iterations) และจำนวน token หาก Agent ทำงานจนถึงขีดจำกัด มันต้องหยุดและขอความช่วยเหลือ
  • ทำให้สภาพแวดล้อมอ่านง่าย (Make the environment legible): ตรวจสอบให้แน่ใจว่าขั้นตอนการสังเกต (observe) ให้ข้อมูลข้อเท็จจริงทั้งหมดแก่ Agent หาก Agent ทำการกระทำที่ล้มเหลวซ้ำๆ แสดงว่ามันขาดข้อมูลที่ถูกต้อง
  • แยกผู้กระทำออกจากผู้ประเมิน (Separate the actor from the evaluator): อย่าปล่อยให้โมเดลตัวเดิมตรวจสอบงานของตัวเอง ให้ใช้โมเดลอื่นหรือการตรวจสอบตามกฎ (rule-based check) ในการตัดสินผลลัพธ์
  • ปิดวงจรให้สมบูรณ์ (Close the loop): ใช้ข้อผิดพลาดเพื่อนำไปสู่การแก้ไขที่แท้จริง เมื่อ Loop ล้มเหลว ให้เพิ่มการทดสอบแบบ regression test เพื่อไม่ให้เกิดปัญหาเดิมซ้ำอีก

ผมได้สร้าง support agent ที่ชื่อว่า RelayOps โดยใช้กฎเหล่านี้ เราใช้ผู้ตัดสินที่เป็นอิสระ (independent judge) ในการให้คะแนน Agent

มีครั้งหนึ่งที่ Agent อ้างอิงบทความที่ถูกต้องแต่กลับไม่สามารถตอบคำถามจริงๆ ได้ การตรวจสอบด้วยกฎแบบง่ายๆ (rule-based check) ผ่านการทดสอบ แต่ผู้ประเมินที่เป็นอิสระของเราตรวจพบ เราจึงใช้ความล้มเหลวนั้นมาแก้ไขระบบและเพิ่มการทดสอบเพื่อป้องกันไม่ให้มันเกิดขึ้นอีก

Agent ไม่จำเป็นต้องฉลาดขึ้น แต่ Loop ต่างหากที่ต้องได้รับการออกแบบให้ดีขึ้น

เลิกโฟกัสแค่เรื่อง prompt แต่ให้โฟกัสที่โครงสร้าง

คุณเคยเจอความล้มเหลวของ Loop แบบไหนบ้าง? Token spiral, blind spot หรือ Agent ที่มั่นใจในคำตอบที่ผิด?

Source: https://dev.to/manideep_patibandla/everyone-talks-about-prompts-the-loop-is-where-agents-actually-fail-1cej

Optional learning community: https://t.me/GyaanSetuAi