14 KiB
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):
{
"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 |
Как ищет:
- BM25 — точное совпадение ключевых слов
- Векторный поиск — семантическое сходство (Gemma-300M)
- 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): |
{
"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):
{
"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— activeproj_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):
{
"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):
{
"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):
{
"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 на CPUMemory Wiki— что настроено, known limitation с bridge, workaround
Теперь если завтра начну новую сессию — всё это будет в контексте 🌊