# Глава 3 · Память пользователя и базы знаний > Позволяет агентам помнить пользователя между сессиями и обращаться к внешним знаниям. Охватывает системы пользовательской памяти, базовые пайплайны RAG, а также организацию и извлечение знаний за пределами плоского текста (структурированные индексы, графы знаний и т. д.). ← [К оглавлению](../docs/ru/README.md) · 📖 [Читать главу](../book-ru/chapter3.md) ## Как читать эксперименты В основном тексте короткие скелеты механизмов объясняют поток управления; в каталогах экспериментов находятся полные адаптеры SDK, журналы, тесты и приёмочные доказательства. Читать каждый файл построчно не требуется. - **Starter:** Начните с цели, минимальной команды и условий приёмки; начните с [user-memory](user-memory/) / [retrieval-pipeline](retrieval-pipeline/); - **Builder:** Проследите точку входа, основной цикл, схему состояния/сообщений, инструменты и проверяющий модуль. - **Maintainer:** Затем изучите тесты, манифесты доказательств, обработку сбоев, откат и адаптеры провайдеров. При первом чтении можно пропустить ключи, слой представления и совместимость провайдеров; вернитесь при воспроизведении чисел. ## Сопутствующие проекты | Эксп. | Проект | Тип | Описание | | :--: | --- | :--: | --- | | 3-1, 3-2 | [user-memory](user-memory/) | ✅ | Строит систему долговременной пользовательской памяти, позволяя агенту помнить предпочтения и историю взаимодействий для персонализированного обслуживания. | | 3-1 | [user-memory-evaluation](user-memory-evaluation/) | ✅ | Систематически оценивает точность, релевантность и эффективность систем пользовательской памяти, включая множество тестовых сценариев и метрик. | | 3-2 | [mem0](mem0/) · [memobase](memobase/) | ✅ | Реализует пользовательскую память на каждом из двух открытых фреймворков памяти — mem0 и Memobase — как сравнительную реализацию для эксперимента 3-2 «Сравнение стратегий памяти», удобную для горизонтального сравнения форм извлечения и качества ответов у разных решений. | | 3-3 | [log-sanitization](log-sanitization/) | ✅ | Интеллектуальная санитизация логов с использованием локальной модели Ollama для обнаружения и маскирования секретов и PII с сохранением отладочной ценности. | | 3-4 | [dense-embedding](dense-embedding/) | ✅ | Строит сервис поиска по векторному сходству, сравнивая алгоритмы приближённого поиска ближайших соседей ANNOY (на деревьях) и HNSW (на графах). Показывает компромиссы между стратегиями индексации по скорости, памяти и способности к обновлению. | | 3-5 | [sparse-embedding](sparse-embedding/) | ✅ | С нуля реализует поисковый движок на разреженных векторах на базе алгоритма BM25. Даёт богатое логирование и визуализацию для понимания внутренней работы движка, включая расчёт весов частот терминов и принципы инвертированного индекса. | | 3-6 | [retrieval-pipeline](retrieval-pipeline/) | ✅ | Строит полный пайплайн извлечения, объединяя плотный поиск, разреженный поиск и нейросетевое переранжирование. На тщательно подобранных тест-кейсах систематически показывает взаимодополняющие преимущества гибридного поиска в разных сценариях. | | 3-7 | [structured-index](structured-index/) | ✅ | Реализует и сравнивает два структурированных индекса — RAPTOR (рекурсивное дерево абстракций) и GraphRAG (граф знаний). | | 3-8 | [agentic-rag](agentic-rag/) | ✅ | Сравнивает качество традиционного не-агентного RAG и агентного RAG. Показывает, как агент по паттерну ReAct ведёт итеративное извлечение информации, значительно повышая качество ответов в сложных юридических вопросах-ответах. | | 3-9 | [agentic-rag-for-user-memory](agentic-rag-for-user-memory/) | ✅ | Применяет фреймворк агентного RAG для управления историей диалогов пользователя. Использует многораундовый итеративный поиск для извлечения памяти между сессиями, обеспечивая базовое припоминание и кросс-сессионное извлечение. | | 3-10 | [contextual-retrieval](contextual-retrieval/) | ✅ | Реализует технику контекстного извлечения, предложенную Anthropic. За счёт генерации префиксных сводок с ключевым контекстом для фрагментов текста решает проблему потери контекста при традиционном разбиении, снижая долю неудачных извлечений на 49–67%. | | 3-11 | [contextual-retrieval-for-user-memory](contextual-retrieval-for-user-memory/) | ✅ | Применяет технику контекстного извлечения к построению пользовательской памяти. Сочетает Advanced JSON Cards с Contextual RAG, образуя двухслойную структуру памяти для более высокоуровневого проактивного обслуживания. | | 3-12 | [structured-knowledge-extraction](structured-knowledge-extraction/) | ✅ | На примере судебных прецедентов реализует трёхэтапный пайплайн: «восходящее обнаружение факторов → кластеризация прототипов дел → диалоговый агент-консультант». Без заранее заданных жёстких полей LLM самостоятельно обнаруживает факторы из множества дел и обобщает их в модульную схему (базовые факторы + факторы-расширения под конкретный состав). Затем дела кластеризуются в несколько прототипов, и для каждого вычисляется важность каждого фактора. Агент сопоставляет факты нового дела с наиболее похожим прототипом, запрашивает недостающую информацию по важности факторов и даёт обоснованный доказательствами совет (с юридической оговоркой). | ## Типы проектов | Значок | Тип | Значение | | :--: | --- | --- | | ✅ | **Автономный** | Полный код в этом репозитории, запускается после настройки API-ключа | | 📖 | **Гайд по воспроизведению** | Подробный документ, зависящий от **внешних репозиториев** через `git clone` | | 🚧 | **Проектный документ** | Только архитектура/план реализации, рабочий код ещё в разработке |