หน่วยความจำและเหตุการณ์สำคัญ

หน่วยความจำและเหตุการณ์สำคัญ

แผงหน่วยความจำดูแลหน่วยความจำสองประเภท: บริบทบทสนทนา (หน่วยความจำระยะสั้น บริบทเต็ม) และ เหตุการณ์สำคัญ (หน่วยความจำทางธุรกิจระยะยาวข้ามเซสชัน)

หน่วยความจำระยะสั้น

หน่วยความจำระยะสั้นกำหนดว่าเอเจนต์「จำบทสนทนาไม่กี่รอบล่าสุดได้」หรือไม่:

  • ควบคุมโดยการตั้งค่า**「เปิดใช้ประวัติแชท N รอบล่าสุด」**ในแผงหน่วยความจำ: ตั้งได้ว่าจะเก็บบทสนทนากี่รอบล่าสุด (หนึ่งถาม-หนึ่งตอบเท่ากับหนึ่งรอบ) ค่าเริ่มต้น 30 รอบ
  • เมื่อปิด ประวัติข้ามรอบจะไม่ถูกส่งให้โมเดลอีก และเอเจนต์จะ「ลืมรอบก่อนหน้า」เมื่อลูกค้าแจ้งว่า「จำรอบที่แล้วไม่ได้」ให้ตรวจสอบตรงนี้ก่อน
  • ในโหมด Debug / พรีวิว หน่วยความจำจะว่างเปล่าเสมอ (บริบทสะอาดทุกครั้ง) ซึ่งเป็นเรื่องปกติ

บริบทเต็ม

ภายในหน้าต่างหน่วยความจำระยะสั้น รอบที่เก่ากว่าจะเก็บเพียงข้อความล้วนของ「ถามอะไร ตอบอะไร」เป็นค่าเริ่มต้น——ตอนนั้นเรียกเครื่องมือใด ส่งพารามิเตอร์อะไร ได้ผลอะไรกลับมา ล้วนไม่อยู่ในประวัติ บริบทเต็มเป็นชั้นที่ซ้อนอยู่บนหน่วยความจำระยะสั้น: ทำให้ไม่กี่รอบล่าสุดพกร่องรอยการเรียกใช้เครื่องมือฉบับสมบูรณ์ (เรียกเครื่องมือใด พารามิเตอร์อินพุต และผลลัพธ์ที่คืนมา) เพิ่มเข้าไปด้วย เพื่อให้โมเดลจำได้อย่างแม่นยำว่าเพิ่งทำอะไรไปกันแน่

  • ควบคุมโดยการตั้งค่าบริบทเต็มในแผงหน่วยความจำ (ค่าจะแสดงเป็น「N รอบล่าสุด」) ค่าเริ่มต้น 1 รอบ ช่วง 0–5 0 หมายถึงปิด (รอบที่เก่ากว่าจะเก็บเฉพาะข้อความถาม-ตอบ)
  • มันและจำนวนรอบของหน่วยความจำระยะสั้นเป็นการตั้งค่าสองอย่างที่แยกกันไม่ส่งผลต่อกัน
  • นับเป็นรอบ (หนึ่งถาม-หนึ่งตอบเท่ากับหนึ่งรอบ) ไม่ได้นับตามจำนวนคำตอบ: หากรอบเดียวมีหลายคำตอบ จะไม่ถูกตัดตรงกลาง——ทั้งรอบจะพกร่องรอยเครื่องมือ หรือไม่พกเลยทั้งรอบ

เมื่อใดควรปรับให้มากขึ้น: เมื่อโมเดล「ดูเหมือนจำไม่ได้ว่าเพิ่งเรียกเครื่องมือใดหรือส่งพารามิเตอร์อะไร」ให้ตรวจก่อนว่าค่านี้ถูกตั้งเป็น 0 หรือน้อยเกินไปหรือไม่ แล้วจึงปรับให้มากขึ้น ในทางกลับกัน ยิ่งพกจำนวนรอบมาก การใช้ Token ก็ยิ่งพุ่งเร็ว——ไม่ใช่ยิ่งมากยิ่งดี โดยทั่วไป 1~2 รอบก็เพียงพอ

เหตุการณ์สำคัญ

เหตุการณ์สำคัญคือหน่วยความจำระยะยาวข้ามเซสชันระดับผู้ใช้ของ LoopAgent (เทียบได้กับใบงาน) โมเดลจะสร้าง / อัปเดต / สืบค้นเหตุการณ์ให้ผู้ใช้อย่างแข็งขันระหว่างบทสนทนา (เช่น「การดำเนินการคืนเงิน」「บัญชีผิดปกติ」) เมื่อผู้ใช้คนเดิมกลับมาในเซสชันใหม่ ก็ยังเห็นและดำเนินการต่อได้

  • เหตุการณ์ผูกกับอัตลักษณ์ผู้ใช้ มองเห็นและแก้ไขได้ข้ามทุกเซสชันของผู้ใช้คนนั้น
  • พรอมต์ระบบในแต่ละรอบจะพกเหตุการณ์ที่ยังไม่ปิดมากที่สุด 5 รายการของผู้ใช้คนนั้นมาโดยอัตโนมัติ เมื่อต้องการมากกว่านั้นโมเดลจะสืบค้นเองอย่างแข็งขัน

ความแตกต่างจาก Agent ทั่วไป / FlowAgent: เอเจนต์ทั้งสามประเภทใช้การตั้งค่าเหตุการณ์สำคัญชุดเดียวกัน (สวิตช์ + ประเภทเหตุการณ์) แต่วิธีการเขียนต่างกัน——LoopAgent เขียนแบบซิงโครนัสระหว่างบทสนทนา (สร้าง / แก้เหตุการณ์ภายในรอบนั้นโดยตรง) ส่วน Agent ทั่วไป / FlowAgent สกัดแบบอะซิงโครนัสในเบื้องหลังหลังจบบทสนทนา สำหรับเนื้อหาทั่วไป เช่น แนวคิดของเหตุการณ์สำคัญ การตั้งค่าประเภทเหตุการณ์ และสถานการณ์การใช้งาน ดูที่ เหตุการณ์สำคัญ

เงื่อนไขการปรากฏ: ต้องเป็นไปตามทั้งสองข้อ

การจะให้เครื่องมือที่เกี่ยวกับเหตุการณ์สำคัญปรากฏ ต้องเป็นไปตามพร้อมกันทั้งสองข้อ:

  1. สวิตช์หลักของเหตุการณ์สำคัญในหน่วยความจำเปิดอยู่
  2. ในหมวดประเภทเหตุการณ์มีการกำหนดประเภทไว้อย่างน้อย 1 ประเภท

สวิตช์เปิดอยู่ แต่ยังไม่ได้สร้างประเภทเหตุการณ์แม้แต่ประเภทเดียว → เครื่องมือเหตุการณ์สำคัญจะไม่ปรากฏ และจะไม่ฉีดเหตุการณ์ในอดีตเข้ามา นี่ไม่ใช่ข้อขัดข้อง

คำถามที่พบบ่อย

  • 「สร้างเหตุการณ์แล้วรายงานพารามิเตอร์ผิดพลาด」: ส่วนใหญ่เป็นเพราะประเภทเหตุการณ์ที่โมเดลใช้ไม่อยู่ในพจนานุกรมประเภทที่คุณกำหนดไว้ ให้ตรวจสอบว่าประเภทที่โมเดลส่งกับชื่อประเภทในหน้าตั้งค่าตรงกันทุกตัวอักษรหรือไม่ (แยกตัวพิมพ์เล็ก-ใหญ่ และช่องว่าง)
  • 「สร้างแล้วแต่กลับมาค้นไม่เจอ」: ให้สงสัยก่อนว่าอัตลักษณ์ผู้ใช้ไม่ถูกแยกออกมา (แบบไม่ระบุตัวตน / เซสชันของช่องทาง) ในกรณีนี้เหตุการณ์จะถูกเก็บสำรองตามเซสชัน การสืบค้นข้ามเซสชันอาจตกหล่นได้