𝟰𝟮/𝟲𝟬 𝗗𝗮𝘆𝘀 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗤𝘂𝗲𝘀𝘁𝗶𝗼𝗻𝘀
AI agent ของคุณจำชื่อผู้ใช้ได้
ผู้ใช้สั่งให้ agent จองเที่ยวบินราคาถูกไป NYC พวกเขาขอโรงแรมที่ราคาต่ำกว่า $150 ต่อคืน และขอให้เปรียบเทียบค่าใช้จ่ายรวมตลอดการเดินทาง
เมื่อถึงขั้นตอนที่สาม agent จะส่งประวัติการสนทนาจำนวน 8,000 tokens ไปยัง LLM แต่มันกลับตอบเหมือนกับว่าเป็นบทสนทนาครั้งแรก
คุณจำเป็นต้องมีสถาปัตยกรรมหน่วยความจำ (memory architecture) ก่อนที่จะปล่อยใช้งานจริง
เลือกหนึ่งข้อ:
In-context window: เก็บประวัติทั้งหมดไว้ใน prompt วิธีนี้ง่าย แต่จะล้มเหลวหลังจากผ่านไป 15 รอบ หรือเมื่อถึง 8,000 tokens
Vector memory store: ทำการ Embed บทสนทนาที่ผ่านมา แล้วดึงข้อมูลที่ตรงกันที่สุดด้วยความคล้ายคลึง (similarity) วิธีนี้จะล้มเหลวเมื่อการค้นหา "NYC flight" ดึงความจำจากการเดินทางครั้งเก่ามาแทนที่จะเป็นงานปัจจุบัน
Episodic memory with summarization: บีบอัดบทสนทนาเก่าๆ ให้เป็นสรุปที่มีโครงสร้าง แล้วใส่สรุปที่เกี่ยวข้องลงไปในแต่ละคำขอ วิธีนี้สร้างยากกว่า แต่ก็สับสนได้ยากกว่า
Redis session state: ใช้ structured key-value store โดยที่ agent จะเป็นคนอ่านและเขียนข้อมูลอย่างชัดเจน วิธีนี้มีความแน่นอน (deterministic) แต่ agent ต้องรู้ว่าจะต้องเก็บอะไรและเก็บเมื่อไหร่
ตัวเลือกหนึ่งล้มเหลวหลังจากผ่านไป 15 รอบการสนทนา อีกตัวเลือกหนึ่งดึงบริบทที่ผิดมาในเวลาที่ผิด และอีกตัวเลือกหนึ่งคือทางเลือกที่ถูกต้องสำหรับ task-oriented agents
เลือก A, B, C หรือ D แล้วบอกผมหน่อยว่าคุณเคยเจอแบบนี้ในการทำงานจริง (production) บ้างไหม
ผมจะแชร์คำอธิบายอย่างละเอียดในคอมเมนต์
Source: https://dev.to/thejoud1997/4260-days-system-design-questions-4018
Optional learning community: https://t.me/GyaanSetuAi