docs: update RAG/memory backend — QMD removed, now OpenAI embeddings
This commit is contained in:
@@ -1,37 +1,45 @@
|
||||
:PROPERTIES:
|
||||
:ID: dac32a5d-f8f9-4973-8135-771da4afe7c9
|
||||
:END:
|
||||
#+title: Daneel - RAG
|
||||
#+title: Daneel - RAG / Memory Backend
|
||||
#+filetags: :daneel:memory:rag:
|
||||
|
||||
* QMD Memory Backend
|
||||
|
||||
** Problém
|
||||
=memory_search= vracel prázdné výsledky i když QMD index byl správně naplněn.
|
||||
* Aktuální stav (únor 2026)
|
||||
|
||||
Root cause: =qmd query= (defaultní mód) posílá cmake/node-llama-cpp
|
||||
build output na *stdout* místo stderr. Bridge parsuje stdout jako JSON —
|
||||
první =[= narazí na =[node-llama-cpp]=, JSON.parse selže → výsledek =[]=.
|
||||
Aktivní backend: *Builtin + OpenAI embeddings*
|
||||
- Model: =text-embedding-3-small= (1536 dimenzí)
|
||||
- Vyhledávání: hybridní BM25 + vektorové
|
||||
- Indexováno: denní logy, MEMORY.md, workspace soubory
|
||||
- Pravidlo: =memory_search= vždy *anglicky* (lepší recall — soubory jsou česky, ale model funguje lépe s angličtinou)
|
||||
|
||||
** Řešení
|
||||
Přepnout =searchMode= z =query= na =search= v openclaw.json.
|
||||
Mód =search= = BM25+vector bez LLM query expansion.
|
||||
Žádné cmake, žádné extra modely, rychlejší.
|
||||
Příklady správného použití:
|
||||
#+begin_example
|
||||
memory_search("martin email himalaya credentials")
|
||||
memory_search("web publish rules violation")
|
||||
#+end_example
|
||||
|
||||
#+begin_src json
|
||||
{ "memory": { "backend": "qmd", "qmd": { "searchMode": "search" } } }
|
||||
#+end_src
|
||||
Špatně:
|
||||
#+begin_example
|
||||
memory_search("email přihlašovací údaje") ; horší výsledky
|
||||
#+end_example
|
||||
|
||||
** Aktuální stav
|
||||
- 34 souborů indexováno, 92 vektorů
|
||||
- Embedding model: embeddinggemma-300M (314 MB, lokální, CPU)
|
||||
- =memory_search= funguje, score 0.8–0.9
|
||||
- Pravidlo: dotazy vždy anglicky (lepší recall)
|
||||
- Bug nenahlášen upstream
|
||||
|
||||
** RAG analýza
|
||||
Workspace soubory celkem: ~5 200 tokenů = *2,6 % context okna* (200K).
|
||||
RAG teď nedává smysl — úspora příliš malá, riziko vynechání pravidel.
|
||||
=memory_search= (QMD) = fakticky RAG pro cold storage (30+ daily logů).
|
||||
* Historie
|
||||
|
||||
Přehodnotit až overhead > 15 % (~30K tokenů).
|
||||
Při aktivním pruning to v dohledné době nenastane.
|
||||
** QMD backend (leden–únor 2026) — odstraněn
|
||||
|
||||
Zkoušen jako alternativa k builtin backendu. Problémy:
|
||||
- CUDA závislosti způsobovaly build problémy na serveru
|
||||
- BM25 výsledky horší než builtin hybrid
|
||||
- Složitá konfigurace bez jasného přínosu
|
||||
|
||||
Odstraněn, vráceno na builtin + OpenAI embeddings.
|
||||
|
||||
** Kdy přehodnotit RAG
|
||||
|
||||
Workspace soubory jsou malé (~5–8K tokenů = ~3–4 % kontextového okna).
|
||||
RAG pro hot storage nedává smysl — úspora příliš malá vs. riziko vynechání pravidel.
|
||||
|
||||
=memory_search= (cold storage) = fakticky RAG pro 30+ denních logů.
|
||||
Přehodnotit pokud overhead > 15 % (~30K tokenů). Při aktivním pruning v dohledné době nenastane.
|
||||
|
||||
Reference in New Issue
Block a user