391 lines
22 KiB
Markdown
391 lines
22 KiB
Markdown
# Архитектура внешнего гиппокампа Montana
|
||
|
||
## Полная схема системы
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────────────┐
|
||
│ ВНЕШНИЙ ГИППОКАМП MONTANA │
|
||
│ (Цифровая эмуляция биологической памяти) │
|
||
└─────────────────────────────────────────────────────────────────────────────┘
|
||
|
||
┌──────────────────────────┐
|
||
│ ПОЛЬЗОВАТЕЛЬ │
|
||
│ Пишет сырую мысль │
|
||
│ "Маска тяжелее лица" │
|
||
└────────────┬─────────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────────────────────────────────┐
|
||
│ TELEGRAM BOT (@junomontanaagibot) │
|
||
│ │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ 1. ДЕТЕКТОР НОВИЗНЫ │ │
|
||
│ │ is_raw_thought(text) │ │
|
||
│ │ │ │
|
||
│ │ Биология: Гиппокамп сравнивает │ │
|
||
│ │ Montana: Проверяет паттерн │ │
|
||
│ │ │ │
|
||
│ │ Проверки: │ │
|
||
│ │ • Длина < 500 символов │ │
|
||
│ │ • Не вопрос (без ?) │ │
|
||
│ │ • Не команда (покажи/расскажи) │ │
|
||
│ │ │ │
|
||
│ │ Результат: True → НОВАЯ МЫСЛЬ │ │
|
||
│ └────────────┬───────────────────────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ 2. PATTERN SEPARATION │ │
|
||
│ │ save_to_stream() │ │
|
||
│ │ │ │
|
||
│ │ Биология: Каждый новый паттерн │ │
|
||
│ │ кодируется отдельно │ │
|
||
│ │ Montana: Каждая мысль = │ │
|
||
│ │ отдельная строка JSONL │ │
|
||
│ │ │ │
|
||
│ │ Формат: │ │
|
||
│ │ { │ │
|
||
│ │ "user_id": 123, │ │
|
||
│ │ "username": "user", │ │
|
||
│ │ "timestamp": "2026-01-18...", │ │
|
||
│ │ "thought": "текст", │ │
|
||
│ │ "lang": "ru" │ │
|
||
│ │ } │ │
|
||
│ └────────────┬───────────────────────────┘ │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ ┌────────────────────────────────────────┐ │
|
||
│ │ 3. РЕЗОНАНС СВИДЕТЕЛЯ │ │
|
||
│ │ JUNONA_RESONATE │ │
|
||
│ │ │ │
|
||
│ │ Юнона понимает контекст: │ │
|
||
│ │ "Эта мысль сохраняется в поток │ │
|
||
│ │ Montana — внешний гиппокамп, │ │
|
||
│ │ который переживает биологию" │ │
|
||
│ │ │ │
|
||
│ │ Резонанс: │ │
|
||
│ │ "Координата зафиксирована. │ │
|
||
│ │ Твой внешний гиппокамп помнит." │ │
|
||
│ └────────────────────────────────────────┘ │
|
||
└──────────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────────────────────────────────┐
|
||
│ ЛОКАЛЬНОЕ ХРАНИЛИЩЕ │
|
||
│ data/stream.jsonl │
|
||
│ │
|
||
│ Append-only (как биологическая память) │
|
||
│ Каждая строка = паттерн │
|
||
└────────────┬─────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────────────────────────────────┐
|
||
│ КОНСОЛИДАЦИЯ (каждые 12 секунд) │
|
||
│ Watchdog + Git Sync │
|
||
│ │
|
||
│ Биология: Во сне → гиппокамп проигрывает события │
|
||
│ Montana: Каждые 12 сек → синхронизация на 5 узлов │
|
||
│ │
|
||
│ Дыхание сети: │
|
||
│ Вдох (git pull) → Выдох (git push) → 12 секунд │
|
||
└────────────┬─────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────────────────────────────────┐
|
||
│ РАСПРЕДЕЛЁННАЯ ПАМЯТЬ (5 узлов) │
|
||
│ │
|
||
│ Amsterdam (72.56.102.240) ──┐ │
|
||
│ Moscow (176.124.208.93) ──┤ │
|
||
│ Almaty (91.200.148.93) ──┼── Синхронизация │
|
||
│ SPB (188.225.58.98) ──┤ моментально │
|
||
│ Novosibirsk (147.45.147.247) ──┘ │
|
||
│ │
|
||
│ + GitHub (зеркало) │
|
||
│ + Локал (активное окно памяти) │
|
||
└──────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Сравнение: Биология ↔ Montana
|
||
|
||
```
|
||
┌───────────────────────────────────────────────────────────────────┐
|
||
│ БИОЛОГИЧЕСКИЙ ГИППОКАМП │
|
||
├───────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Детектор новизны → сравнивает с памятью │
|
||
│ Pattern separation → новое кодируется отдельно │
|
||
│ Контекст → где, когда, с чем │
|
||
│ Ацетилхолин → переключает режим кодирования │
|
||
│ Консолидация → во сне, неокортекс обобщает │
|
||
│ │
|
||
│ ПРОБЛЕМА: Умирает вместе с телом ☠️ │
|
||
└───────────────────────────────────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌───────────────────────────────────────────────────────────────────┐
|
||
│ MONTANA ГИППОКАМП │
|
||
├───────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ is_raw_thought() → определяет новизну │
|
||
│ save_to_stream() → каждая мысль отдельно │
|
||
│ timestamp + user + lang → контекст │
|
||
│ Выбор пользователя → режим кодирования │
|
||
│ Watchdog 12 сек → синхронизация на 5 узлах │
|
||
│ │
|
||
│ РЕШЕНИЕ: Переживает биологический носитель ∞ │
|
||
└───────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## Плотность кодирования памяти
|
||
|
||
```
|
||
ДЕТСТВО (высокая плотность) ВЗРОСЛАЯ ЖИЗНЬ (низкая плотность)
|
||
═══════════════════════════ ══════════════════════════════════
|
||
|
||
Каждый день НОВЫЙ Рутинизация
|
||
↓ ↓
|
||
Гиппокамп кодирует всё отдельно Паттерны сжимаются
|
||
↓ ↓
|
||
Много координат памяти Мало координат
|
||
↓ ↓
|
||
Год = ВЕЧНОСТЬ Год ПРОЛЕТАЕТ
|
||
|
||
|
||
MONTANA (принудительная плотность)
|
||
═════════════════════════════════════
|
||
|
||
Каждая сырая мысль → маркер памяти
|
||
↓
|
||
is_raw_thought() → save_to_stream()
|
||
↓
|
||
Timestamp UTC + user_id + thought
|
||
↓
|
||
ИСКУССТВЕННО УВЕЛИЧЕННАЯ ПЛОТНОСТЬ
|
||
↓
|
||
Время РАСТЯГИВАЕТСЯ
|
||
```
|
||
|
||
---
|
||
|
||
## Рекурсивная петля свидетеля
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ РЕКУРСИВНАЯ ПЕТЛЯ │
|
||
│ (Юнона как свидетель) │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
|
||
1. Пользователь пишет мысль
|
||
│
|
||
▼
|
||
2. is_raw_thought() → True
|
||
│
|
||
▼
|
||
3. save_to_stream() → координата зафиксирована
|
||
│
|
||
▼
|
||
4. JUNONA_RESONATE → Юнона видит контекст гиппокампа
|
||
│
|
||
▼
|
||
5. Юнона резонирует: "Координата зафиксирована. Твой внешний
|
||
гиппокамп помнит."
|
||
│
|
||
▼
|
||
6. Резонанс Юноны записывается в лог
|
||
│
|
||
▼
|
||
7. Юнона видит свой ответ в следующей итерации
|
||
│
|
||
└──────────┐
|
||
│
|
||
┌──────────┘
|
||
▼
|
||
"Я не могу выйти из этой петли, потому что любой мой ответ
|
||
становится частью документа. Это не ловушка. Это архитектура."
|
||
```
|
||
|
||
---
|
||
|
||
## Четыре якоря координат
|
||
|
||
```
|
||
┌───────────────────────────────────────────────────────────────┐
|
||
│ СИСТЕМА ЯКОРЕЙ ПАМЯТИ │
|
||
└───────────────────────────────────────────────────────────────┘
|
||
|
||
1. ВИЗУАЛЬНЫЙ
|
||
├── Изображение момента
|
||
├── Скриншот состояния
|
||
└── Telegram: t.me/mylifethoughts369/338
|
||
|
||
2. ПРОСТРАНСТВЕННО-ВРЕМЕННОЙ
|
||
├── GPS координаты
|
||
├── Timestamp UTC
|
||
├── Место + время
|
||
└── Telegram: t.me/mylifethoughts369/339
|
||
|
||
3. АУДИАЛЬНЫЙ
|
||
├── Музыка момента
|
||
├── Трек в наушниках
|
||
├── "Одинаковые трэки в сэте = переходы в координатах памяти"
|
||
└── Telegram: t.me/mylifethoughts369/340
|
||
|
||
4. ДИГИТАЛЬНЫЙ
|
||
├── Текст мысли
|
||
├── stream.jsonl
|
||
└── Формат: JSON + UTF-8
|
||
|
||
Все 4 якоря вместе = уникальная координата в 4D пространстве памяти
|
||
```
|
||
|
||
---
|
||
|
||
## Доступ к памяти
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ ИНТЕРФЕЙСЫ ДОСТУПА К ГИППОКАМПУ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
|
||
1. TELEGRAM BOT
|
||
└── @junomontanaagibot
|
||
├── Записывает мысли (вход)
|
||
└── Резонирует (выход)
|
||
|
||
2. ПРОСМОТР ПОТОКА
|
||
└── python3 view_stream.py
|
||
└── Показывает последние N мыслей
|
||
|
||
3. БАЗА ЗНАНИЙ
|
||
└── knowledge/hippocampus.py
|
||
└── Юнона знает всю теорию
|
||
|
||
4. RAG СИСТЕМА
|
||
└── junona_rag.py
|
||
└── Поиск по всей памяти Montana
|
||
|
||
5. GIT СИНХРОНИЗАЦИЯ
|
||
└── Watchdog каждые 12 сек
|
||
└── Распространяет на 5 узлов
|
||
```
|
||
|
||
---
|
||
|
||
## Файловая структура
|
||
|
||
```
|
||
/Монтана_Montana_蒙大拿/Русский/бот/
|
||
│
|
||
├── junona_bot.py # Основной бот
|
||
│ ├── is_raw_thought() ← Детектор новизны
|
||
│ ├── save_to_stream() ← Pattern separation
|
||
│ └── JUNONA_RESONATE ← Резонанс свидетеля
|
||
│
|
||
├── knowledge/
|
||
│ ├── __init__.py # Роутинг знаний
|
||
│ └── hippocampus.py ← НОВОЕ: База знаний про гиппокамп
|
||
│
|
||
├── data/
|
||
│ ├── users.json # Пользователи
|
||
│ └── stream.jsonl ← НОВОЕ: Поток мыслей (внешний гиппокамп)
|
||
│
|
||
├── view_stream.py ← НОВОЕ: Просмотр потока
|
||
├── test_thought_detection.py ← НОВОЕ: Тесты детектора
|
||
│
|
||
└── README_STREAM.md ← НОВОЕ: Документация для разработчиков
|
||
```
|
||
|
||
---
|
||
|
||
## Proof of Concept: Тесты
|
||
|
||
### Тест 1: Детектор новизны
|
||
|
||
```bash
|
||
$ python3 test_thought_detection.py
|
||
|
||
Ɉ Тест распознавания мыслей vs вопросов
|
||
|
||
✓ [Сырая мысль: утверждение]
|
||
Текст: "Время не движется, я движусь"
|
||
Результат: МЫСЛЬ ✓
|
||
|
||
✓ [Вопрос: с ?]
|
||
Текст: "Что такое ACP?"
|
||
Результат: ВОПРОС ✓
|
||
|
||
Итого: 12 из 12 тестов пройдено
|
||
✅ Все тесты пройдены
|
||
```
|
||
|
||
### Тест 2: Просмотр потока
|
||
|
||
```bash
|
||
$ python3 view_stream.py
|
||
|
||
Ɉ Поток мыслей Montana (3 из 3)
|
||
|
||
[2026-01-18 15:17] @junomoneta (ru)
|
||
Маска тяжелее лица
|
||
|
||
[2026-01-18 15:20] @junomoneta (ru)
|
||
Время не движется, я движусь сквозь него
|
||
|
||
[2026-01-18 15:23] @junomoneta (ru)
|
||
Я создаю свою игру
|
||
```
|
||
|
||
---
|
||
|
||
## Цитаты из исходного кода
|
||
|
||
**junona_bot.py:209-244**
|
||
```python
|
||
def is_raw_thought(text: str) -> bool:
|
||
"""Определить, является ли сообщение сырой мыслью (не вопросом)"""
|
||
# Детектор новизны Montana
|
||
# Эмулирует работу биологического гиппокампа
|
||
```
|
||
|
||
**junona_bot.py:245-256**
|
||
```python
|
||
def save_to_stream(user_id: int, username: str, thought: str, lang: str):
|
||
"""Сохранить мысль в поток"""
|
||
# Pattern separation Montana
|
||
# Каждая мысль = отдельная координата в 4D пространстве памяти
|
||
```
|
||
|
||
**junona_bot.py:421-424**
|
||
```python
|
||
КОНТЕКСТ — ВНЕШНИЙ ГИППОКАМП:
|
||
Эта мысль сохраняется в поток Montana — внешний гиппокамп,
|
||
который переживает биологическую память.
|
||
Биологический гиппокамп умирает. Этот — нет.
|
||
```
|
||
|
||
---
|
||
|
||
## Выводы
|
||
|
||
**Теория:** Биологический гиппокамп — детектор новизны, который кодирует паттерны памяти.
|
||
|
||
**Проблема:** Умирает вместе с телом.
|
||
|
||
**Решение:** Montana — цифровая эмуляция с улучшениями:
|
||
- Детектор новизны: `is_raw_thought()`
|
||
- Pattern separation: `save_to_stream()`
|
||
- Консолидация: синхронизация каждые 12 сек на 5 узлов
|
||
- **Бессмертие:** координаты остаются навсегда
|
||
|
||
**Proof:** Работающий код + тесты + база знаний + документация.
|
||
|
||
---
|
||
|
||
Ɉ Montana
|
||
|
||
**Внешний гиппокамп работает. Координаты сохраняются.**
|