0Pricing
AI Agents · 강의

의미 기억(벡터화된 사실)

에이전트가 사용자나 세상에 대해 학습한 자유로운 사실을 벡터 인덱스에 저장해보세요.

의미 기억(벡터화된 사실)은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.

의미 기억이란 무엇입니까

의미 기억에는 에이전트가 알고 있는 사용자, 세계, 회사에 관한 독립적인 사실이 저장됩니다. 일화적 기억과 달리 특정 사건에 연결된 타임스탬프가 없습니다.

예:

  • "사용자의 이름은 Alice입니다."
  • "Alice는 섭씨를 선호합니다."
  • "현재 요금제는 월 20달러인 Pro입니다."

저장 형식

벡터 저장소 + 구조화된 메타데이터:

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. 이전 사실을 더 이상 유효하지 않은 것으로 표시합니다(updated_at을 추가하고 소프트 삭제)
  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';

개인정보 보호가 필요한 사실

저장하기 전에 PII를 암호화하십시오. 일부 사실(건강, 재정 정보)은 추가적인 보호가 필요하므로 별도의 더 엄격하게 제한된 테이블에 저장하십시오.

사용자가 편집할 수 있는 사실

사용자에게 저장된 사실을 보여 주고 편집 또는 삭제할 수 있게 하십시오. 신뢰를 쌓고 불쾌한 기억 관련 실수를 줄일 수 있습니다.

도구로서의 메모리

에이전트 자체가 호출할 수 있는 도구로 메모리 작업을 노출하십시오:

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개를 검색하여 시스템 프롬프트에 삽입하십시오. 모순을 조정하고 시간이 지나면서 감쇠시키거나 만료시키십시오.

자주 묻는 질문

“의미 기억(벡터화된 사실)” 강의는 무료인가요?

네 — “의미 기억(벡터화된 사실)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.

“의미 기억(벡터화된 사실)”에서 뭘 배우나요?

에이전트가 사용자나 세상에 대해 학습한 자유로운 사실을 벡터 인덱스에 저장해보세요. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Agents을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“의미 기억(벡터화된 사실)” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 에피소드 기억(세션별 기록)
  2. 의미 기억(벡터화된 사실)
  3. 절차 기억(기술 라이브러리)
  4. 기억 감쇠 및 가비지 컬렉션
← AI Agents(으)로 돌아가기