เซสชันและหน่วยความจำ

เซสชัน

วิธีทำงานของเซสชัน

การสนทนาทุกครั้งกับเอเจนต์เกิดขึ้นใน เซสชัน เซสชันถูกระบุด้วยคีย์ที่เข้ารหัส context, เอเจนต์ตัวไหน ช่องทางไหน แชทไหน

เซสชันรักษา transcript ที่สมบูรณ์ (append-only JSONL) ของข้อความทั้งหมด การเรียกเครื่องมือ และผลลัพธ์ Transcript นี้คือสิ่งที่ให้ context แก่เอเจนต์เกี่ยวกับการสนทนาที่กำลังดำเนินอยู่

Session Key

เซสชันถูกกำหนดเส้นทางโดยอัตโนมัติตาม context:

| รูปแบบ | ความหมาย | |, --, -|, --, -|
| agent:main:main | การสนทนาโดยตรงหลัก | | agent:<id>:<channel>:group:<id> | แชทกลุ่มบนช่องทางเฉพาะ | | agent:<id>:<channel>:channel:<id> | การสนทนาช่องทาง/ห้อง | | cron:<jobId> | การรัน scheduled job | | hook:<uuid> | การรันที่ทริกเกอร์ด้วย Webhook |

วงจรชีวิตเซสชัน

การติดตามโทเค็น

เซสชันติดตามการใช้โทเค็นสะสม (อินพุต เอาต์พุต อ่านแคช เขียนแคช) สำหรับการตรวจสอบต้นทุนและการจัดการ context window


Compaction

Compaction คืออะไร?

เมื่อการสนทนาเข้าใกล้ขีดจำกัด context window ของ model Neotask จะ compact มัน, สรุปข้อความเก่าเป็นภาพรวมแบบย่อและเริ่มเซสชันใหม่ด้วยสรุปนั้นพร้อมข้อความล่าสุด

วิธีทำงาน

  1. การตรวจจับ, ตรวจสอบการใช้งาน context (ค่าเริ่มต้นทริกเกอร์: 80% ของ context window)
  2. การสรุป, ข้อความเก่าถูกสรุปเป็น compaction entry
  3. เซสชันใหม่, เซสชันใหม่เริ่มต้นด้วยสรุปที่ฉีดเข้าที่ด้านบน
  4. การรักษา, Transcript เก่าถูกเก็บสำหรับประวัติแต่ไม่โหลดเข้า context อีกต่อไป

การกำหนดค่า

การ Compact ด้วยตนเอง

คุณสามารถทริกเกอร์ compaction ด้วยตนเองได้ทุกเวลาด้วยคำสั่ง /compact ซึ่งมีประโยชน์เมื่อคุณต้องการรีเซ็ต context โดยไม่สูญเสียข้อมูลสำคัญ


หน่วยความจำ

หน่วยความจำเอเจนต์

เอเจนต์แต่ละตัวมีระบบหน่วยความจำสำหรับการคงข้อมูลสำคัญข้ามเซสชัน:

Neotask รองรับการค้นหาความคล้ายคลึง vector ข้ามหน่วยความจำเอเจนต์:

  1. การ Index, ไฟล์หน่วยความจำถูก index โดยใช้ embedding
  2. การค้นหา, เอเจนต์ค้นหาหน่วยความจำด้วยภาษาธรรมชาติ ("ผู้ใช้พูดอะไรเกี่ยวกับค่ากำหนด API ของพวกเขา?")
  3. การเรียกคืน, หน่วยความจำที่เกี่ยวข้องถูกส่งคืนตามลำดับความคล้ายคลึง

Memory Plugin (LanceDB)

Memory plugin ของ LanceDB ให้การจัดเก็บ vector ขั้นสูง:

การเรียกคืนอัตโนมัติ

เมื่อเริ่มต้นเซสชัน หน่วยความจำที่เกี่ยวข้องสามารถถูกเรียกคืนและฉีดเข้าใน context ของเอเจนต์โดยอัตโนมัติ ซึ่งให้ความต่อเนื่องแก่เอเจนต์ข้ามเซสชันโดยไม่ต้องโหลดประวัติการสนทนาทั้งหมด


การคงเซสชัน

ข้อมูลเซสชันทั้งหมดถูกจัดเก็บในเครื่อง:

การทำความสะอาด