Files
wiki/memory/2026-04-10-http-404-channel-not-found.md
2026-04-12 21:55:33 +03:00

14 KiB
Raw Blame History

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

Как ищет:

  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):
{
  "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) — вкл/выкл + температура 3055°C
  • 🚿 Водонагреватель (Termex IF PRO Wi-Fi, IP 192.168.2.184) — вкл/выкл + 1075°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 — 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):

{
  "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 на CPU
  • Memory Wiki — что настроено, known limitation с bridge, workaround

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