• หากต้องการประสบความสำเร็จในการ พัฒนา AI agent สิ่งสำคัญไม่ใช่เทคนิคพรอมป์ตแบบมหัศจรรย์ แต่คือ system prompt ที่ชัดเจนและสอดคล้องกัน การจัดการคอนเท็กซ์ การออกแบบเครื่องมืออย่างเข้มงวด และ feedback loop ที่เป็นระบบ
  • สำหรับ การจัดการคอนเท็กซ์ กลยุทธ์ที่มีประสิทธิภาพคือให้เพียงความรู้ขั้นต่ำก่อน และเมื่อจำเป็นค่อยดึงบริบทเพิ่มเติมผ่านเครื่องมือ
  • การออกแบบเครื่องมือ (tool) ควรละเอียดถึงระดับ API โดยมีพารามิเตอร์ที่ชัดเจน จำกัด และไม่มีความซ้ำซ้อนหรือความกำกวม
  • ควรผสาน feedback loop / การตรวจสอบอัตโนมัติ (เช่น compile, test, lint) แบบซอฟต์แวร์ดั้งเดิมเข้ากับความคิดสร้างสรรค์ของ LLM
  • ปรับปรุงซ้ำผ่าน การวิเคราะห์ข้อผิดพลาดและ meta loop และในหลายกรณี ปัญหาจริงไม่ใช่ตัวโมเดล แต่เป็นข้อผิดพลาดของคอนเท็กซ์ เครื่องมือ หรือพรอมป์ต
  • เป้าหมายไม่ใช่ agent ที่สมบูรณ์แบบ แต่คือ ระบบที่กู้คืนได้ น่าเชื่อถือสูง และปรับปรุงได้อย่างต่อเนื่อง

1. เขียนพรอมป์ต/คอนเท็กซ์ให้ชัดเจนและไม่ขัดแย้งกัน

  • LLM รุ่นใหม่ทำงานได้ดีเพียงแค่ให้ คำอธิบายที่ตรงไปตรงมาและเจาะจง เทคนิคซับซ้อนหรือการบังคับหลอกล่อมักใช้ได้ไม่นาน
  • อ้างอิงแนวทางทางการจาก Anthropic, Google ฯลฯ โดยหัวใจสำคัญคือการให้ คำสั่งที่สอดคล้องและมีรายละเอียด
  • ให้ system prompt ส่วนใหญ่เป็นส่วนคงที่ (static) และให้ข้อมูลจากผู้ใช้เป็นส่วนเล็ก ๆ ที่เปลี่ยนแปลงได้ → เอื้อต่อ prompt caching ด้วย

2. การจัดการคอนเท็กซ์แบบ Lean

  • คอนเท็กซ์ที่มากเกินไป (เช่น ประวัติ, log, ผลลัพธ์ระหว่างทาง) ทำให้ต้นทุนสูงขึ้น หน่วงมากขึ้น ประสิทธิภาพลดลง และเกิด 'attention attrition'
  • โครงสร้างที่มีประสิทธิภาพคือให้ ข้อมูลเท่าที่จำเป็นขั้นต่ำ ก่อน แล้วค่อยค้นหา (fetch) ส่วนที่เหลือผ่านเครื่องมือเมื่อจำเป็น
  • ใช้ context compaction และ การแยกความรับผิดชอบ (encapsulation) เพื่อส่งต่อเฉพาะข้อมูลที่จำเป็นจริง ๆ

3. หลักการออกแบบเครื่องมือ (tool)

  • เครื่องมือสำหรับ LLM ควร เรียบง่ายกว่า API สำหรับมนุษย์ ตรงไปตรงมา และไม่มีความกำกวม
  • ควรออกแบบโดยยึดเครื่องมืออเนกประสงค์จำนวนไม่มากเป็นศูนย์กลาง เช่น read_file, write_file, edit_file, execute และแต่ละเครื่องมือควรมีพารามิเตอร์เพียง 1-3 ตัวจะดีที่สุด
  • เครื่องมือต้องเป็น idempotent (รับประกันความสอดคล้องแม้ถูกรันซ้ำ) และสามารถเพิ่มเครื่องมือเสริมแบบไดนามิกตามสถานการณ์ของคอนเท็กซ์
  • ในกรณีซับซ้อน อาจใช้โค้ด DSL เฉพาะโดเมน (เช่น smolagents) เพื่อประมวลงานแบบยกชุด

4. Feedback loop และการตรวจสอบอัตโนมัติ

  • ผสานความคิดสร้างสรรค์ของ LLM เข้ากับการตรวจสอบแบบดั้งเดิม (compiler, linter, test ฯลฯ): โครงสร้างแบบ actor-critic
  • LLM (Actor) สร้างสิ่งต่าง ๆ ได้อย่างอิสระ ส่วน Critic ตรวจสอบอย่างเข้มงวด → ระบุเงื่อนไขคงที่ของโดเมน (Inductive Bias) เพื่อยืนยันผลลัพธ์ที่ใช้งานได้จริง
  • ในอุตสาหกรรมอื่นก็เช่นกัน เช่น ถ้าเป็น travel agent ต้องตรวจว่าเส้นทางบินเชื่อมต่อกันได้จริง หรือถ้าเป็นงานบัญชีต้องตรวจว่ามีการละเมิดหลักการบันทึกบัญชีคู่หรือไม่

5. กลยุทธ์การกู้คืน/จัดการข้อผิดพลาด

  • ผ่าน feedback loop และกลยุทธ์ guardrail ทำให้ agent สามารถแก้ผลลัพธ์ที่ผิดพลาด หรือหากจำเป็นก็เริ่มลองใหม่ตั้งแต่ต้นได้
  • เช่นเดียวกับ Monte-Carlo tree search กิ่งที่มีแนวโน้มดีจะถูกลองเพิ่มและขยายต่อ ส่วนที่ล้มเหลวจะถูกตัดทิ้งอย่างรวดเร็ว
  • การวิเคราะห์ log ของ agent การหาสาเหตุของข้อผิดพลาดที่เกิดซ้ำ และการปรับปรุงเชิงระบบ เป็นสิ่งสำคัญ

6. การวิเคราะห์ข้อผิดพลาดและการปรับปรุงอย่างต่อเนื่อง

  • log และผลลัพธ์จาก agent จำนวนมากสามารถนำมาให้ LLM วิเคราะห์เองเพื่อหาจุดที่ควรปรับปรุงได้
  • ปัญหาจริงจำนวนมากไม่ได้มาจากประสิทธิภาพของ LLM ที่ด้อยลง แต่เป็นปัญหาระดับระบบ เช่น ไม่ได้ตั้งค่า tool, สิทธิ์ไม่เพียงพอ, พรอมป์ตกำกวม, หรือการออกแบบคอนเท็กซ์ผิดพลาด
  • เมื่อเกิดข้อผิดพลาด ควรตรวจสอบโครงสร้างของระบบก่อน แล้วปรับปรุงซ้ำด้วยการออกแบบ เครื่องมือ และ validation loop ที่ดีขึ้น

บทสรุป

  • การสร้าง AI agent ที่มีประสิทธิภาพขึ้นอยู่กับ การจัดการพรอมป์ต/คอนเท็กซ์ การออกแบบเครื่องมือที่แข็งแรง feedback loop แบบอัตโนมัติ และการวิเคราะห์ข้อผิดพลาดอย่างจริงจัง
  • ให้โฟกัสที่ ความน่าเชื่อถือ ความสามารถในการกู้คืน และการปรับปรุงซ้ำอย่างต่อเนื่อง มากกว่า ความสมบูรณ์แบบ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น