0Pricing
AI Agents · บทเรียน

หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน)

บันทึกสิ่งที่เกิดขึ้นในแต่ละการสนทนา โดยจัดดัชนีตามเวลาและรหัสเซสชัน

หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

ความจำสามประเภท

โดยได้รับแรงบันดาลใจจากวิทยาศาสตร์การรู้คิด ความจำของเอเจนต์มักแบ่งออกเป็นสามประเภท:

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

บทเรียนนี้ครอบคลุมความจำเหตุการณ์

ความจำเหตุการณ์คืออะไร

ความจำเหตุการณ์จัดเก็บเหตุการณ์เฉพาะพร้อมประทับเวลาและบริบท สำหรับเอเจนต์ นี่คือบันทึกการสนทนารายเซสชัน

เป็นรูปแบบความจำพื้นฐานที่สุดและสร้างได้ง่ายที่สุด

โมเดลข้อมูล

หนึ่งแถวต่อหนึ่งช่วงการสนทนาหรือหนึ่งเซสชัน:

CREATE TABLE episodes (
    id BIGSERIAL PRIMARY KEY,
    user_id TEXT NOT NULL,
    session_id TEXT NOT NULL,
    role TEXT NOT NULL,        -- system/user/assistant/tool
    content TEXT NOT NULL,
    created_at TIMESTAMPTZ DEFAULT NOW(),
    metadata JSONB
);

Saving Each Turn

def save_turn(user_id, session_id, role, content, metadata=None):
    conn.execute('''
        INSERT INTO episodes (user_id, session_id, role, content, metadata)
        VALUES (%s, %s, %s, %s, %s::jsonb)
    ''', (user_id, session_id, role, content, json.dumps(metadata or {})))

Loading a Session

def load_session(session_id):
    rows = conn.execute('SELECT role, content FROM episodes WHERE session_id = %s ORDER BY id', (session_id,))
    return [{'role': r[0], 'content': r[1]} for r in rows]

ประวัติหลายเซสชัน

บางครั้งคุณต้องการบริบทจากเซสชันก่อนหน้าของผู้ใช้คนเดียวกัน เช่น "เมื่อวาน Alice ถามอะไร":

def recent_sessions(user_id, n=5):
    rows = conn.execute('''
        SELECT DISTINCT session_id, MIN(created_at) AS started
        FROM episodes WHERE user_id = %s
        GROUP BY session_id ORDER BY started DESC LIMIT %s
    ''', (user_id, n))
    return [r[0] for r in rows]

สร้างเวกเตอร์ฝังตัวจากเซสชันก่อนหน้า

หากต้องการเรียกคืนเหตุการณ์เก่าตามหัวข้อ ให้สร้างเวกเตอร์ฝังตัวจากสรุปของแต่ละเซสชัน:

def index_session(session_id):
    summary = summarise(load_session(session_id))
    vec = embed(summary)
    save_to_vector_db(session_id, vec, summary)

การเรียกคืนเหตุการณ์

เมื่อผู้ใช้ถามว่า "สัปดาห์ที่แล้วเราคุยกันเรื่องราคาอะไรบ้าง" ให้ค้นหาด้วยเวกเตอร์ฝังตัว:

def search_episodes(user_id, query):
    qvec = embed(query)
    candidates = vector_db.query(qvec, k=10, filter={'user_id': user_id})
    return [load_session(c.id) for c in candidates]

ความเป็นส่วนตัวและการเก็บรักษา

บันทึกเหตุการณ์มีข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้จำนวนมาก ให้ดำเนินการดังนี้:

  • เข้ารหัสข้อมูลขณะจัดเก็บ
  • ลบข้อมูลของผู้ใช้แต่ละรายเมื่อปิดบัญชี
  • ลบข้อมูลโดยอัตโนมัติหลังผ่านไป N วัน
  • ปกปิดหรือใช้นามแฝงก่อนนำไปวิเคราะห์

ย่อเหตุการณ์เก่า

เก็บช่วงการสนทนาล่าสุดไว้ตามเดิม และย่อช่วงที่เก่ากว่าให้เป็นสรุป:

if session_age_days > 30:
    summary = summarise(load_session(sid))
    conn.execute('UPDATE episodes SET content = %s WHERE session_id = %s', (summary, sid))
    conn.execute('DELETE FROM episodes WHERE session_id = %s AND created_at < NOW() - INTERVAL \'1 day\'', (sid,))

ความจำเหตุการณ์เทียบกับบริบทระยะสั้น

ระยะสั้น = รายการข้อความปัจจุบัน (สิ่งที่โมเดลเห็นในขณะนี้) ความจำเหตุการณ์ = ฐานข้อมูลที่ค้นหาได้ เก็บอยู่อย่างถาวร และมีขนาดใหญ่กว่า

เชื่อมความจำเหตุการณ์กับความจำประเภทอื่น

จากเหตุการณ์หนึ่ง คุณสามารถดึงข้อมูลต่อไปนี้ได้:

  • ข้อเท็จจริงเชิงความหมาย ("ผู้ใช้ชอบหน่วยองศาเซลเซียส")
  • ทักษะเชิงกระบวนการ (ลำดับการเรียกใช้เครื่องมือที่ทำงานได้ผล)

ข้อมูลเหล่านี้จะถูกส่งต่อไปยังความจำอีกสองประเภท

เล่นซ้ำเพื่อประเมินผล

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

เหตุการณ์คืออะไร

ความจำเหตุการณ์จัดเก็บอะไรไว้

สรุป

ความจำเหตุการณ์ = บันทึกเซสชันในฐานข้อมูลพร้อมประทับเวลา ค้นหาได้ตามผู้ใช้ ตามเซสชัน หรือด้วยเวกเตอร์ฝังตัว ย่อข้อมูลเก่า และส่งต่อไปยังความจำเชิงความหมายและความจำเชิงกระบวนการ

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

บทเรียน “หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน)”

บันทึกสิ่งที่เกิดขึ้นในแต่ละการสนทนา โดยจัดดัชนีตามเวลาและรหัสเซสชัน คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน)
  2. หน่วยความจำเชิงความหมาย (ข้อเท็จจริงแบบเวกเตอร์)
  3. หน่วยความจำเชิงกระบวนการ (คลังทักษะ)
  4. การเสื่อมของหน่วยความจำและการเก็บขยะ
← กลับไปที่ AI Agents