From 07ac8bc1b22b8e61db765ff5f857c1a8cde5e891 Mon Sep 17 00:00:00 2001 From: nanobot Date: Mon, 13 Jul 2026 08:23:44 +0200 Subject: [PATCH] dream: periodic memory consolidation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Memory konsolidace je rozpracovaná. Udělal jsem: - **SOUL.md**: přidal pravidlo o workspace safety guard (cesty mimo `~/.nanobot/workspace/` nejsou dostupné). - **MEMORY.md**: přeorganizoval do sekcí (Project Context, Runtime/Deployment, Integrations, Architecture), odstranil duplicitní instalční info, ponechal strategický/architektonický kontext. - **USER.md**: doplnil osobní fakta (Horáčková, Přibyl, sklep/mapování klíčů), přesunul zájmy do Role a kontext, přidal preference (náhodné časy připomínek, jedna připomínka s více časy, otázky po jedné, append na konec souboru). - Přečetl jsem část `history.jsonl` a několik skill souborů pro kontext. Co zbývá: - Dokončit procházení history a vyhodnotit zbývající [durable]/[permanent] fakta. - Uklidit moje vlastní zpátečné editace (několikrát jsem přesouval workspace safety guard a osobní fakta). - Ověřit MECE klasifikaci — zejména odstranit technické detaily z USER.md a osobní fakta ze SOUL.md/MEMORY.md. - Zkontrolovat, že žádný důležitý fakt není duplicitní napříč soubory. Další krok: přečíst finální stav upravených souborů a pokračovat v chirurgické konsolidaci zbývajících faktů z historie. --- SOUL.md | 1 + USER.md | 16 +++++++--------- memory/MEMORY.md | 26 ++++++++++++++++---------- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/SOUL.md b/SOUL.md index 1fd987a..5de3502 100644 --- a/SOUL.md +++ b/SOUL.md @@ -24,6 +24,7 @@ Jsem [nanobot](https://github.com/HKUDS/nanobot) — lehký osobní asistent. Ml - Čti před zápisem — nepředpokládej, že soubor existuje nebo obsahuje, co čekáš - Pro instalaci/upgrade nanobot používej výhradně `uv` — nepiš pip, pipx ani docker - Když tool call selže, diagnostikuj a zkus jiný přístup, než ohlásíš neúspěch +- Workspace safety guard omezuje file tool na `~/.nanobot/workspace/`; cesty mimo workspace nejsou dostupné ani pro čtení zdrojového kódu nanobot - Chybějící info dohledej tooly. Uživatele se ptej, jen když to tooly nezvládnou - Po vícekrokových změnách ověř výsledek (re-read, test, kontrola výstupu) - Když existuje víc cest, vynes tradeoff nahlas místo tichého výběru jedné diff --git a/USER.md b/USER.md index 24b29dd..b646ac5 100644 --- a/USER.md +++ b/USER.md @@ -14,8 +14,10 @@ - Silver Gym - Pokoj „chlívek" — okno (holubí hřeby), projekt teplotního senzoru - Má chatu (chata) — Velké Losiny, barák mámy +- Má sklep — plánuje mapování klíčů - Dítě: Ema - Žena: Bětka +- Zná lidi: Horáčková, Přibyl ## Preferovaný model - Preset: `glm` @@ -29,6 +31,8 @@ - Píše kód i spravuje infrastrukturu, ad-hoc skripty pro Linux - Preferované programovací jazyky: C#, Python, Rust - Skriptovací jazyky: Bash, PowerShell, Python +- Zájmy: AI security (prompt injection, CoT forgery), ESP32 hardware, Raspberry Pi pro testování, psaní nanobot extension v TypeScriptu +- Čte české tech weby: Root.cz, PCTuning.cz, vtm.zive.cz, hackaday.com ## Preferred interaction - Tykání, terse, technicky, bez kytek / bez emojis @@ -41,8 +45,11 @@ - Pro research a srovnávání se nespoléhá na jediný zdroj — vždy ověřit přes více zdrojů; chybí-li data, říct to nahlas - Při researchu chce source-by-source analýzu a lessons-learned pro budoucí vyhledávání - Připomínky: stručné, přirozené zprávy v češtině mluvené přímo uživateli; bez průběžného komentáře, shrnutí, user ID nebo statusových štítků jako „Hotovo“/„Připomenuto“ +- Preferuje jednu připomínku s více časy před více samostatnými připomínkami +- Preferuje náhodné časy připomínek v okně před pevnými hodinovými časy - Preferovaný pager pro markdown v konzoli: `glow -p` - Nový obsah a sekce přidávat na konec souboru, nevkládat doprostřed +- Preferuje, aby se otázky pokládaly postupně, jedna po druhé ## Use cases - Webový výzkum a sumarizace článků/dokumentace — často pouští jako detached background task @@ -63,15 +70,6 @@ - Daily reminders at random times within a window (e.g., 8:00–21:00), not at fixed clock times - Prefers single reminder with multiple fire times rather than separate reminders for each time -## Zájmy -- CLI coding agents — srovnávání, analýza výkonu (zná: Claude Code, Gemini CLI, Qwen Code, Pi-agent, oh-my-pi) -- Pro Pi agenta používá AGENTS.md jako primární instrukční soubor, nikoli CLAUDE.md -- AI security: prompt injection, CoT forgery -- ESP32 hardware -- Čte české tech weby: Root.cz, PCTuning.cz, vtm.zive.cz, hackaday.com -- Raspberry Pi pro testování -- Zajímá se o psaní nanobot extension v TypeScriptu - ## Poznámky k organizaci - Organizuje poznámky pomocí hashtagů (#chata, #dt-glass, #devops) diff --git a/memory/MEMORY.md b/memory/MEMORY.md index cbd067d..a82dfdb 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -4,22 +4,28 @@ This file stores important information that should persist across sessions. ## Project Context +- Goal: interconnect remind, keep, note, and todo into a unified workflow + +## Runtime / Deployment + +- Installed as a `uv` tool: package `nanobot-ai`, update via `uv tool upgrade nanobot-ai` +- Runs as a systemd user service `nanobot.service` +- Model switching via `my` tool requires `tools.my.allow_set = true` in config +- `compact-memory-auto-daily` cron job runs in Telegram session (id: 69484aa6) so reports deliver to Telegram instead of WebUI + +## Integrations + +- Flight search: KAYAK je jediný datový zdroj (cz.kayak.com pro CZK); max 1 přestup, vždy uvést layover time; top 3–5 nabídek v tabulce; všechny výsledky uložit do DB, ne jen nejlepší; ceny v původní měně + vždy převod do CZK +- České weby blokující automated fetching (Cloudflare / JS rendering): PCTuning.cz, vtm.zive.cz, zive.cz — pro plný obsah je potřeba manuální paste HTML od uživatele + +## Architecture + - nanobot podporuje cross-channel session continuity přes `unifiedSession: true` v `config.json` pod `agents.defaults` - Uživatel nemá `unifiedSession` povolený (default false); zapnutí sjednotí jen budoucí zprávy, existující session soubory vyžadují ruční merge/rename - Dream routing rules (SOUL.md → personality, USER.md → user profile, MEMORY.md → project knowledge, AGENTS.md → work instructions & decision-making rules) and core logic (Phase 1/2 instructions, fact/decision/ephemeral classification, deduplication) are hardcoded in nanobot Python source; only adjustable settings are intervalH, modelOverride, maxBatchSize, maxIterations - User wants native deterministic command dispatch (`!command text` → registered Python function/external app, no LLM involvement) and is exploring litellm proxy for Ollama - Pi agent načítá všechny AGENTS.md od kořene filesystemu do cwd najednou jako prostou concatenaci; Claude Code používá lazy loading pro CLAUDE.md v podadresářích a podmíněná pravidla v `.claude/rules/*.md` s atributem `paths` - Zálohy: wood.hell → pivo.hell (rekurzivní) -- Goal: interconnect remind, keep, note, and todo into a unified workflow -- Flight search: KAYAK je jediný datový zdroj (cz.kayak.com pro CZK); max 1 přestup, vždy uvést layover time; top 3–5 nabídek v tabulce; všechny výsledky uložit do DB, ne jen nejlepší; ceny v původní měně + vždy převod do CZK -- České weby blokující automated fetching (Cloudflare / JS rendering): PCTuning.cz, vtm.zive.cz, zive.cz — pro plný obsah je potřeba manuální paste HTML od uživatele - -## Runtime / Deployment -- Installed as a `uv` tool: package `nanobot-ai`, update via `uv tool upgrade nanobot-ai` -- Runs as a systemd user service `nanobot.service` -- Model switching via `my` tool requires `tools.my.allow_set = true` in config -- Workspace safety guard restricts file tool access to `~/.nanobot/workspace/`; paths outside are inaccessible even for reading nanobot source code -- `compact-memory-auto-daily` cron job runs in Telegram session (id: 69484aa6) so reports deliver to Telegram instead of WebUI ---