Перейти к основному содержимому

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.13python -m pytest tests/ -q
Закрепления в Solana mainnet3 из 3 прошли l3-verifypython -m padam l3-verify
Открытые ключи в файле без чистки66 из 400 → после VACUUM 0tests/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. Через год книга стала кодом.