- คู่มือเชิงปฏิบัติสำหรับทีมผลิตภัณฑ์และวิศวกรรมที่เริ่มพัฒนา เอเจนต์ (agent) บนพื้นฐาน LLM เป็นครั้งแรก
- เอเจนต์คือระบบที่สามารถตัดสินใจและลงมือดำเนินการได้ด้วยตนเองแม้ในสถานการณ์ที่ซับซ้อนและคลุมเครือ ต่างจากระบบอัตโนมัติแบบเดิม
- อธิบายแพตเทิร์นการออกแบบที่หลากหลาย ตั้งแต่ระบบเอเจนต์เดี่ยวไปจนถึงการ orchestration แบบหลายเอเจนต์
- เน้นการตั้งค่า guardrail และกลยุทธ์ human intervention เพื่อความน่าเชื่อถือและความปลอดภัย
- แนะนำแนวทางให้เริ่มจากขอบเขตเล็ก ๆ ก่อน แล้วค่อย ๆ ขยายโดยอิงจากฟีดแบ็กของผู้ใช้
เอเจนต์คืออะไร
- เอเจนต์คือระบบที่ ทำงานแทนผู้ใช้
- โมเดลที่ตอบกลับเพียงครั้งเดียว เช่น แชตบอตทั่วไปหรือระบบวิเคราะห์อารมณ์ ไม่ถือเป็นเอเจนต์
- เอเจนต์มีความสามารถหลัก 2 อย่างดังนี้
- การจัดการการรันเวิร์กโฟลว์และการตัดสินใจ: พิจารณาว่างานเสร็จแล้วหรือยัง แก้ไขข้อผิดพลาด และคืนการควบคุมให้ผู้ใช้เมื่อเกิดความล้มเหลว
- การใช้เครื่องมือ (tool): โต้ตอบกับระบบภายนอกเพื่อรวบรวมข้อมูลหรือดำเนินการต่าง ๆ
ควรสร้างเอเจนต์เมื่อใด
- เหมาะกับงานที่วิธีอัตโนมัติแบบดั้งเดิมล้มเหลวหรือดูแลรักษาได้ยาก
- กรณีที่เหมาะสม
- การตัดสินใจที่ซับซ้อน: เช่น การอนุมัติคืนเงินลูกค้าที่ต้องอาศัยการพิจารณาอย่างละเอียด
- ระบบอิงกฎที่ดูแลรักษายาก: เช่น ระบบอัตโนมัติสำหรับการตรวจทานความปลอดภัยที่มีกฎซับซ้อน
- การจัดการข้อมูลไร้โครงสร้าง: เช่น การวิเคราะห์เอกสาร หรือกรณีที่ต้องการความเข้าใจภาษาธรรมชาติ
องค์ประกอบพื้นฐานของการออกแบบเอเจนต์
- โมเดล (Model): LLM ที่รับผิดชอบการให้เหตุผลและการตัดสินใจ
- เครื่องมือ (Tools): ฟังก์ชัน API ที่ใช้โต้ตอบกับระบบภายนอก
- คำสั่ง (Instructions): ข้อกำหนดที่ชัดเจนซึ่งนิยามพฤติกรรมของเอเจนต์
แนวทางเลือกโมเดล
- พัฒนาต้นแบบด้วยโมเดลที่มีประสิทธิภาพดีที่สุดก่อน → จากนั้นค่อยลองเปลี่ยนเป็นโมเดลขนาดเล็กลงโดยพิจารณาต้นทุนและ latency
- กำหนด เกณฑ์ประเมิน (evals) และตรวจสอบความแม่นยำก่อนทำการปรับให้เหมาะสม
วิธีนิยามเครื่องมือ
- ออกแบบเครื่องมือในรูปแบบมาตรฐานเพื่อเพิ่มการนำกลับมาใช้ซ้ำ
- ประเภทของเครื่องมือ
- การดึงข้อมูล: ค้นหา DB, อ่านเอกสาร, ค้นหาเว็บ
- การลงมือทำ: ส่งอีเมล, อัปเดต CRM
- Orchestration: เรียกเอเจนต์อื่นมาช่วยแบ่งงาน
แนวปฏิบัติที่ดีในการเขียนคำสั่ง
- ใช้เอกสารการปฏิบัติงานหรือเอกสารนโยบายเดิมมาช่วยเขียนคำสั่งแบบเป็นขั้นตอนที่ชัดเจน
- แบ่งงานออกเป็นส่วนย่อยและระบุเป็นหน่วยของการกระทำ (action) ที่เฉพาะเจาะจง
- ต้องรวมวิธีจัดการข้อผิดพลาดหรือสถานการณ์ยกเว้น (edge case) ไว้เสมอ
แพตเทิร์น orchestration
ระบบเอเจนต์เดี่ยว
- เอเจนต์หนึ่งตัวจัดการหลายงานผ่านลูปการทำงานซ้ำ (run loop)
- ใช้ prompt template เพื่อรองรับสถานการณ์ที่หลากหลาย
- แนะนำให้คงเป็นเอเจนต์เดี่ยวไว้ตราบเท่าที่ความซับซ้อนยังจัดการได้
ระบบหลายเอเจนต์
แพตเทิร์นผู้จัดการ (Manager Pattern)
- เอเจนต์ผู้จัดการส่วนกลางจะเรียกเอเจนต์ผู้เชี่ยวชาญหลายตัวเสมือนเป็น เครื่องมือ (tool) เพื่อประสานเวิร์กโฟลว์
- รักษาอินเทอร์เฟซกับผู้ใช้ให้มีความสม่ำเสมอ
แพตเทิร์นกระจายศูนย์ (Decentralized Pattern)
- เอเจนต์จะ handoff การควบคุมให้กันและกัน
- เอเจนต์ที่มีความเชี่ยวชาญเฉพาะด้านจะเข้ามาถือการควบคุมในจังหวะที่จำเป็น
- เหมาะกับงาน triage แบบเรียบง่ายในระยะแรก
Guardrails
วัตถุประสงค์
- ปกป้องความเป็นส่วนตัวของข้อมูลและป้องกันการใช้ระบบในทางที่ผิด
- รักษาความสอดคล้องของแบรนด์และป้องกันการตอบกลับที่ไม่เหมาะสม
ประเภทหลัก
- การกรองความเกี่ยวข้อง: บล็อกอินพุตที่ไม่เกี่ยวกับหัวข้อ
- การกรองความปลอดภัย: ตรวจจับความพยายาม jailbreak ระบบ
- ตัวกรองข้อมูลส่วนบุคคล (PII): ป้องกันการเปิดเผยข้อมูลอ่อนไหว
- การกลั่นกรอง (Moderation): บล็อกความรุนแรงและคำพูดแสดงความเกลียดชัง
- การจัดการความเสี่ยงของเครื่องมือ: เพิ่มการตรวจสอบเมื่อมีการเรียกใช้เครื่องมือความเสี่ยงสูง
กลยุทธ์การสร้าง
- ให้ความสำคัญสูงสุดกับความเป็นส่วนตัวของข้อมูลและความปลอดภัยของเนื้อหา
- เพิ่มมาตรการอย่างต่อเนื่องตามความเสี่ยงใหม่ที่พบระหว่างการใช้งานจริง
- รักษาสมดุลระหว่างความปลอดภัยกับประสบการณ์ผู้ใช้
Human-in-the-loop
- ส่งมอบการควบคุมให้มนุษย์เมื่อเอเจนต์ล้มเหลวหรือเมื่อต้องจัดการงานที่มีความเสี่ยงสูง
- ตัวกระตุ้นที่พบบ่อย
- เกินเกณฑ์ความล้มเหลวที่กำหนด
- มีการร้องของานที่อ่อนไหวสูง เช่น การคืนเงินหรือการชำระเงิน
บทสรุป
- เอเจนต์คือระบบนวัตกรรมที่สามารถ ทำให้เวิร์กโฟลว์เป็นอัตโนมัติ ได้ในสถานการณ์ที่ซับซ้อนและไม่แน่นอน
- ควรมีโครงสร้าง โมเดล-เครื่องมือ-คำสั่ง ที่แข็งแรง และค่อย ๆ ขยาย orchestration อย่างเป็นลำดับ
- ต้องสร้างระบบ guardrail และ human intervention อย่างเป็นสิ่งจำเป็นเพื่อให้ได้ทั้งความปลอดภัยและความน่าเชื่อถือ
- การเริ่มจากเล็ก ๆ ตรวจสอบให้เร็ว และค่อย ๆ ขยายความสามารถ คือหัวใจของการนำไปใช้งานให้สำเร็จ
1 ความคิดเห็น
https://notebooklm.google.com/notebook/…
ลองทำด้วย NotebookLM ครับ