สำคัญ! ขั้นตอนการสร้าง Agent

สำคัญ! ขั้นตอนการสร้าง Agent

GPTBots คือแพลตฟอร์มสำหรับสร้างแอปพลิเคชัน AI (Agent) ที่ให้คุณสร้าง Agent ได้เองโดยไม่ต้องเขียนโค้ด

การใช้งาน GPTBots นั้นง่ายและสะดวก ดังนั้นสิ่งที่ท้าทายที่สุดสำหรับผู้ใช้คือ — จะสร้าง Agent ที่ตอบโจทย์และใช้งานได้จริงอย่างไร?

“กระบวนการคิด” จึงเป็นหัวใจสำคัญ

บทความนี้จะพาคุณคิดทีละขั้นตอนและสร้าง Agent ของคุณเอง

กระบวนการคิด

แนวทางการออกแบบ Agent โดยทั่วไปคล้ายกับการออกแบบผลิตภัณฑ์

แต่เราแนะนำให้คุณ “มอง Agent เป็นเหมือนมนุษย์” เพื่อให้สามารถถ่ายทอดปัญหาจริงให้ Agent ช่วยแก้ไขได้อย่างตรงจุด

กำหนดสถานการณ์ (Scenario)

ก่อนอื่น คุณต้องกำหนดสถานการณ์ก่อนว่า “อยากให้ Agent นี้แก้ปัญหาอะไร?”

โดยปกติเราจะใช้หลัก “5W1H” ในการอธิบายสถานการณ์

Where, When, Who, Why, How, What

ตัวอย่างเช่น

ที่บ้าน (Where) ขณะช้อปปิ้งออนไลน์ (When) ผู้ซื้อ (Who) ต้องการปรึกษาฝ่ายบริการลูกค้าของร้านค้า (What) ด้วยการโทรศัพท์ (How) เพราะไม่รู้วิธีคืนสินค้า (Why)

นี่คือตัวอย่างสถานการณ์ผู้ใช้สำหรับ Agent ฝ่ายบริการลูกค้า e-commerce

คุณสามารถใช้ตัวอย่างนี้เป็นแนวทางในการลิสต์สถานการณ์ต่าง ๆ ที่ Agent จะเจอ เช่น

  • ไม่รู้วิธีคืนสินค้า
  • ไม่รู้วิธีขอเงินคืน
  • ไม่รู้วิธีเปลี่ยนสินค้า
  • ไม่รู้วิธีร้องเรียน
  • ไม่รู้วิธีใช้งานสินค้า
  • ต้องการช่องทางติดต่ออื่น ๆ ของแพลตฟอร์ม
  • ...

โดยทั่วไป ไม่แนะนำให้ Agent แก้ปัญหาหลากหลายเกินไป ยิ่ง Agent โฟกัสหรือเฉพาะทางมากเท่าไหร่ ก็จะยิ่งแก้ปัญหาได้มีประสิทธิภาพมากขึ้น

เหมือนกับมนุษย์ที่ต้อง “เชี่ยวชาญเฉพาะด้าน”

ในตัวอย่างข้างต้น สถานการณ์ที่ลิสต์ไว้ล้วนเกี่ยวข้องกับ “บริการลูกค้า e-commerce” ซึ่งช่วยสร้างภาพลักษณ์ของ Agent บริการลูกค้า e-commerce ได้ชัดเจน

ในขณะเดียวกัน ไม่ควรรวมสถานการณ์ที่ไม่เกี่ยวข้องกับ “บริการลูกค้า e-commerce” เช่น “แนะนำสินเชื่อ” หรือ “แนะนำสินค้า” ไว้ใน Agent นี้

กำหนดจุดยืน (Positioning)

หลังจากลิสต์สถานการณ์แล้ว คุณจะสามารถกำหนดจุดยืนของ Agent ได้ชัดเจน

ในตัวอย่างข้างต้น Agent นี้คือ “ฝ่ายบริการลูกค้า e-commerce” ที่สามารถตอบคำถามเกี่ยวกับแพลตฟอร์ม e-commerce และจัดการงาน เช่น การคืนสินค้าและเปลี่ยนสินค้า

เตรียมทรัพยากร (Resources)

เมื่อกำหนดจุดยืนได้แล้ว ขั้นตอนถัดไปคือการเตรียมทรัพยากรที่ Agent ต้องใช้ แบ่งเป็น 2 ประเภทหลัก ได้แก่ ความรู้ และ เครื่องมือ

ความรู้ (Knowledge)

“ความรู้” คือสิ่งที่ Agent ต้องเรียนรู้และเข้าใจ มักอยู่ในรูปแบบเอกสาร

เช่นเดียวกับมนุษย์ที่ต้องเรียนรู้เฉพาะทางก่อนทำงาน Agent ก็เช่นกัน

Agent จะตอบคำถามผู้ใช้โดยอ้างอิงจากความรู้ที่มี

ตัวอย่างเช่น ขั้นตอนการคืนสินค้า/เปลี่ยนสินค้าของแพลตฟอร์ม e-commerce หากไม่ได้เตรียมข้อมูลนี้ให้ Agent Agent ก็จะไม่รู้วิธีตอบ หรืออาจตอบผิด ๆ ได้

คุณต้องเตรียมเอกสารความรู้เหล่านี้ตามสถานการณ์และจุดยืนของ Agent

เช่น หากต้องการให้ Agent ตอบคำถามเกี่ยวกับการคืนสินค้า/เปลี่ยนสินค้าในแพลตฟอร์ม e-commerce ก็ควรเตรียมเอกสารกฎระเบียบและขั้นตอนที่เกี่ยวข้อง

เครื่องมือ (Tools)

“เครื่องมือ” คืออุปกรณ์ที่ Agent ใช้ในการดำเนินงาน

สำหรับ Agent แล้ว เครื่องมือก็คือ “API” นั่นเอง โดยการให้ API กับ Agent ในฐานะเครื่องมือ Agent จะสามารถเรียกใช้ API เหล่านี้เพื่อทำงานได้

ตัวอย่างเช่น หากผู้ใช้ต้องการคืนสินค้าในแพลตฟอร์ม e-commerce นักพัฒนา Agent สามารถเตรียม API คืนสินค้าให้ Agent ได้ เมื่อผู้ใช้ขอคืนสินค้า Agent ก็จะเรียก API นี้เพื่อดำเนินการคืนสินค้าให้ผู้ใช้โดยตรง

คุณต้องเตรียมเครื่องมือ (API) เหล่านี้ตามสถานการณ์และจุดยืนของ Agent เช่น API คืนสินค้า, API เปลี่ยนสินค้า, API ส่งคำร้อง ฯลฯ

การออกแบบ (Design)

เมื่อคิดและเตรียมทรัพยากรครบแล้ว จึงเข้าสู่ขั้นตอนการออกแบบ Agent อย่างเป็นทางการ

Identity Prompt: กำหนดตัวตน Agent

image-20240702183619107

การเขียน identity prompt ที่เหมาะสมคือจุดเริ่มต้นของการสร้าง Agent ที่ดี

ใน identity prompt นี้ คุณต้องกำหนดบทบาท ทักษะ งาน ข้อจำกัด ฯลฯ ให้ Agent เข้าใจหน้าที่ของตัวเองอย่างชัดเจนและทำงานได้ดีขึ้น

อ่านเพิ่มเติม: วิธีเขียน Identity Prompt ให้ทรงพลังและมีประสิทธิภาพ

Context Allocation: ให้ Agent จัดการข้อมูลได้เหมาะสมในพื้นที่จำกัด

image-20240702183704628

Agent ทำงานบน Large Language Model (LLM) ซึ่ง context length ของ LLM คือปริมาณข้อมูลที่ LLM รับมือได้ในแต่ละครั้ง (มีขีดจำกัด)

เปรียบเสมือนความสามารถของแต่ละคนในการอ่านบทความ บางคนอ่านบทความจำนวนมากในเวลาสั้น ๆ แล้วยังเข้าใจและประมวลผลข้อมูลได้ดี ขณะที่บางคนอ่านได้น้อยและอาจประมวลผลไม่ทัน

context length ของ LLM ก็เหมือนกับจำนวนบทความที่มนุษย์อ่านและเข้าใจได้ในเวลาสั้น ๆ

ดังนั้น ในบริบทที่มีขีดจำกัด การให้ข้อมูลที่เหมาะสมกับ LLM และลดข้อมูลที่ไม่เกี่ยวข้อง จะช่วยให้ LLM สร้างผลลัพธ์ได้ดีขึ้น

อ่านเพิ่มเติม: วิธีจัดสรร Context ของ LLM อย่างเหมาะสม

ฐานความรู้: สอนความรู้ให้ Agent

image-20240702183726588

อัปโหลดเอกสารความรู้ที่เตรียมไว้เข้าสู่ฐานความรู้ เพื่อให้เมื่อผู้ใช้ถามคำถาม Agent จะนำคำถามไปค้นหาในฐานความรู้ก่อน หาเนื้อหาที่เกี่ยวข้องมาอ้างอิง แล้วให้ LLM สรุปและตอบกลับผู้ใช้

อย่างไรก็ตาม การอัปโหลดเอกสารเข้า Knowledge Base อาจไม่ใช่วิธีใช้ความรู้ที่ดีที่สุด ซึ่งเกี่ยวข้องกับ RAG framework และวิธีที่ LLM จัดการงาน คุณสามารถอ่านบทความนี้เพื่อออกแบบวิธีที่เหมาะกับสถานการณ์ของคุณ

อ่านเพิ่มเติม: วิธีใช้งาน Knowledge Base

เครื่องมือ (Tools): ให้ Agent ทำงานได้

image-20240702183808305

ในโมดูล Tools คุณสามารถแพ็ก API ที่เตรียมไว้เป็นเครื่องมือแล้วเพิ่มเข้า Agent เพื่อให้ Agent เรียกใช้ API เหล่านี้ได้

อ่านเพิ่มเติม: วิธีสร้าง Tools

นอกจากนี้ GPTBots ยังมี OpenTools สำเร็จรูปจำนวนมากให้เลือกใช้ สามารถเพิ่มเข้า Agent ได้โดยไม่ต้องพัฒนาเอง

Flow: เหมาะสำหรับ Agent ที่มีขั้นตอนซับซ้อน

image-20240702183843845

หากต้องออกแบบตรรกะ Agent ที่ซับซ้อน มีหลายขั้นตอนหรือมีเงื่อนไขมากมาย Flow จะเป็นตัวเลือกที่ดี ช่วยให้คุณกำหนด workflow ของ Agent ได้อย่างอิสระบน canvas ด้วยการลากวาง

อ่านเพิ่มเติม: เกี่ยวกับ Flow

Memory: ให้ Agent จัดการงานต่อเนื่อง

image-20240702184900746

เหมือนกับการสนทนาระหว่างคน เราต้องรู้ว่าคุยอะไรกันมาก่อนเพื่อสานต่อหัวข้อเดิม

Memory ของ Agent ก็เช่นเดียวกัน

คุณสามารถเลือกใช้หรือไม่ใช้ memory และกำหนดวิธีใช้ memory ตามสถานการณ์ Agent ได้ เช่น

  • หาก Agent ต้องคุยหลายรอบเพื่อแก้ปัญหา (เช่น การสนทนาเชิงลึก) สามารถเปิด “long-term memory”
  • หาก Agent แก้ปัญหาได้ในไม่กี่รอบ (เช่น ปรึกษาออนไลน์) เปิดเฉพาะ “short-term memory” ก็เพียงพอ
  • หาก Agent ทำงานจบในครั้งเดียว (เช่น เขียนอีเมล) ไม่จำเป็นต้องเปิด memory ใด ๆ

image-20240702184917989

นอกจากนี้ คุณยังสามารถให้ attributes ของผู้ใช้เป็น memory เพื่อให้ Agent เข้าใจข้อมูลของผู้ใช้และให้บริการแบบเฉพาะบุคคลได้ดียิ่งขึ้น

image-20240702190038187

ตัวอย่างเช่น Agent ห้องพักโรงแรม เมื่อ Agent สนทนากับแขก จะต้องรู้ข้อมูลชื่อและหมายเลขห้องของแขกผ่าน attributes อยู่แล้ว ดังนั้นเมื่อแขกขออาหาร Agent ก็ไม่ต้องถามชื่อหรือหมายเลขห้องอีก เพียงถามว่าต้องการบริการอะไร เพราะ Agent รู้แล้วว่าต้องส่งอาหารไปที่ห้องไหน

อ่านเพิ่มเติม: เกี่ยวกับ Memory และ User Attributes

การนำไปใช้: Agent จะถูกใช้งานที่ไหน

คุณสามารถประเมินได้ว่า Agent ควรถูกนำไปใช้งานที่ใดตาม use case ของคุณ เพื่อให้บริการผู้ใช้ได้ตรงจุด

นำ Agent ไปเชื่อมต่อในจุดที่ผู้ใช้อยู่

อ่านเพิ่มเติม: Agent Integration

ตัวอย่าง

หากคุณยังไม่เข้าใจวิธีออกแบบ Agent หลังอ่านเนื้อหาข้างต้น เราได้เตรียมตัวอย่างไว้ให้คุณแล้ว

image-20240702192402047

เพียงเลือก template ใดก็ได้ขณะสร้าง Agent คุณสามารถดูค่าต่าง ๆ ที่ตั้งไว้ใน template เพื่อศึกษาและคิดต่อยอดการออกแบบ Agent ของคุณเอง นี่เป็นวิธีเรียนรู้ที่ดีมาก