179 lines
6.7 KiB
Markdown
179 lines
6.7 KiB
Markdown
---
|
||
pageType: entity
|
||
id: entity.project-wiki-memory
|
||
title: "Wiki & Memory"
|
||
entityType: Project
|
||
status: active
|
||
updatedAt: 2026-04-10T13:48:00.000Z
|
||
sourceIds: [source.memory]
|
||
tags: [project, wiki, memory, qmd, setup]
|
||
---
|
||
|
||
# Wiki & Memory
|
||
|
||
<!-- openclaw:wiki:managed:start -->
|
||
## Ключевые факты
|
||
- **Дата настройки:** 10 апреля 2026
|
||
- **Статус:** active
|
||
- **Папка:** `tasks/wiki-memory/`
|
||
|
||
## Описание
|
||
Комплексная настройка системы памяти OpenClaw: замена встроенного SQLite на QMD sidecar + инициализация Memory Wiki vault с entities/concepts для всех проектов и скиллов.
|
||
|
||
---
|
||
|
||
## Архитектура системы памяти
|
||
|
||
### Схема работы
|
||
|
||
```
|
||
Файлы workspace/ QMD sidecar (Gemma-300M) Агент
|
||
─────────────────── ──────────────────────── ──────
|
||
MEMORY.md memory-root-main (159 docs) memory_search
|
||
memory/YYYY-MM-DD.md → memory-dir-main (33 docs) → BM25 + vector
|
||
tasks/**/*.md tasks-main (104 docs) reranking
|
||
skills/**/*.md skills-main (10 docs) ↓
|
||
agents/main/sessions/ sessions-main (111 docs) релевантные чанки
|
||
```
|
||
|
||
```
|
||
Wiki vault Агент (каждый запрос)
|
||
───────────────────── ──────────────────────
|
||
sources/ (ingest файлов) includeCompiledDigestPrompt: true
|
||
entities/ (проекты, люди) → → → agent-digest.json → системный промпт
|
||
concepts/ (скиллы, правила) wiki_search / wiki_get (по запросу)
|
||
syntheses/
|
||
reports/ (lint, health)
|
||
```
|
||
|
||
### Два независимых слоя памяти
|
||
|
||
| Слой | Инструмент | Для чего |
|
||
|------|-----------|----------|
|
||
| **QMD** | `memory_search` | Полнотекстовый + семантический поиск по всем файлам |
|
||
| **Wiki** | `wiki_search`, digest в промпте | Структурированные знания: entities, concepts |
|
||
|
||
---
|
||
|
||
## QMD Backend
|
||
|
||
### Конфигурация (openclaw.json, корневой ключ `memory`)
|
||
```json
|
||
{
|
||
"memory": {
|
||
"backend": "qmd",
|
||
"qmd": {
|
||
"command": "/home/node/.local/bin/qmd",
|
||
"paths": [
|
||
{ "name": "tasks", "path": "~/.openclaw/workspace/tasks", "pattern": "**/*.md" },
|
||
{ "name": "skills", "path": "~/.openclaw/workspace/skills", "pattern": "**/*.md" }
|
||
],
|
||
"sessions": { "enabled": true }
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### Коллекции (main агент)
|
||
| Коллекция | Документов |
|
||
|---|---|
|
||
| memory-root-main (workspace/) | 159 |
|
||
| sessions-main (транскрипты) | 111 |
|
||
| tasks-main (workspace/tasks/) | 104 |
|
||
| memory-dir-main (workspace/memory/) | 33 |
|
||
| skills-main (workspace/skills/) | 10 |
|
||
| **Итого** | **417 документов** |
|
||
|
||
### Эмбеддинги
|
||
- Модель: `embeddinggemma-300M-Q8_0.gguf` (~328MB)
|
||
- Только CPU → индексация ~30-60 мин на 400+ чанков
|
||
- После завершения: Vector: ready автоматически
|
||
- Все агенты (main, dev, legal, feda): Vector ready ✅
|
||
|
||
### Известная проблема: memory-alt-main
|
||
QMD создаёт `memory-root-main` с `**/*.md`, OpenClaw ищет `memory-alt-main`.
|
||
|
||
**Фикс:**
|
||
```yaml
|
||
# ~/.openclaw/agents/main/qmd/xdg-config/qmd/index.yml
|
||
memory-alt-main:
|
||
path: /home/node/.openclaw/workspace
|
||
pattern: "memory.md"
|
||
```
|
||
Затем: `rm ~/.openclaw/agents/main/qmd/xdg-cache/qmd/index.sqlite* && openclaw memory index --force`
|
||
|
||
---
|
||
|
||
## Memory Wiki
|
||
|
||
### Конфигурация (openclaw.json)
|
||
```json
|
||
// plugins.entries.memory-wiki.config:
|
||
{
|
||
"bridge": { "enabled": true, "readMemoryArtifacts": true, ... },
|
||
"context": { "includeCompiledDigestPrompt": true }
|
||
}
|
||
|
||
// agents.list[main].tools.allow:
|
||
["wiki_status", "wiki_search", "wiki_get", "wiki_apply", "wiki_lint"]
|
||
```
|
||
|
||
### Bridge mode — не работает (known limitation)
|
||
OpenClaw использует jiti vm-контексты для изоляции плагинов. memory-core и memory-wiki
|
||
загружаются в разных контекстах → `memoryPluginState` разные объекты → capability не видна.
|
||
|
||
`openclaw wiki bridge import` всегда возвращает 0 артефактов. Это архитектурная проблема
|
||
версии 2026.4.9, не баг конфига. Workaround: ручной ingest.
|
||
|
||
### Как пополнять wiki (рабочий процесс)
|
||
```bash
|
||
# 1. Добавить источник
|
||
openclaw wiki ingest ~/.openclaw/workspace/MEMORY.md
|
||
openclaw wiki ingest ~/.openclaw/workspace/tasks/*/PROJECT.md
|
||
|
||
# 2. Создать entity/concept страницу (wiki_apply или вручную в vault)
|
||
# Файл: ~/.openclaw/wiki/main/entities/project-xxx.md
|
||
|
||
# 3. Скомпилировать и проверить
|
||
openclaw wiki compile
|
||
openclaw wiki lint
|
||
```
|
||
|
||
### Текущий vault (10.04.2026)
|
||
- **Vault:** `/home/node/.openclaw/wiki/main`
|
||
- **Режим:** bridge (формально), фактически manual ingest
|
||
- **Страниц:** 27 (9 entities, 5 concepts, 7 sources, 6 reports)
|
||
- **Lint:** 0 issues ✅
|
||
|
||
### Entities (проекты)
|
||
- Snowbike RAG, Telegram Collector, Карта шумового загрязнения FR24
|
||
- Интернет-заказы, Home Assistant, Proxy VM, Tapo Camera Monitor
|
||
- Apps Portal, Видеокружочки
|
||
|
||
### Concepts (скиллы)
|
||
- voice-tts, telegram-collector, ontology, diagram-png/table, youtube/yandex-search
|
||
|
||
---
|
||
|
||
## Задачи
|
||
|
||
### ✅ Первичная настройка (done, 10.04.2026)
|
||
- Установка QMD, настройка коллекций, эмбеддинги
|
||
- Инициализация wiki vault, добавление wiki_* инструментов
|
||
- Ingest ключевых файлов (MEMORY.md, PROJECT.md × 6, SKILL.md × 9)
|
||
- Создание 9 entities + 5 concepts
|
||
- Синхронизация с онтологией
|
||
|
||
### Открытые вопросы
|
||
- Bridge mode: ждём фикса в OpenClaw (jiti-изоляция плагинов)
|
||
- Wiki не обновляется автоматически — нужен ручной `ingest + compile` при изменениях
|
||
- Dreaming отключён (можно включить для ночной синтез-генерации)
|
||
<!-- openclaw:wiki:managed:end -->
|
||
|
||
## Related
|
||
<!-- openclaw:wiki:related:start -->
|
||
### Sources
|
||
|
||
- [MEMORY](sources/memory.md)
|
||
<!-- openclaw:wiki:related:end -->
|