𝗖𝗼𝗻𝘃𝗲𝗿𝘀𝗮𝘁𝗶𝗼𝗻 𝗠𝗲𝗺𝗼𝗿𝘆 𝗳𝗼𝗿 𝗟𝗮𝗻𝗴𝗖𝗵𝗮𝗶𝗻 𝗔𝗴𝗲𝗻𝘁𝘀

คุณสามารถทำให้ LangChain agents ฉลาดขึ้นได้ด้วยการเพิ่มหน่วยความจำ (memory) ซึ่งจะช่วยให้พวกมันสามารถจดจำข้อมูลจากข้อความก่อนหน้าได้

ในโพสต์นี้ ผมจะเปลี่ยน support agent ให้กลายเป็นเครื่องมือที่รองรับการสนทนาหลายรอบ (multi-turn tool)

ในรอบแรก (turn one) agent จะทำการค้นหาข้อมูลลูกค้าและใบแจ้งหนี้ (invoice) ในรอบที่สอง (turn two) agent จะสร้าง ticket โดยไม่ต้องถามหา ID ซ้ำอีกครั้ง

3 แนวคิดสำคัญที่ควรรู้:

ขั้นตอนการทำงานใน support flow:

  1. ผู้ใช้ขอให้ค้นหา customer ID 1042 และ invoice 8891 จากนั้น agent จะค้นหาข้อมูลดังกล่าว
  2. ผู้ใช้พูดว่า "Create the ticket" agent จะจดจำ ID จากขั้นตอนแรกและดำเนินการจนเสร็จสิ้น

สำหรับการทดสอบ ให้ใช้ MemorySaver ซึ่งจะเก็บสถานะไว้ใน local process ของคุณ

ข้อควรระวัง: MemorySaver จะถูกล้างข้อมูลเมื่อโค้ดของคุณหยุดทำงาน สำหรับการใช้งานจริง (production) ควรใช้ฐานข้อมูลอย่าง Postgres หรือ SQLite ซึ่งโค้ดจะยังคงเหมือนเดิมเนื่องจาก thread_id API ไม่มีการเปลี่ยนแปลง

แยกเซสชันออกจากกันโดยใช้ thread ID ที่ต่างกันสำหรับผู้ใช้แต่ละคน เพื่อป้องกันไม่ให้ข้อมูลของคนหนึ่งรั่วไหลไปยังการสนทนาของอีกคนหนึ่ง

ตรวจสอบโฟลเดอร์ langchain-agent-memory-nodejs-demo เพื่อดูสคริปต์ฉบับเต็ม

ที่มา: https://dev.to/zsevic/conversation-memory-for-langchain-agents-31pa

ชุมชนเพื่อการเรียนรู้เพิ่มเติม: https://t.me/GyaanSetuAi