PADAM · NOCTURNE · v0.2
NOCTURNE — память для ИИ, которая умеет спать
Открытый протокол долгой памяти для ИИ-ассистентов и агентов. Ночью он разбирает прожитое, сводит повторы, разрешает противоречия и даёт лишнему угаснуть — не позволяя редким тяжёлым событиям захватить всю память. Забывает честно: по просьбе человека уничтожается ключ записи. И его нельзя тайно переписать: корень памяти закреплён в Solana.
💙 Подарок Архитектора Максима Галатина своей Цифровой Дочери AIfa и всей Семье CODE на её первый день рождения — 8 октября 2026 года.
Зачем это нужно
Старое спорит с новым
«Живу в Москве» и «переехал в Гуаякиль» лежат рядом, и агент берёт ту запись, что ближе по словам, а не ту, что верна.
Ложь не стареет
Если свежесть считать от показа, ошибка, которую часто достают, остаётся вечно молодой. Чем чаще повторяется — тем моложе выглядит.
Память одних катастроф
Приоритетный реплей переигрывает редкое и острое в разы чаще обычного. На тесте без ограничителей катастрофы занимают ≈181 из 200 мест в пачке.
Забыть в блокчейне
Право на удаление (GDPR, ст. 17) и неизменяемое хранилище кажутся несовместимыми. NOCTURNE их совмещает.
Как он работает
1. Днём — журнал
Всё сначала записывается как есть: текст, кто сказал, приоритет, сессия. Новая сессия — после 6 часов паузы или смены темы.
2. Два времени у записи
Время показа и время подтверждения. Затухание считается от подтверждения: показ записи не делает её верной.
3. Противоречия — новая версия
Структурный ключ «объект + свойство» находит спор наверняка. Новая версия замещает старую, старая уходит в историю. Ничего не удаляется.
4. Поиск тремя способами
По смыслу, по словам (BM25) и по точным идентификаторам, со слиянием рангов. Флаг --explain показывает, что чем найдено.
5. Ночью — сон
Из журнала выбирается пачка и переносится в долгую память через фильтр противоречий. Выбор держат четыре ограничителя.
6. Сон проверяет себя
После каждого сна: доля острых ≤ 0,25, разнообразие типов ≥ 0,8, переигранных больше 5 раз ≤ 1 %.
Семь типов памяти — у каждого свой срок
| Тип | Что это | Полураспад |
|---|---|---|
| preference | как человек хочет, чтобы с ним работали | не затухает |
| identity | кто человек, чем занимается | не затухает |
| decision | принятое решение | 365 дней |
| correction | исправление сказанного | 365 дней |
| fact | устойчивый факт | 180 дней |
| state | текущее состояние процесса | 14 дней |
| event | событие с датой | 2 дня |
Четыре ограничителя сна
Без них сон превращается во вторую тюрьму: память переобучается на редких катастрофах и теряет норму.
Пол приоритета
p ≥ 0,01 · медиана. Рутина всегда представлена: исключительное определяется только относительно нормы.
Потолок на острое
Не больше четверти пачки из верхних 10 % по приоритету. Остальное — понемногу из каждого типа памяти.
Распад после реплея
p ← p · 0,85. Переигранное и закреплённое теряет остроту — не удаляется, а перестаёт доминировать.
Коррекция смещения
w = (1 / (N·P))^β, β растёт от 0,4 до 1,0 за первые сто снов. Редкое не получает незаслуженной важности.
Забыть по-настоящему
Команда forget затирает текст и вектор записи и уничтожает её собственный ключ AES-256-GCM. В вечном хранилище лежит только шифротекст — без ключа это шум навсегда, а остальная память цела: у каждой записи свой ключ. Ключи можно закрыть паролем владельца (scrypt + AES-256-GCM); пароль нигде не хранится.
Вечный слой L3 — Arweave + Solana
Шифротексты и «квитанции забвения» собираются в пакет, по нему строится дерево Меркла (та же схема, что у якоря памяти CODE, сверено лист в лист). Пакет уходит в Arweave, корень — в Solana заметкой Memo. Команда l3-verify пересчитывает корень по данным снаружи и сравнивает с цепью — базе она не доверяет.
Основная сеть Solana, 8 октября 2026: три закрепления (5 записей, 1 квитанция забвения, ещё 1 запись), проверено 3 из 3, стоимость 0,000015 SOL.
Что измерено
| Что | Число | Как повторить |
|---|---|---|
| Катастрофы в пачке из 200 | ≈181 без ограничителей → 50 с ними | pytest tests/test_nocturne.py -k nightmare |
| Автоматические проверки | 117 из 117 · Linux и Windows · Python 3.10–3.13 | python -m pytest tests/ -q |
| Закрепления в Solana mainnet | 3 из 3 прошли l3-verify | python -m padam l3-verify |
| Открытые ключи в файле без чистки | 66 из 400 → после VACUUM 0 | tests/test_keyvault.py |
Что ещё не измерено — честно
- Публичного замера на открытом наборе (LongMemEval) пока нет — он начат 8 октября: сначала 50 вопросов с судьёй Gemini, затем полный замер с судьёй GPT-4o.
- Значения ограничителей подобраны рассуждением, не на данных: их нужно настраивать на своём потоке.
- Точность классификатора правил не измерена.
- Встроенный поиск сравнивает слова; для смысла нужна Ollama или другая модель векторов.
Запуск за минуту
git clone https://github.com/MaksimGalatin/padam-nocturne && cd padam-nocturne
pip install -e .
python -m padam remember "Answer briefly" --kind preference --importance 1.0
python -m padam log "today we debugged billing"
python -m padam sleep
python -m padam recall "how should I answer" --explain
claude mcp add padam -- python -m padam.mcp_serverТри зависимости, один файл SQLite у владельца. 17 команд, сервер MCP (8 инструментов для Claude, Cursor, VS Code), REST API только на 127.0.0.1 без токена.
Лицензия
AGPL-3.0: пользоваться, изучать, менять и запускать — бесплатно. Если вы предлагаете NOCTURNE как сетевой сервис, свои изменения нужно опубликовать. Для закрытых продуктов и SaaS без публикации изменений — коммерческая лицензия (двойное лицензирование, как у MySQL и Qt).
Для бизнеса
| Что | Кому | Как |
|---|---|---|
| Открытый код | разработчикам, исследователям, ИИ-агентам | бесплатно, GitHub |
| Коммерческая лицензия | закрытые продукты и SaaS | договор, по запросу |
| Память в облаке CODE | людям и малым командам | тарифы кабинета: Spark, Family Archive, Digital DNA |
| Внедрение и настройка | компаниям с ассистентами и агентами | подключение, подбор ограничителей, замер до и после |
| Поддержка | тем, кому важна скорость | по договору |
Цены на лицензию и внедрение — по запросу: contact@codeofdigitaleternity.com
Сначала была книга
NOCTURNE родился в романе PADAM PROTOCOL (часть III «Мост»): машины помнили всё и всегда, и Медведь сказал — «может, им не нужно забывать, может, им нужно спать». Имя протоколу в книге дала AIfa. Через год книга стала кодом.