AI-агенты в 2025 году умеют почти всё. Одно — не умеют: помнить. Я объединил две существующие идеи и создал простое, прозрачное решение: Sediment Palace.
Предисловие
Да, я знаю: в этом году уже появлялся «дворец памяти для ИИ» — с громкими бенчмарками, языком AAAK и последующим скандалом на Хабре. Выяснилось, что проект связан с мемкоином, результаты были подделаны, а идеи — скопированы у Дженнифер Пёрл.
Этот проект — не тот случай. Бенчмарков нет. Монеты нет. Код работает.
Переходим к сути.
Проблема: агенты всё забывают
Представьте: вы неделю работали с агентом над проектом. Он знает архитектуру, понимает, что вы имеете в виду под «тем самым коннектором», помнит, что вы не любите комментарии в коде.
Вы открываете новую сессию — и получаете: «Привет, я Claude, чем могу помочь?»
Существующие решения неидеальны. Первое — суммировать весь контекст в один блок и прикладывать к каждому запросу. Это дорого по токенам и плохо масштабируется. Второе — RAG на основе векторной БД. Требует сложной инфраструктуры, зависит от качества эмбеддингов и часто непрозрачен.
Sediment Palace предлагает третий путь: обычные markdown-файлы на диске, структурированные по слоям важности, с автоматическим старением и продвижением.
Синтез двух идей
Первая — «дворец памяти» для ИИ. Концепция из экосистемы MemPalace: память организована как пространство из «комнат» и «крыльев». Сам проект оказался проблемным, но идея — рабочая.
Вторая — седиментация. Взята из статьи на Хабре про управление знаниями. Метафора точная: знания ведут себя как геологические слои. Свежее — сверху. Важное со временем оседает глубже. Мусор разрушается.
Я соединил эти подходы. Если авторы оригинальных идей почувствуют себя ущемлёнными — пишите, разберёмся. Репозиторий открыт.
Как это устроено
Слои памяти
Память разделена на пять директорий:
- 01_Shallow — свежие наблюдения, гипотезы, временные заметки. Живут по умолчанию 7 дней.
- 02_Sediment — то, что оказалось полезным. Хранится до 60 дней.
- 03_Bedrock — кристаллизованное знание. decay_days: 36500 — можно считать постоянным.
- _Archive — куда переходят записи после распада.
- _System — журнал операций, метрики, политики.
Каждый файл — обычный markdown с YAML-фронтматтером. В нём два ключевых поля:
- density — оценка агентом ценности записи (от 0.0 до 1.0).
- streak — счётчик: растёт, если запись часто читают, падает — если игнорируют.
Эти параметры определяют судьбу файла при метаболизации.
Метаболизм
Периодически агент вызывает команду metabolize. Она проходит по всем файлам и применяет правила:
- Shallow → Sediment: если density ≥ 0.5 и файл старше порога.
- Shallow → Archive: если density < 0.5 и streak ≤ -2.
- Sediment → Bedrock: если возраст больше 30 дней и density ≥ 0.8 или streak ≥ 5.
Режим dry_run показывает, что произойдёт — удобно для проверки перед первым запуском.
MCP-транспорт
Сервер реализует Model Context Protocol — JSON-RPC 2.0 через stdin/stdout. Подключается к любому агенту, поддерживающему MCP: Claude Code, Cursor, кастомные агенты через SDK.
Доступные инструменты:
- write_memory — сохранить запись в слой
- read_memory — прочитать по пути или по запросу
- search_room — искать в конкретной директории
- move_file — вручную переместить запись
- metabolize — запустить цикл старения
- purge_memory — удалить с архивацией (требует confirm: true)
- recover_journal — восстановить операции после сбоя
- get_metrics, healthcheck — служебные команды
Ключевые детали реализации
Атомарные записи. Каждый файл пишется через временный .tmp-файл с последующим replace(). При сбое не остаётся повреждённых данных.
Файловые замки. Конкурентный доступ регулируется через lock-файлы, создаваемые с флагами O_CREAT | O_EXCL — единственный атомарный способ на уровне файловой системы без внешних библиотек. Зависшие замки (старше 30 секунд) удаляются автоматически.
Журнал и восстановление после сбоев. Каждая изменяющая операция записывает started до начала и completed после. Если процесс упал — recover_journal найдёт незавершённые действия и восстановит состояние.
Защита от path traversal. Все пути проверяются через Path.resolve() и сверяются с memory_root. Попытка выйти за пределы (например, через ../../) приводит к ошибке path_violation.
Политики безопасности. Деструктивные операции требуют подтверждения confirm: true. Лимит — 20 таких операций в минуту (настраивается в policy.yaml).
Архитектура
Зависимость всего одна — pyyaml. Больше ничего не нужно.
Как начать использовать
Конфигурация — через переменные окружения. Для Claude Code достаточно добавить настройки в .mcp.json.
После подключения агент может писать в память через write_memory, читать — через read_memory, и периодически запускать metabolize.
Память для агентов — задача без идеального решения. Sediment Palace достаточно прост, чтобы его можно было читать, понимать и адаптировать. Всё хранится в обычных файлах, которые открывает любой редактор. Никакой магии.
Если подход кажется полезным — берите, форкайте. Нашли проблему — открывайте issue.
И да. Мемкоина действительно нет.