Files
2026-09-06 13:51:01 +00:00

62 lines
3.0 KiB
Markdown

---
name: memory-os-pipeline
title: "Memory OS Pipeline"
description: "Управление pipeline Memory OS: Obsidian vault → синхронизация → ингест в Qdrant → поиск. Критически важно: НЕ ТРОГАТЬ /opt/hermes/obsidian-vault/."
---
## Критические правила
- **ЗАПРЕЩЕНО** удалять, изменять, перемещать, перезаписывать файлы в `/opt/hermes/obsidian-vault/`. Только чтение.
- **ЗАПРЕЩЕНО** удалять любые файлы пользователя без явного подтверждения.
- Если vault пуст, не удалять wiki — это означает, что отвалилось монтирование (Yandex.Disk WebDAV или S3). Скрипт `sync_obsidian_to_wiki.py` защищён: если vault пуст, но state не пуст — удаление из wiki блокируется.
## Управление cron-задачами (важно)
- Когда пользователь говорит "stop reminder", "отключи задачу" — он хочет **отключить уведомления**, а не удалить задачу.
- **Решать:** обновить `deliver: local` (тихий режим). Не удалять cronjob.
- Для no_agent скриптов сразу ставить `deliver: local` — они не должны слать уведомления каждые 5 минут.
## Архитектура
```
Obsidian vault (/opt/hermes/obsidian-vault/) ← READ-ONLY, НЕ ТРОГАТЬ
↓ sync_obsidian_to_wiki.py (копирование → wiki/raw/obsidian/)
Wiki (/opt/hermes/vault/wiki/raw/obsidian/)
↓ ARQ queue → worker (chunk + embed)
Qdrant (localhost:6333, collection: knowledge_base)
↓ dense: nomic-embed-text (768d, Cosine)
↓ sparse: BM25
Search API (localhost:8000, POST /search, GET /health)
```
## Стек
- Worker: Docker, docker-worker-1 (healthy)
- Redis: Docker, docker-redis-1 (healthy)
- Qdrant: Docker, docker-qdrant-1 (healthy)
- Search API: Docker, docker-search-api-1 (healthy)
- Ollama: Docker, localhost:11434
- Yandex.Disk: WebDAV на /mnt/yandex-disk
## Пути
- Репозиторий: `/opt/hermes/memory-os/`
- Docker compose: `/opt/hermes/memory-os/docker/docker-compose.yml`
- .env: `/opt/hermes/memory-os/docker/.env`
- Скрипты: `/opt/hermes/memory-os/scripts/`
- Search API: `/opt/hermes/memory-os/search_api/main.py`
- Obsidian vault (READ-ONLY): `/opt/hermes/obsidian-vault/`
- Wiki target: `/opt/hermes/vault/wiki/raw/obsidian/`
- State: `~/.hermes/obsidian_sync_state.json`
## Cron-задачи
- memory-os obsidian sync + ingest — каждые 10 мин (LLM agent)
- memory-os micro-reflection trigger — каждые 5 мин (no_agent, тихо, deliver: local)
## Переменные окружения (worker)
- OLLAMA_BASE_URL=http://ollama:11434
- OLLAMA_MODEL=qwen3-8b-64k
- EMBEDDING_API_BASE=http://ollama:11434/v1
- REDIS_HOST=redis, REDIS_PORT=6379