- หากต้องการประสบความสำเร็จในการ พัฒนา 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 แบบอัตโนมัติ และการวิเคราะห์ข้อผิดพลาดอย่างจริงจัง
- ให้โฟกัสที่ ความน่าเชื่อถือ ความสามารถในการกู้คืน และการปรับปรุงซ้ำอย่างต่อเนื่อง มากกว่า ความสมบูรณ์แบบ
ยังไม่มีความคิดเห็น