Как создать AI-ассистента с долговременной памятью: Архитектура MemGPT и Letta
Даже модели с контекстным окном в 1-2 миллиона токенов теряют фокус внимания (Lost in the Middle) и стоят колоссальных денег при отправке всей истории переписки в каждом запросе. Настоящий ассистент должен обладать иерархической памятью по образцу операционной системы компьютера: оперативная память (RAM), системный своп и постоянный жесткий диск (SSD).

Три уровня памяти: Working, Episodic, Archival
Архитектура Letta (MemGPT) делит память на три независимых слоя:
- 1Working Memory (Оперативный блок): Небольшой JSON-блок (до 2000 токенов), постоянно находящийся в системном промпте. Содержит ключевые факты: имя пользователя, профессию, стек технологий и текущий проект.
- 2Episodic Memory (История бесед): Временная шкала всех предыдущих разговоров с метками времени.
- 3Archival Memory (Архивное хранилище): Векторная база данных (Chroma / pgvector), куда выгружаются терабайты документов и старых заметок, доступные через инструмент semantic_search.
Механизм саморедактирования памяти через функции
Модель сама решает, когда и что записать в свою память, вызывая специальные системные функции:
import json
class MemoryManager:
"""Управление оперативной памятью ассистента."""
def __init__(self):
self.core_memory = {
"user_profile": {"name": "Артур", "role": "Lead Architect", "preferences": []},
"system_state": {"active_project": "Next.js AI Portal"}
}
def edit_core_memory(self, field: str, value: str):
"""Инструмент, вызываемый LLM для обновления своих воспоминаний."""
if field in self.core_memory["user_profile"]:
self.core_memory["user_profile"][field] = value
return f"Успешно обновлено поле {field}: {value}"
elif field == "add_preference":
self.core_memory["user_profile"]["preferences"].append(value)
return f"Добавлено предпочтение: {value}"
return "Ошибка: Неизвестное поле памяти"
def format_system_prompt(self) -> str:
return f"""
Ты — персональный AI-ассистент.
Твоя текущая оперативная память о пользователе:
{json.dumps(self.core_memory, ensure_ascii=False, indent=2)}
Если в разговоре пользователь сообщает новые факты о себе или меняет предпочтения,
ты ОБЯЗАН вызвать функцию edit_core_memory для сохранения изменений!
"""Компрессия и вытеснение устаревших воспоминаний
Когда оперативный блок переполняется, специальный фоновый воркер запускает процедуру Memory Compaction: объединяет дубликаты, удаляет неактуальные задачи и переносит устаревшие факты в архивный векторный индекс.
Аппаратная верификация и метрики кремния
vllm serve build-ai-assistant-with-long-term-memory --tensor-parallel-size 4 --gpu-memory-utilization 0.95 --max-model-len 32768 --kv-cache-dtype fp8Artur Moiseyev
AI Systems Architect
Независимый AI-исследователь и архитектор распределенных систем. Разрабатываю мультиагентные системы, открытые reasoning-модели и инфраструктуру реального времени.
Связанные статьи справочника

Скилл Deep Research (Глубокое исследование): что это, зачем нужен и как за 10 минут заменить аналитика
Полный разбор скилла Deep Research простыми словами. Как заставить нейросеть самостоятельно изучить 100+ сайтов, PDF-отчетов и форумов и выдать готовый аналитический документ со ссылками.

Скилл Computer Use и Operator: как нейросеть сама управляет браузером, мышкой и заполняет сайты
Что такое скилл управления компьютером (Computer Use / Operator)? Разбираем простыми словами, как ИИ видит экран, сам нажимает кнопки на сайтах, собирает цены в таблицы и выполняет рутинную работу.

Что такое MCP-скиллы (Model Context Protocol) простыми словами: как подключить ИИ к вашим программам
Почему весь интернет говорит про MCP (Model Context Protocol)? Объясняем без сложных терминов, что такое MCP-скиллы и как они позволяют нейросети самой работать в вашем Google Диске, Таблицах, Notion, Figma и Telegram.