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

หน่วยความจำเชิงความหมาย (ข้อเท็จจริงแบบเวกเตอร์)

ข้อเท็จจริงอิสระที่เอเจนต์เรียนรู้เกี่ยวกับผู้ใช้หรือโลก ซึ่งจัดเก็บไว้ในดัชนีเวกเตอร์

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

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

ความจำเชิงความหมายคืออะไร

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

ตัวอย่าง:

  • "ผู้ใช้ชื่อ Alice"
  • "Alice ชอบหน่วยองศาเซลเซียส"
  • "ระดับราคาปัจจุบันคือ Pro ราคา 20 ดอลลาร์ต่อเดือน"

รูปแบบการจัดเก็บ

ที่เก็บเวกเตอร์พร้อมข้อมูลเมตาที่มีโครงสร้าง:

CREATE TABLE semantic_facts (
    id UUID PRIMARY KEY,
    user_id TEXT NOT NULL,
    fact TEXT NOT NULL,
    embedding vector(1536),
    source TEXT,                    -- 'extracted' / 'user-stated' / 'system'
    confidence REAL DEFAULT 1.0,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

ดึงข้อเท็จจริงจากการสนทนา

หลังจบแต่ละเซสชัน ให้เรียกใช้ตัวดึงข้อมูลด้วย LLM:

extract_prompt = '''
From the conversation below, list any new facts about the user.
Return JSON: [{"fact": "...", "confidence": 0.0-1.0}]

Conversation:
{transcript}
'''
print(extract_prompt.strip())

Saving Extracted Facts

import uuid

for f in extracted:
    vec = embed(f['fact'])
    conn.execute('''
        INSERT INTO semantic_facts (id, user_id, fact, embedding, confidence, source)
        VALUES (%s, %s, %s, %s, %s, 'extracted')
    ''', (str(uuid.uuid4()), user_id, f['fact'], vec, f['confidence']))

เรียกคืนขณะอนุมาน

สำหรับคำค้นหาใหม่แต่ละรายการ ให้เรียกคืนข้อเท็จจริงที่เกี่ยวข้องและแทรกลงในพรอมต์ระบบ:

def relevant_facts(user_id, query, k=5):
    qvec = embed(query)
    rows = conn.execute('''
        SELECT fact FROM semantic_facts
        WHERE user_id = %s
        ORDER BY embedding <=> %s LIMIT %s
    ''', (user_id, qvec, k))
    return [r[0] for r in rows]

facts = relevant_facts(user_id, user_question)
system = SYSTEM_PROMPT + '\n\nKnown facts:\n' + '\n'.join(facts)

อัปเดตข้อเท็จจริง

ถ้าข้อเท็จจริงเปลี่ยนแปลงจะทำอย่างไร เช่น "Alice ชอบหน่วยองศาเซลเซียส" -> "ตอนนี้ Alice ชอบหน่วยองศาฟาเรนไฮต์" มีกลยุทธ์สองแบบ:

  1. ทำเครื่องหมายข้อเท็จจริงเก่าว่าล้าสมัย (เพิ่มเวลาที่อัปเดตและลบแบบนุ่มนวล)
  2. หรือจัดเก็บข้อขัดแย้งไว้ แล้วแก้ไขเมื่อตอนเรียกคืน

ประนีประนอมข้อเท็จจริง

ขณะดึงข้อมูล ให้ตรวจสอบว่ามีข้อขัดแย้งกับข้อเท็จจริงที่มีอยู่หรือไม่:

def reconcile(user_id, new_fact):
    similar = relevant_facts(user_id, new_fact, k=3)
    response = llm.invoke(f'Is the new fact ({new_fact}) consistent with existing facts ({similar})? If contradicting, return the obsolete one.')
    if response.has_contradiction:
        mark_obsolete(response.obsolete_id)
    save_fact(new_fact)

Confidence-Weighted Retrieval

rows = conn.execute('''
    SELECT fact FROM semantic_facts
    WHERE user_id = %s AND confidence > 0.6
    ORDER BY embedding <=> %s LIMIT %s
''', ...)

การเสื่อมอายุของข้อเท็จจริง

ข้อเท็จจริงบางอย่างล้าสมัยได้ เช่น "โครงการปัจจุบันคือ X" ให้เพิ่ม TTL หรือลดระดับความมั่นใจลงตามเวลา:

UPDATE semantic_facts
SET confidence = confidence * 0.95
WHERE created_at < NOW() - INTERVAL '30 days';

ข้อเท็จจริงที่อ่อนไหวต่อความเป็นส่วนตัว

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

ข้อเท็จจริงที่ผู้ใช้แก้ไขได้

แสดงข้อเท็จจริงที่จัดเก็บไว้ให้ผู้ใช้ดู และอนุญาตให้แก้ไขหรือลบได้ วิธีนี้ช่วยสร้างความไว้วางใจและลดข้อผิดพลาดจากความจำที่ดูน่าขนลุก

ความจำในรูปแบบเครื่องมือ

เปิดให้การดำเนินการเกี่ยวกับความจำเป็นเครื่องมือที่เอเจนต์สามารถเรียกใช้ได้ด้วยตัวเอง:

tools = [
    {'name': 'remember_fact', 'description': 'Save a new fact about the user'},
    {'name': 'forget_fact', 'description': 'Remove a stored fact'},
    {'name': 'recall_facts', 'description': 'Search relevant facts for a query'}
]
import json
print(json.dumps(tools, indent=2))

Letta และ MemGPT

เฟรมเวิร์ก Letta ซึ่งเดิมชื่อ MemGPT นำความจำของเอเจนต์ไปใช้ในระดับขนาดใหญ่ โดยแยกเป็นความจำ "หลัก" (อยู่ในบริบทเสมอ) และความจำ "คลังเก็บ" (ค้นหาด้วยเวกเตอร์)

ความจำเชิงความหมายเทียบกับความจำเหตุการณ์

ความจำเชิงความหมายแตกต่างจากความจำเหตุการณ์อย่างไร

สรุป

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

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

บทเรียน “หน่วยความจำเชิงความหมาย (ข้อเท็จจริงแบบเวกเตอร์)” ฟรีหรือไม่

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

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

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

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

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

บทเรียน “หน่วยความจำเชิงความหมาย (ข้อเท็จจริงแบบเวกเตอร์)” ใช้เวลานานแค่ไหน

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

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

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

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

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