Семантическая память (векторизованные факты)
Храните отдельные факты, которые агент узнал о пользователе или мире, в векторном индексе.
«Семантическая память (векторизованные факты)» — бесплатный урок AI Agents на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Что такое семантическая память
Семантическая память хранит отдельные факты, известные агенту, — о пользователе, мире или компании. В отличие от эпизодической памяти, здесь нет временной метки, связанной с конкретным событием.
Примеры:
- «Пользователя зовут Алиса».
- «Алиса предпочитает градусы Цельсия».
- «Текущий тариф — 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']))Получение данных во время выполнения
Для каждого нового query извлекайте релевантные факты и добавляйте их в системный запрос:
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)Обновление фактов
Что делать, если факт изменился? «Алиса предпочитает градусы Цельсия» -> «Теперь Алиса предпочитает градусы Фаренгейта». Есть две стратегии:
- Пометить старый факт как устаревший (добавить дату обновления и выполнить мягкое удаление)
- Или хранить противоречия и устранять их при получении данных
Согласование фактов
При извлечении проверяйте наличие противоречий с существующими фактами:
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 Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Семантическая память (векторизованные факты)»?
Храните отдельные факты, которые агент узнал о пользователе или мире, в векторном индексе. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Семантическая память (векторизованные факты)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Эпизодическая память (история сеанса)
- Семантическая память (векторизованные факты)
- Процедурная память (библиотека навыков)
- Забывание памяти и сборка мусора