# Session: 2026-04-10 12:59:02 UTC

- **Session Key**: agent:main:telegram:slash:126472752
- **Session ID**: 21de1f37-d139-4b3e-aa81-c3a36a5c1687
- **Source**: webchat

## Conversation Summary

assistant: Отлично. Всё три уровня работают:

- **Test 1** — находит sessions (правила Dev): ✅
- **Test 2** — находит tasks/backlog-noisemap.md с оценкой 0.92: ✅  
- **Test 3** — находит tasks/internet-orders/project.md с оценкой **0.96**: ✅

Теперь настоящий тест — через агентский инструмент прямо в этой сессии:
assistant: Работает через агентский инструмент тоже — Provider: qmd, оценки 0.93-0.96, источники из трёх разных мест (tasks/, memory.md, sessions). 

**QMD полностью функционирует.** Система готова к работе 🌊
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}
```

[Fri 2026-04-10 12:24 UTC] опиши как теперь это работает
assistant: ## Как работает память сейчас

### Общая архитектура

```
Ты пишешь сообщение
         ↓
    Я получаю контекст
         ↓
┌────────────────────────────────┐
│   СЛОЙ 1: Активная память      │  ← загружается автоматически
│   MEMORY.md + вчера/сегодня   │
└────────────────────────────────┘
         ↓
┌────────────────────────────────┐
│   СЛОЙ 2: QMD поиск           │  ← по запросу через memory_search
│   BM25 + Gemma-300M vectors   │
└────────────────────────────────┘
         ↓
┌────────────────────────────────┐
│   СЛОЙ 3: Wiki                 │  ← по запросу через wiki_search
│   entities, concepts, sources  │
└────────────────────────────────┘
```

---

### Слой 1 — Что я знаю всегда

При каждой сессии автоматически загружается:

- **MEMORY.md** — долгосрочная память (~11KB): правила, люди, проекты, модели, скиллы
- **memory/2026-04-10.md** и **memory/2026-04-09.md** — два последних дневника

Это то что я знаю без поиска. Текущая сессия, твои предпочтения, активные проекты.

---

### Слой 2 — QMD поиск

Когда мне нужно что-то конкретное — я вызываю `memory_search`. Движок: **QMD v2.1.0** с локальной GGUF-моделью Gemma 300M.

**Что проиндексировано (417 документов, 448 векторов):**

| Коллекция | Что внутри | Документов |
|---|---|---|
| `memory-root-main` | MEMORY.md + все .md в workspace | 159 |
| `sessions-main` | Транскрипты всех наших разговоров | 111 |
| `tasks-main` | tasks/ — проекты, ТЗ, бэклоги | 104 |
| `memory-dir-main` | memory/ — 34 дневных заметки | 33 |
| `skills-main` | workspace/skills/ | 10 |

**Как ищет:**
1. BM25 — точное совпадение ключевых слов
2. Векторный поиск — семантическое сходство (Gemma-300M)
3. Reranking — объединяет и ранжирует финальный список

Это значит что если ты спросишь про "нойзмап" — найдёт и `noisemap`, и `карта шума`, и `FR24`, потому что они семантически близки.

**Главная фишка:** sessions индексированы. Я могу найти что мы обсуждали месяц назад, даже если это не попало в MEMORY.md.

---

### Слой 3 — Wiki

Пока почти пустой (6 источников, 0 структурированных страниц). Инструменты `wiki_search`, `wiki_get`, `wiki_apply`, `wiki_lint` подключены. Готов к наполнению — это следующий шаг.

Когда наполним — `memory_search corpus=all` будет искать сразу везде: QMD + wiki.

---

### Жизненный цикл информации

```
Разговор
  → автосохранение в sessions/ (QMD индексирует за 5 мин)
  → важное → я пишу в memory/YYYY-MM-DD.md
  → ключевое → в MEMORY.md (вручную или через dreaming)
  → структурированное → в wiki через wiki_apply
```

---

### Что изменилось сегодня vs вчера

| | До | После |
|---|---|---|
| Движок | SQLite builtin | QMD sidecar |
| Поиск | BM25 + vector | BM25 + vector + reranking |
| Сессии | ❌ | ✅ проиндексированы |
| tasks/ | ❌ | ✅ проиндексированы |
| skills/ | ❌ | ✅ проиндексированы |
| Wiki tools | ❌ | ✅ подключены |
| Wiki digest | ❌ | ✅ в промптах |
| Векторная модель | OpenAI API | Gemma 300M (локально) |
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}
```

[Fri 2026-04-10 12:38 UTC] что мы настраивали в ha?
assistant: [[reply_to_current]] Вот что настраивали в HA:

## Home Assistant — что сделали

**Инфраструктура:**
- HA на Proxmox VM дома, внешний URL: `ha.homenet542.keenetic.pro`
- Роутер Keenetic, Zigbee2MQTT с Sonoff донглом

**LocalTuya — подключили 3 устройства:**

- 🔥 **Котёл** (Termex GRIZZLY, IP 192.168.2.82) — вкл/выкл + температура 30–55°C
- 🚿 **Водонагреватель** (Termex IF PRO Wi-Fi, IP 192.168.2.184) — вкл/выкл + 10–75°C
- 🌬️ **CO2 датчик** (Гостиная, IP 192.168.2.89) — показания в ppm

**Проблемы которые решали:**

- CO2 датчик не видел LocalTuya → причина: изоляция клиентов в сегменте Homenet_iot → решение: отключить "Изолировать клиентов от проводной сети" в Keenetic
- Котёл/водонагреватель не включались → не был настроен параметр HVAC Mode Set → решение: выставить True/False в редакторе LocalTuya
- Локальные IP устройств — брали из роутера Keenetic по MAC (Tuya API отдаёт только внешние)

**Автоматизации котла:** включение в 04:50, отключение в 18:20, ночной нагрев, управление температурой

**Статус на 03.04.2026:** API работает, все три устройства в LocalTuya ✅
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}
```

[Fri 2026-04-10 12:41 UTC] как участвует онтология при работе с памятью?
assistant: Картина полная. Отвечаю:

---

## Онтология в системе памяти

**Коротко:** онтология — это отдельный слой, параллельный QMD и wiki. Она не заменяет и не дублирует их, а решает специфическую задачу — **граф проектов и задач со связями**.

### Где живёт

```
memory/ontology/
├── graph.jsonl    ← 76 записей: сущности + связи
├── schema.yaml    ← схема типов
└── RULES.md       ← правила (обязательны для всех агентов)
```

Управляется через `skills/ontology/scripts/ontology.py`.

### Что там сейчас

Проекты в графе:
- `proj_snowbike_rag` — active
- `proj_noisemap` — paused (FR24 кредиты кончились)
- `proj_telegram_collector` — active
- ...и другие

Плюс задачи, связи между ними, assignee.

### Как взаимодействует с памятью

```
QMD (поиск)          Онтология (граф)       Wiki (страницы)
──────────────       ────────────────       ───────────────
"что обсуждали"  →   "что делается"    →    "что знаем"
семантика            структура              синтез
полнотекстовый       точные связи           entities/concepts
поиск по всему       projects+tasks         провенанс
```

**Они не заменяют друг друга:**
- `memory_search "snowbike"` → найдёт чанки из всех разговоров и файлов
- `ontology query --type Project` → покажет статус, assignee, folder, даты — структурированно
- `wiki_search "snowbike"` → (пока пусто, но будет) структурированная entity-страница

### Правила (жёсткие)

По RULES.md:
- **Только я пишу** в онтологию (Dev/Legal/Feda — только читают)
- **Любое изменение — с твоего ОК**
- Онтология = единственный источник истины о проектах/задачах
- MEMORY.md содержит только **ссылки** на онтологию, не дубли

### Практически

Когда ты говоришь "начнём новый проект" — я должна сначала создать его в онтологии (с твоего ОК), и только потом работать. Не просто в MEMORY.md записать, а именно в граф — со связями, статусом, folder.

Сейчас это работает в ручном режиме. Когда wiki наполним entity-страницами — онтология и wiki будут связаны: entity в wiki будет ссылаться на `proj_xxx` из графа 🌊
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}
```

[Fri 2026-04-10 12:49 UTC] куда ты сохранишь информацию по работе с памятью, те все то что мы сделали?
assistant: Дневник за сегодня ещё пуст — ничего не записано. Вот куда и что пойдёт:

---

### 1. `memory/2026-04-10.md` — дневная запись (сырой лог)

Туда идёт хронология сегодняшнего дня:
- Аудит wiki memory (bridge mode, диагноз с jiti-изоляцией)
- Установка QMD: конфиг, конфликт коллекций, фикс
- Итоговый статус системы памяти

Это **сырые события** — что делали, что сломалось, как починили.

### 2. `MEMORY.md` — долгосрочная память (дистилляция)

Туда идут **выводы и правила**, которые должны пережить время:
- QMD конфиг (путь к бинарнику, коллекции)
- Известная проблема с bridge mode (jiti-изоляция) + workaround
- Конфликт `memory-root-main`/`memory-alt-main` — как чинить
- Wiki tools добавлены в allowed tools

### 3. Wiki — пока не трогаем (пуст)

Когда наполним — сюда пойдёт `concept.memory-architecture` с описанием всей системы. Но сначала нужно создать хоть одну entity/concept.

---

Записать прямо сейчас? Давай сделаю оба файла сразу — и дневник, и обновлю MEMORY.md.
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}
```

[Fri 2026-04-10 12:54 UTC] дневника точно нет?
assistant: [[reply_to_current]] Есть! Только не `2026-04-10.md`, а `2026-04-10-http-404-channel-not-found.md` — это дневник из другой сессии (про Шереметьево + Chromium, около 08:17 UTC).

Нашего сегодняшнего дня (wiki memory + QMD) там нет — эта сессия шла параллельно по webchat и в этот файл не попала.

Нужно создать основной дневник за сегодня и записать туда всё что сделали. Сделать?
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-control-ui",
  "id": "openclaw-control-ui"
}
```

[Fri 2026-04-10 12:57 UTC] да
assistant: Теперь обновляю MEMORY.md — добавляю ключевые выводы в раздел про конфигурацию и QMD:
assistant: Готово. Записала в два места:

**`memory/2026-04-10.md`** — полный дневник: хронология, диагноз bridge mode, конфиг QMD, проблема с коллекциями и фикс, финальные статусы всех агентов, тест поиска.

**`MEMORY.md`** — добавила два новых раздела в "Конфигурация":
- `Memory backend: QMD` — где хранится конфиг, известная проблема с index.yml и как чинить, особенность медленного embed на CPU
- `Memory Wiki` — что настроено, known limitation с bridge, workaround

Теперь если завтра начну новую сессию — всё это будет в контексте 🌊
