เมื่อพูดถึงประโยชน์เฉพาะตัวของการสร้างเอเจนต์ AI ส่วนใหญ่จะพูดถึงสองเรื่องหลัก: ความสามารถในการเรียกใช้เครื่องมือเพื่อทำงานให้สำเร็จ และความสามารถในการพัฒนาตัวเองได้ตามเวลา หน่วยความจำคือพื้นฐานของการสร้างเอเจนต์ที่พัฒนาตัวเองได้ซึ่งสามารถสร้างประสบการณ์ที่ดีขึ้นให้กับผู้ใช้ของเรา
ในบทเรียนนี้ เราจะดูว่า หน่วยความจำสำหรับเอเจนต์ AI คืออะไร และเราจะจัดการและใช้มันเพื่อประโยชน์ของแอปพลิเคชันของเราได้อย่างไร
บทเรียนนี้จะครอบคลุม:
• ความเข้าใจหน่วยความจำของเอเจนต์ AI: หน่วยความจำคืออะไรและทำไมมันจึงสำคัญสำหรับเอเจนต์
• การติดตั้งและการจัดเก็บหน่วยความจำ: วิธีปฏิบัติสำหรับการเพิ่มความสามารถในการจดจำให้กับเอเจนต์ AI ของคุณ โดยเน้นที่หน่วยความจำระยะสั้นและระยะยาว
• การทำให้เอเจนต์ AI พัฒนาตัวเองได้: วิธีที่หน่วยความจำช่วยให้เอเจนต์เรียนรู้จากปฏิสัมพันธ์ในอดีตและพัฒนาตัวเองตามเวลา
บทเรียนนี้มีโน้ตบุ๊กสอนสองชุดที่ครบถ้วน:
• 13-agent-memory.ipynb: ติดตั้งหน่วยความจำโดยใช้ Mem0 และ Azure AI Search กับ Microsoft Agent Framework
• 13-agent-memory-cognee.ipynb: ติดตั้งหน่วยความจำโครงสร้างโดยใช้ Cognee ซึ่งสร้างกราฟความรู้โดยอัตโนมัติ โดยมี embeddings เป็นฐาน แสดงภาพกราฟ และมีการดึงข้อมูลอย่างชาญฉลาด
หลังจากทำบทเรียนนี้เสร็จ คุณจะรู้วิธี:
• แยกแยะหน่วยความจำของเอเจนต์ AI ในรูปแบบต่างๆ รวมถึงหน่วยความจำทำงาน หน่วยความจำระยะสั้น และระยะยาว รวมทั้งรูปแบบเฉพาะ เช่น หน่วยความจำบุคลิกภาพและหน่วยความจำเหตุการณ์
• ติดตั้งและจัดการหน่วยความจำระยะสั้นและระยะยาวสำหรับเอเจนต์ AI โดยใช้ Microsoft Agent Framework พร้อมใช้เครื่องมือต่างๆ อย่าง Mem0, Cognee, หน่วยความจำ Whiteboard และการผนวกกับ Azure AI Search
• เข้าใจหลักการเบื้องหลังเอเจนต์ AI ที่พัฒนาตัวเองได้ และวิธีที่ระบบจัดการหน่วยความจำที่แข็งแกร่งช่วยส่งเสริมการเรียนรู้และปรับตัวต่อเนื่อง
โดยสาระสำคัญ, หน่วยความจำสำหรับเอเจนต์ AI หมายถึงกลไกที่ช่วยให้พวกเขาจดจำและเรียกข้อมูลกลับได้ ข้อมูลนี้อาจเป็นรายละเอียดเฉพาะเกี่ยวกับการสนทนา ความชอบของผู้ใช้ การกระทำที่ผ่านมา หรือแม้แต่รูปแบบที่เรียนรู้มา
หากไม่มีหน่วยความจำ แอปพลิเคชัน AI มักจะไม่มีสถานะ หมายความว่าทุกการปฏิสัมพันธ์เริ่มต้นใหม่ ซึ่งนำไปสู่ประสบการณ์ผู้ใช้ที่ซ้ำซากและน่าหงุดหงิดที่เอเจนต์ “ลืม” บริบทหรือความชอบก่อนหน้า
ความฉลาดของเอเจนต์นั้นลึกซึ้งสัมพันธ์กับความสามารถในการเรียกและใช้ข้อมูลในอดีต หน่วยความจำช่วยให้เอเจนต์:
• สะท้อนคิด: เรียนรู้จากการกระทำและผลลัพธ์ในอดีต
• เชื่อมโยงพูดคุย: รักษาบริบทของการสนทนาที่กำลังดำเนินอยู่
• คาดการณ์และตอบสนอง: คาดเดาความต้องการหรือโต้ตอบอย่างเหมาะสมโดยอิงข้อมูลในอดีต
• ทำงานได้เองโดยอิสระ: ทำงานอย่างอิสระมากขึ้นโดยดึงความรู้ที่เก็บไว้
เป้าหมายของการติดตั้งหน่วยความจำคือเพื่อทำให้เอเจนต์มีความน่าเชื่อถือและสามารถทำงานได้ดีขึ้น
คิดว่ามันเป็นกระดาษชิ้นหนึ่งที่เอเจนต์ใช้ระหว่างทำงานหรือคิดต่อเนื่องเพียงครั้งเดียว มันจะเก็บข้อมูลทันทีที่จำเป็นสำหรับการคำนวณขั้นตอนถัดไป
สำหรับเอเจนต์ AI หน่วยความจำทำงานมักจะจับข้อมูลที่เกี่ยวข้องที่สุดจากการสนทนา แม้ว่าประวัติการแชทจะยาวหรือถูกตัดทอนไป มันเน้นการดึงองค์ประกอบสำคัญ เช่น ข้อกำหนด ข้อเสนอ การตัดสินใจ และการกระทำ
ตัวอย่างหน่วยความจำทำงาน
ในเอเจนต์จองท่องเที่ยว หน่วยความจำทำงานอาจจับคำร้องขอปัจจุบันของผู้ใช้ เช่น “ฉันต้องการจองทริปไปปารีส” ข้อกำหนดเฉพาะนี้จะถูกเก็บไว้ในบริบททันทีของเอเจนต์เพื่อชี้นำการปฏิสัมพันธ์ในขณะนั้น
หน่วยความจำประเภทนี้เก็บข้อมูลไว้ในระหว่างการสนทนา หรือเซสชันเดียว ใช้เป็นบริบทของการแชทปัจจุบัน ทำให้เอเจนต์สามารถอ้างอิงกลับไปยังช่วงก่อนหน้าในบทสนทนาได้
ในตัวอย่าง SDK Python ของ Microsoft Agent Framework จะตรงกับ AgentSession ที่สร้างด้วย agent.create_session() เซสชันนี้เป็นหน่วยความจำระยะสั้นในตัวของเฟรมเวิร์ก: มันเก็บบริบทการสนทนาในขณะที่เซสชันนี้ยังใช้แต่บริบทนั้นจะไม่ถูกเก็บถาวรเมื่อเซสชันจบหรือแอปพลิเคชันรีสตาร์ท ให้ใช้หน่วยความจำระยะยาวสำหรับข้อมูลและความชอบที่ต้องการเก็บข้ามเซสชัน เช่นผ่านฐานข้อมูล ตัวชี้วัดเวกเตอร์ หรือสโตร์อย่างถาวรอื่นๆ
ตัวอย่างหน่วยความจำระยะสั้น
หากผู้ใช้ถามว่า “ตั๋วเครื่องบินไปปารีสราคาเท่าไหร่?” แล้วตามด้วย “ที่พักล่ะ?” หน่วยความจำระยะสั้นจะทำให้เอเจนต์เข้าใจว่า “ที่นั่น” หมายถึง “ปารีส” ภายในบทสนทนาเดียวกัน
นี่คือข้อมูลที่ยังคงอยู่ข้ามหลายการสนทนาหรือเซสชัน ทำให้เอเจนต์สามารถจดจำความชอบของผู้ใช้ การโต้ตอบในอดีต หรือความรู้ทั่วไปในระยะเวลานาน สำคัญสำหรับการปรับตามตัวบุคคล
ตัวอย่างหน่วยความจำระยะยาว
หน่วยความจำระยะยาวอาจเก็บว่า “เบนชอบสกีและกิจกรรมกลางแจ้ง ชอบกาแฟพร้อมวิวภูเขา และต้องการหลีกเลี่ยงลานสกีชั้นสูงเนื่องจากเคยได้รับบาดเจ็บ” ข้อมูลนี้ซึ่งเรียนรู้จากปฏิสัมพันธ์ก่อนหน้านี้มีผลต่อคำแนะนำในการวางแผนท่องเที่ยวในอนาคต ทำให้เป็นประสบการณ์เฉพาะบุคคลอย่างมาก
หน่วยความจำเฉพาะนี้ช่วยให้เอเจนต์พัฒนาความ “เป็นตัวตน” หรือ “บุคลิกภาพ” ที่สม่ำเสมอ ช่วยให้เอเจนต์จดจำรายละเอียดเกี่ยวกับตัวเองหรือบทบาทที่ตั้งใจไว้ ทำให้ปฏิสัมพันธ์ลื่นไหลและมีเป้าหมายมากขึ้น
ตัวอย่างหน่วยความจำบุคลิกภาพ หากเอเจนต์ท่องเที่ยวถูกออกแบบให้เป็น “ผู้วางแผนสกีผู้เชี่ยวชาญ” หน่วยความจำบุคลิกภาพอาจเสริมบทบาทนี้ ส่งผลต่อการตอบโต้ให้อยู่ในโทนและความรู้แบบผู้เชี่ยวชาญ
หน่วยความจำนี้เก็บลำดับขั้นตอนที่เอเจนต์ดำเนินการในงานซับซ้อน รวมถึงความสำเร็จและความล้มเหลว เหมือนกับการจดจำ “เหตุการณ์” หรือประสบการณ์ที่เคยเกิดขึ้นเพื่อเรียนรู้จากมัน
ตัวอย่างหน่วยความจำเหตุการณ์
หากเอเจนต์พยายามจองเที่ยวบินแต่ล้มเหลวเนื่องจากตั๋วเต็ม หน่วยความจำเหตุการณ์สามารถบันทึกความล้มเหลวนี้ ทำให้เอเจนต์สามารถลองเที่ยวบินทางเลือกหรือแจ้งผู้ใช้อย่างมีข้อมูลในการพยายามครั้งถัดไป
หน่วยความจำนี้เกี่ยวข้องกับการดึงและจดจำเอนทิตี้เฉพาะ (เช่น คน สถานที่ หรือสิ่งของ) และเหตุการณ์จากบทสนทนา ช่วยให้เอเจนต์สร้างความเข้าใจเชิงโครงสร้างขององค์ประกอบสำคัญที่ถูกพูดถึง
ตัวอย่างหน่วยความจำเอนทิตี้
จากบทสนทนาเกี่ยวกับทริปที่ผ่านมา เอเจนต์อาจดึง “ปารีส”, “หอไอเฟล” และ “มื้อเย็นที่ร้าน Le Chat Noir” ออกมาเป็นเอนทิตี้ ในการโต้ตอบครั้งหน้า เอเจนต์สามารถจำ “Le Chat Noir” และเสนอจองโต๊ะใหม่ที่นั่นได้
แม้ว่า RAG จะเป็นเทคนิคที่กว้างกว่า “Structured RAG” ถูกเน้นเป็นเทคโนโลยีหน่วยความจำที่ทรงพลัง มันดึงข้อมูลที่หนาแน่นและมีโครงสร้างจากแหล่งข้อมูลต่างๆ (บทสนทนา, อีเมล, รูปภาพ) และใช้เพื่อเพิ่มความแม่นยำ ความสามารถในการดึงข้อมูล และความเร็วในการตอบสนอง แตกต่างจาก RAG แบบคลาสสิกที่พึ่งพาเพียงความคล้ายคลึงทางความหมาย Structured RAG ทำงานโดยใช้โครงสร้างที่มีอยู่ในข้อมูล
ตัวอย่าง Structured RAG
แทนที่จะจับคู่แค่คำสำคัญ Structured RAG อาจแยกรายละเอียดเที่ยวบิน (ปลายทาง, วันที่, เวลา, สายการบิน) จากอีเมลและจัดเก็บในรูปแบบโครงสร้าง ซึ่งช่วยให้การค้นหาอย่างแม่นยำเช่น “ฉันจองเที่ยวบินไปปารีสวันอังคารขาไหน?”
การติดตั้งหน่วยความจำสำหรับเอเจนต์ AI นั้นเกี่ยวข้องกับกระบวนการที่เป็นระบบของ การจัดการหน่วยความจำ ซึ่งรวมถึงการสร้าง จัดเก็บ ดึงข้อมูล ผสาน ปรับปรุง และแม้แต่การ “ลืม” (หรือลบ) ข้อมูล การดึงข้อมูลเป็นแง่มุมที่สำคัญอย่างยิ่ง
หนึ่งในวิธีการจัดเก็บและจัดการหน่วยความจำเอเจนต์คือการใช้เครื่องมือเฉพาะทางอย่าง Mem0 Mem0 ทำงานเป็นชั้นหน่วยความจำถาวร ช่วยให้เอเจนต์จดจำปฏิสัมพันธ์ที่เกี่ยวข้อง จัดเก็บความชอบผู้ใช้และบริบทข้อเท็จจริง และเรียนรู้จากความสำเร็จและความล้มเหลวตามเวลา แนวคิดคือเอเจนต์ที่ไม่มีสถานะกลายเป็นเอเจนต์ที่มีสถานะ
มันทำงานผ่าน กระบวนการหน่วยความจำสองขั้นตอน: การสกัดและการอัปเดต ก่อนอื่น ข้อความที่เพิ่มเข้ามาในเธรดของเอเจนต์จะถูกส่งไปยังบริการ Mem0 ซึ่งใช้โมเดลภาษาใหญ่ (LLM) ในการสรุปประวัติการสนทนาและสกัดความทรงจำใหม่ จากนั้น ขั้นตอนการอัปเดตโดย LLM จะกำหนดว่าจะเพิ่ม แก้ไข หรือ ลบหน่วยความจำเหล่านี้ โดยเก็บไว้ในสโตร์ข้อมูลรูปแบบไฮบริดที่อาจรวมถึงฐานข้อมูลเวกเตอร์ กราฟ และคีย์-ค่า ระบบนี้ยังรองรับหน่วยความจำหลายประเภทและสามารถรวมหน่วยความจำกราฟสำหรับการจัดการความสัมพันธ์ระหว่างเอนทิตี้
อีกทางเลือกที่ทรงพลังคือการใช้ Cognee ซึ่งเป็นหน่วยความจำเชิงความหมายแบบโอเพ่นซอร์สสำหรับเอเจนต์ AI ที่แปลงข้อมูลที่มีโครงสร้างและไม่มีโครงสร้างเป็นกราฟความรู้ที่สามารถสืบค้นได้ โดยสนับสนุนด้วย embeddings Cognee ให้สถาปัตยกรรม ที่เก็บคู่ ซึ่งรวมการค้นหาความเหมือนแบบเวกเตอร์กับความสัมพันธ์ของกราฟ ช่วยให้เอเจนต์เข้าใจไม่เพียงแค่ว่าข้อมูลใดคล้ายกัน แต่ยังเข้าใจว่าคอนเซปต์ต่างๆ เกี่ยวข้องกันอย่างไร
มันโดดเด่นใน การดึงข้อมูลแบบไฮบริด ที่ผสานความเหมือนเวกเตอร์ โครงสร้างกราฟ และการสรุปเหตุผลโดย LLM - จากการค้นหาชิ้นส่วนข้อมูลดิบจนถึงการตอบคำถามที่รู้เรื่องกราฟ ระบบนี้รักษา หน่วยความจำที่มีชีวิต ที่พัฒนาและเติบโตได้ในขณะที่ยังคงสืบค้นได้ในรูปแบบกราฟที่เชื่อมต่อกันรองรับทั้งบริบทเซสชันระยะสั้นและหน่วยความจำถาวรระยะยาว
โน้ตบุ๊กสอน Cognee (13-agent-memory-cognee.ipynb) แสดงตัวอย่างการสร้างชั้นหน่วยความจำแบบรวมนี้ พร้อมตัวอย่างปฏิบัติการในการนำเข้าข้อมูลจากแหล่งต่างๆ การแสดงภาพกราฟความรู้ และการค้นหาด้วยกลยุทธ์ที่เหมาะสำหรับความต้องการเฉพาะของเอเจนต์
นอกจากเครื่องมือหน่วยความจำเฉพาะทางอย่าง Mem0 แล้ว คุณสามารถใช้บริการค้นหาที่แข็งแกร่งเช่น Azure AI Search เป็นแบ็คเอนด์สำหรับการจัดเก็บและดึงหน่วยความจำ โดยเฉพาะสำหรับ Structured RAG
นี่ช่วยให้คุณวางรากฐานคำตอบของเอเจนต์ด้วยข้อมูลของคุณเอง ทำให้คำตอบมีความเกี่ยวข้องและแม่นยำยิ่งขึ้น Azure AI Search สามารถใช้จัดเก็บหน่วยความจำการเดินทางเฉพาะผู้ใช้ แคตตาล็อกสินค้า หรือความรู้เฉพาะโดเมนอื่นๆ
Azure AI Search รองรับความสามารถเช่น Structured RAG ซึ่งโดดเด่นในการสกัดและดึงข้อมูลที่หนาแน่นและมีโครงสร้างจากชุดข้อมูลขนาดใหญ่ เช่น ประวัติการสนทนา อีเมล หรือแม้แต่รูปภาพ ซึ่งให้ “ความแม่นยำและการดึงข้อมูลเหนือมนุษย์” เมื่อเทียบกับวิธีตัดชิ้นส่วนข้อความและฝังข้อความแบบดั้งเดิม
รูปแบบทั่วไปของเอเจนต์ที่พัฒนาตัวเองคือการแนะนำ “เอเจนต์ความรู้” เอเจนต์แยกนี้จะสังเกตการสนทนาหลักระหว่างผู้ใช้กับเอเจนต์หลัก บทบาทของมันคือ:
ระบุข้อมูลที่มีค่า: กำหนดว่าส่วนใดของการสนทนาคุ้มค่าที่จะเก็บเป็นความรู้ทั่วไปหรือความชอบเฉพาะผู้ใช้
สกัดและสรุป: กลั่นกรองการเรียนรู้หรือความชอบที่สำคัญจากการสนทนา
จัดเก็บในฐานความรู้: เก็บข้อมูลที่สกัดมาอย่างถาวร โดยมักจะอยู่ในฐานข้อมูลเวกเตอร์ เพื่อให้สามารถดึงมาใช้ภายหลังได้
เสริมการค้นหาในอนาคต: เมื่อผู้ใช้เริ่มคำค้นหาใหม่ เอเจนต์ความรู้จะดึงข้อมูลที่เกี่ยวข้องที่จัดเก็บไว้และนำมาเพิ่มในพรอมต์ของผู้ใช้ เพื่อให้บริบทสำคัญกับเอเจนต์หลัก (คล้ายกับ RAG)
• การจัดการความล่าช้า: เพื่อหลีกเลี่ยงการทำให้การโต้ตอบของผู้ใช้ช้าลง สามารถใช้โมเดลที่ถูกกว่าและเร็วกว่าในขั้นต้นเพื่อตรวจสอบอย่างรวดเร็วว่าข้อมูลใดคุ้มค่าที่จะจัดเก็บหรือดึงมาใช้ โดยจะเรียกกระบวนการสกัด/ดึงข้อมูลที่ซับซ้อนกว่าเฉพาะเมื่อจำเป็น
• การดูแลรักษาฐานความรู้: สำหรับฐานความรู้ที่เพิ่มขึ้น ข้อมูลที่ใช้น้อยสามารถย้ายไปยัง “สโตร์เย็น” เพื่อบริหารค่าใช้จ่าย
เข้าร่วม Microsoft Foundry Discord เพื่อพบปะผู้เรียนคนอื่น ๆ เข้าร่วมชั่วโมงเปิดสำนักงาน และรับคำตอบสำหรับคำถามเกี่ยวกับเอเจนต์ AI ของคุณ
Context Engineering for AI Agents
Exploring Microsoft Agent Framework
ปฏิเสธความรับผิดชอบ: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator ขณะที่เราพยายามให้ความถูกต้อง โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้การแปลโดยมนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดขึ้นจากการใช้การแปลนี้