# 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 Теперь если завтра начну новую сессию — всё это будет в контексте 🌊