noosphere-lite-mcp
Health Warn
- License — License: GPL-3.0
- No description — Repository has no description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Noosphere Lite MCP
Память для ИИ, которой не нужно помещаться в контекстное окно.
Автор — Garyu-tt · Версия 0.3.0 · Linux / Python / MCP · GNU GPLv3
Что это вообще такое?
Представь: ты несколько недель разрабатываешь проект с нейросетью. Вы находите ошибки, принимаете решения, меняете архитектуру, проверяете гипотезы. А потом начинается новый диалог, и половину проделанной работы приходится объяснять заново.
Noosphere Lite — долговременная память, которая живёт отдельно от агента. Это не ещё одна языковая модель, не бесконечный чат и не каталог текстовых файлов. Это хранилище знаний, их истории и взаимосвязей. Агент подключается к нему через MCP, получает ровно ту информацию, которая нужна в текущий момент, и продолжает работу.
Память принадлежит не конкретной сессии. Один агент сохранил решение сегодня; другой может найти его через неделю. Не нужно пытаться запихнуть в промпт весь архив: контекстное окно становится рабочим столом, а не складом.
Что умеет Lite
Память по требованию
У агента есть несколько способов вспомнить необходимое: найти подходящие записи, получить краткие результаты, прочитать одну запись целиком, пройти по связанным узлам или собрать ограниченный объём контекста под задачу. Всё остальное в контекст не попадает.
Граф вместо мешка заметок
Каждая запись — отдельный узел: идентификатор, заголовок, текст, тип, теги, ссылка на источник и время изменений. Узлы можно связывать именованными направленными отношениями: например, related, supports, blocks, derived_from.
По графу можно ходить на глубину от одного до трёх переходов. Содержимое записей не обязано загружаться вместе с картой связей. Можно сначала найти путь, а затем открыть нужный узел.
Каскадное устаревание
Это важнее, чем кажется. Если однажды сохранённый факт изменился, старые выводы, построенные на нём, нельзя продолжать выдавать как актуальные.
Пример:
Измерение A
↑ derived_from
Вывод B
↑ derived_from
Решение C
Если пересмотреть A, Lite автоматически пометит B и C как stale — «требует повторной проверки». Если явно признать A недостоверным, устареет вся цепочка: A, B и C. История при этом остаётся на месте.
Система не пытается самостоятельно придумать новую истину и не удаляет неудобные результаты. Она честно сообщает агенту: «этот вывод опирался на сведения, которые уже изменились».
Каскад работает по явным связям derived_from. Lite пока не угадывает такие зависимости самостоятельно. Статус current означает «не помечено устаревшим», а не «достоверность доказана».
История изменений
Ноосфера не должна забывать, почему возникло то или иное решение. Новые изменения записываются событиями, а предыдущие состояния остаются в истории. Даже архивация не уничтожает старую запись из зашифрованного журнала — лишь скрывает её из обычной выдачи.
Поэтому память подходит не только для хранения ответов, но и для накопления опыта: наблюдение → вывод → решение → пересмотр.
Хранение: отдельно граф, отдельно события
Внутри Lite четыре слоя:
ИИ-агент
│ MCP-запрос
▼
Поиск и выборка контекста
│
▼
Рабочий граф в оперативной памяти
│
▼
Зашифрованный журнал событий
├─ основная копия
└─ зеркальная копия
В постоянном хранилище используется собственный бинарный журнал NLV1, зашифрованный с AES-256-GCM. В нём последовательно фиксируются события: создание записи, связь, изменение, устаревание, архивация.
Рабочий граф восстанавливается в оперативной памяти. Постоянного открытого JSON-файла с полезными данными или незашифрованного поискового индекса нет.
Это сознательно простой движок: поиск пока лексический, а не векторный. С версии 0.3.0 есть экспериментальный read-only поиск возможных связей между уже сохранёнными заметками; он не подтверждает факты и не создаёт связи автоматически. Эмбеддинги, нейронное извлечение смысла и автоматическое понимание противоречий — направления развития, а не функции версии 0.3.0.
Защита и две копии
Каждое событие аутентифицируется и связывается с предыдущим через хеш. Изменение или повреждение журнала обнаруживается при чтении. Две копии сверяются; если одна повреждена или отстала, её можно восстановить по исправной.
По умолчанию копии должны находиться на разных файловых системах. Ключ шифрования хранится отдельно, с доступом только владельцу. Ключ тоже необходимо безопасно резервировать: потеря всех его экземпляров означает потерю доступа ко всей памяти.
Два зеркала не заменяют независимую внешнюю резервную копию. А если злоумышленник получил доступ к работающей пользовательской сессии и ключу, шифрование диска уже не решает проблему за тебя.
Универсальный интерфейс
Lite работает локально на Linux и не требует облака, GPU или собственной нейросети. Агент получает память через MCP. В комплекте локальный сервер stdio, без открытого HTTP-порта, запуска команд и доступа к произвольным файлам компьютера.
Это память для совместимого агента, а не агент, который тайком управляет системой.
Как это выглядит в работе
Ты сохранил решение о конфигурации сервера и связал его с исходным тестом. Через месяц новый агент возвращается к проекту: находит решение, открывает его источник и связанные заметки, восстанавливает ход мысли.
А если исходный тест за это время оказался неправильным, все выводы, которые явно от него зависели, уже будут помечены для перепроверки.
Смысл не в том, чтобы помнить больше текста. Смысл — не терять причинно-следственные связи между уже проделанными действиями.
Установка на Linux
Нужен Python 3.11 или новее.
git clone https://github.com/Garyu-tt/noosphere-lite-mcp.git
cd noosphere-lite-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Подключи две независимые файловые системы под хранилище и настрой пути:
export NSL_PRIMARY=/mnt/storage-a/noosphere-lite
export NSL_MIRROR=/mnt/storage-b/noosphere-lite
export NSL_KEY_FILE="$HOME/.config/noosphere-lite/key"
python -m noosphere_lite init
python -m noosphere_lite status
python -m noosphere_lite mcp
Каталоги хранилища должны иметь права 0700; ключ и журналы — 0600. Инициализация не перезаписывает существующие журналы.
Только для тестов на одном диске можно указать переменную NSL_DEVELOPMENT_SAME_DEVICE=1. Это отключает проверку независимости копий и не подходит для ценных данных.
Настройка MCP-клиента
Для клиентов, поддерживающих локальный stdio MCP, пример конфигурации:
{
"mcpServers": {
"noosphere-lite": {
"command": "/absolute/path/noosphere-lite-mcp/.venv/bin/python",
"args": ["-m", "noosphere_lite", "mcp"],
"env": {
"NSL_PRIMARY": "/mnt/storage-a/noosphere-lite",
"NSL_MIRROR": "/mnt/storage-b/noosphere-lite",
"NSL_KEY_FILE": "/home/you/.config/noosphere-lite/key"
}
}
}
}
Это пример для совместимых локальных MCP-хостов. Интерфейс ChatGPT может требовать отдельно поддерживаемый мост; конфигурация stdio сама по себе не устанавливает облачный коннектор.
12 инструментов MCP
| Инструмент | Что делает |
|---|---|
| memory_add | Сохраняет заметку, факт, решение или задачу |
| memory_search | Ищет подходящие воспоминания |
| memory_suggest_links | Предлагает непроверенные связи по пересечению значимых терминов и тегов; ничего не записывает |
| memory_read | Возвращает конкретную запись целиком |
| memory_context | Собирает ограниченный контекст для задачи |
| memory_link / memory_unlink | Создаёт и удаляет типизированные связи |
| memory_neighborhood | Обходит соседние узлы |
| memory_revise | Обновляет запись и помечает зависимые выводы как устаревшие |
| memory_invalidate | Запускает каскадное устаревание от выбранной записи |
| memory_archive | Скрывает запись, не стирая историю |
| memory_status | Проверяет журналы и статистику |
Эксперимент: обучаемые веса связей (R04)
В каталоге examples/reviewed_plasticity опубликован отдельный Python-пример весов графа с независимым подтверждением результатов, SHA-256 доказательств, разреженным накоплением полезности и откатом. Это opt-in reference implementation, не функция ядра Lite 0.3.0: оно не изменяет зашифрованные NLV1-журналы и не обучает веса LLM. Для реальной работы нужен доверенный интегратор с аутентификацией агентов и QA; его SQLite-sidecar хранит метаданные без шифрования.
Чего пока нет
В дальнейших версиях хочется добавить автоматическое обнаружение зависимостей, векторный и семантический поиск, уровни значимости памяти, управление давностью и сроками хранения, согласование конфликтующих источников, уплотнение истории, разделение прав между агентами и внешние резервные копии.
В 0.3.0 этого пока нет. Текущий движок рассчитан на один хост и одного пишущего процесса с блокировкой, а не на распределённый кластер. Журнал при запросах перечитывается, поэтому большие базы потребуют отдельной оптимизации. Текущий лимит — 150 000 событий, а не 150 000 узлов.
Проверка
python -m unittest discover -s tests -v
Тесты покрывают шифрование, обнаружение повреждений, восстановление копии, связи и многоуровневое каскадное устаревание. Подключение локального MCP-клиента проверено на синтетических данных.
Noosphere Lite MCP — чтобы новый разговор не означал новое начало.
Garyu-tt · GNU GPLv3 · English documentation
License / Authorship
Original project code in this release: GNU GPL-3.0-or-later. Copyright (C) 2026 Garyu-tt. See LICENSE and AUTHORS.md. Previously published MIT-licensed versions retain their earlier permissions and existing contributors' acknowledgments.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found