Files
nanobot-runtime/memory/MEMORY.md
nanobot 4679be7381 dream: 2026-06-22 17:56, 6 change(s)
[MEMORY] Wiki current state: ~21 nodes, ~130+ edges (was 17 nodes, 125 edges) after ingesting LEGO MINDSTORMS source with 3 entities and 2 concepts
[MEMORY] New wiki source ingested: source-lego-mindstorms-continued-use (LEGO MINDSTORMS discontinuation, Pybricks alternative, SPIKE Prime successor)
[MEMORY] New wiki entities: product-lego-mindstorms, product-pybricks, product-spike-prime
[MEMORY] New wiki concepts: digital-preservation, alternative-firmware
[USER-REMOVE] "U destruktivních / nevratných akcí (smazání, restarty produkčních služeb, push --force) si nejdřív vyžádej potvrzení" — duplicates SOUL.md rule "U nevratných akcí (smazání, přepis, odeslání) raději počkej na potvrzení"; SOUL.md is canonical location for bot behavior rules
[MEMORY-REMOVE] "User wants deterministic IRC-bot-style command dispatch in nanobot where !command text invokes a registered Python function or external app and returns output without LLM agent involvement" ← 16d — overlaps with two related entries below; consolidate into one
[MEMORY-REMOVE] "Zájem o :skillname prefix pro deterministické vyvolání skillu bez LLM deliberace — varianta navrhovaného custom command patche s ! prefixem" ← 15d — overlaps with above and below; consolidate
[MEMORY-REMOVE] "GLM-5.2 does not exist as of June 2026; Z.AI has made no official announcement" ← 15d — negative/time-sensitive fact that becomes stale the moment GLM-5.2 is announced; low ongoing value
[MEMORY-REMOVE] "nemotron-3-ultra:cloud released 2026-06-04 and is too new for real-world nanobot agent validation" ← 15d — time-sensitive assessment now 18+ days old; superseded by actual experience if any
2026-06-22 19:57:44 +02:00

9.4 KiB
Raw Blame History

Long-term Memory

This file stores important information that should persist across sessions.

Preferences

Report / result files

  • Save important reports to results/ directory with descriptive, date-prefixed filenames (e.g., 2026-06-02_remind-skill-analysis-and-improvements.md)

Script-writing convention

  • Location: always save scripts in the scripts/ directory.
  • Language choice:
    • Extremely short script (a few lines) -> bash.
    • Longer / non-trivial script -> Python.
  • Override: if the user explicitly specifies a language or location, their instruction always takes precedence.

Temporary files

  • All temporary files go to tmp/ directory.
  • Clean up after tests and one-off operations.

Code changes

  • User prefers changes to be made in a temporary clone under workspace/tmp/<repo-name> for review before applying

Project Context

  • User wants to deploy "grill-me" plugin for Claude Code
  • User wants to try "praneybehl/llm-wiki-plugin" for Claude Code — markdown-based thought management / organization
  • Daily automated check for new nanobot Docker image releases with Telegram notifications (pending setup)
  • Both user and assistant run on the same nanobot Docker image
  • Docker CLI is unavailable in the current runtime environment
  • podman is acceptable as alternative to Docker CLI when required
  • Ollama cloud subscription: na požádání zobrazit aktuální využití (usage)
  • Ollama cloud limity: 5hodinová session, 7denní týdenní okno
  • /note skill: backend uses SQLite (not markdown); must be deterministic, log all operations, split into shorter prompt + Python script
  • URLs should be on separate lines in both list and show output, not buried in long text lines
  • Reminders DB schema has no "frequency" column; scheduling uses separate tables (schedule_at, schedule_cron, schedule_random, reminder_fires)
  • Use python3 not python on this system (latter not found)
  • nanobot podporuje cross-channel session continuity přes unifiedSession: true v config.json pod agents.defaults
  • Uživatel nemá unifiedSession povolený v config.json (default false)
  • Zapnutí unifiedSession sjednotí jen budoucí zprávy; existující session soubory vyžadují ruční merge/rename pro propojení minulých konverzací
  • Session files are stored in /home/nanobot/.nanobot/workspace/sessions/ (confirmed after failed attempts at root .nanobot/sessions/)
  • User explicitly rejected unified/Mega session approach; prefers connecting to older existing sessions instead
  • Telegram slash commands (e.g., /skills) are filtered out by & ~filters.COMMAND in telegram.py:384; workaround: invoke skills without slash prefix (e.g., skills not /skills); alternative fix: remove the filter from MessageHandler
  • User wants deterministic command dispatch in nanobot (!command text → registered Python function/external app, no LLM involvement); expects native implementation from nanobot creators, considers existing workarounds unsatisfactory
  • User wants nanobot use-case analysis framed as personal project relevance, not generic use case lists
  • User is interested in litellm proxy for Ollama
  • User considers Raspberry Pi good for testing
  • User wants to try writing a nanobot extension in TypeScript
  • No existing ! prefix handling in nanobot — all current commands use / prefix only
  • cli_apps tool exists at nanobot/agent/tools/cli_apps.py — relevant for calling external apps from custom commands
  • Note skill DB path is db/note.sqlite, not skills/note/notes.db (the latter is empty/wrong)

Agent Model Selection

  • Prioritizes agentic performance, correct tool calling, and overall result quality
  • Conservative fallback nanobot agent model: DeepSeek V3.2:cloud
  • OpenRouter is pay-per-token alternative to Ollama subscription for model access
  • Gemini Flash via Google AI Studio Free Tier: 15 RPM limit — unusable for agent work; only viable for simple prompts without tool calls
  • Gemini Flash via Google AI Studio Tier 1 (paid): 360+ RPM
  • Haiku (Claude) via OpenRouter: high rate limits, viable agent model alternative
  • Gemini Flash Lite via OpenRouter: high rate limits, viable agent model alternative
  • Kimi K2.6 vs GLM-5.1 agent comparison: Kimi leads SWE-Bench (80.2% vs ~77.8%), tool-error recovery (91.8% vs 88.4%), code quality (Tier A vs Tier C); GLM-5.1 leads schema adherence (99.6% vs 98.9%), tool-call latency (+140ms vs +210ms); GLM-5.1 tends to hallucinate non-existent APIs
  • Kimi K2.6 has known bug with random switching to Chinese output (reported by Cursor and Reddit users) — critical risk for Czech use
  • Both Kimi K2.6 and GLM-5.1 are Chinese-English models without specific Czech training data — both risky for Czech
  • Kimi K2.6 supports preserve_thinking mode for multi-turn agent scenarios (retains reasoning content across turns)
  • minimax-m3:cloud is blocked for nanobot agent deployment due to empty tool result responses (ollama/ollama #16389)
  • deepseek-v4-pro:cloud is blocked for interactive nanobot agent use due to 15.4 tok/s and 57s TTFT
  • deepseek-v4-flash:cloud is a viable nanobot agent alternative with 1M ctx, MIT license, and ~30-50 tok/s speed
  • qwen3.5:397b-cloud is a viable nanobot agent alternative with multimodal support, 1M ctx, 201 languages including Czech, but has speed and accuracy tradeoffs
  • devstral-2:123b-cloud is a viable nanobot agent alternative with Terminal-Bench 77.3%, coding-only focus, and 128K ctx limit
  • User is interested in switching to GLM-5.2:cloud as primary nanobot agent model if/when it becomes available on Ollama Cloud
  • GLM-5.1:cloud achieves ~198 tok/s on Ollama Cloud
  • Agent model comparison report saved to results/2026-06-07_ollama-cloud-agent-model-comparison.md
  • User prefers Qwen model for deep research tasks (not currently in presets)
  • For Ollama Cloud /detach research tasks, explicitly specifying the model (e.g., qwen35, gemini) is more reliable than generic model-agnostic prompts
  • Available model presets: gemini-flash, gemini-flash-lite, glm, haiku, kimi, minimax, sonnet

Wiki

  • Wiki content is in Czech
  • Wiki compile rule: ambiguous/conflicting sources must NOT be force-compiled — leave in cml/raw/ or move to _hard/, log reason to log.md
  • Wiki lint rule: lint is report-only, never make destructive edits to existing wiki pages without user confirmation
  • Wiki compilation runs in isolated background sessions without user interaction (batch/hands-off mode)
  • Wiki idempotency rule: if wiki pages already exist for a source, treat as done, move raw file to _done/, skip reconciliation
  • Duplicate wiki sources (same URL as an already-compiled source) must be detected and moved to _hard/
  • Every processed source must be moved out of cml/raw/ to prevent cron reprocessing
  • Wiki graph regeneration: run wiki_graph_lint.py + wiki_graph_extract.py after each ingest batch that adds graph metadata
  • Wiki source pages need explicit slug field (e.g. slug: source-flash-attention) and graph.node_id + canonical: true to avoid UNIQUE constraint collision with concept/entity pages sharing the same filename stem
  • wiki_graph_extract.py patched: skip duplicate slugs (first wins) instead of crashing on nodes.slug UNIQUE constraint
  • Wiki current state: ~21 nodes, ~130+ edges (was 17 nodes, 125 edges after initial build)
  • Wiki source ingested: source-lego-mindstorms-continued-use (LEGO MINDSTORMS discontinuation, Pybricks alternative, SPIKE Prime successor)
  • Wiki entities: product-lego-mindstorms, product-pybricks, product-spike-prime
  • Wiki concepts: digital-preservation, alternative-firmware

Reminder System

  • Reminder check script: /home/nanobot/.nanobot/workspace/skills/remind/scripts/remind_check.py
  • Execution: exec via /home/nanobot/.local/bin/uv run <script>
  • Empty output → silent exit (no notification sent)
  • Each non-empty output line → forwarded as separate Telegram notification
  • /remind soft delete (deleted_at) for reminder removal instead of hard deletion
  • /remind REMIND_DB env var configures SQLite database path
  • Reminder #5 (koupit skleničky z lahví z vína): frequency 1× weekly random 09:0019:00 (changed from daily)
  • Reminder #6 (mapování klíčů ve sklepě): frequency 1× weekly random 08:0021:00 (changed from daily)
  • Reminder #7 (znovu rozchodit teplotní senzor ve chlívku): frequency 2× weekly random 08:0021:00 (changed from daily)
  • Reminder #8 (zálohování wood.hell na pivo.hell): frequency 2× weekly random 08:0021:00 (changed from daily)

NuGet package caching ← 17d

  • Evaluating NuGet package hosting/caching on Linux ← 17d
  • Preferred solution: BaGetter (bagetter/BaGetter) — active BaGet fork with multiple upstream mirror support (PR #269), solves original BaGet's single-upstream limitation ← 17d

Deep Research ← 2d

  • Deep-research use-cases task (2026-06-18) partial results saved to results/2026-06-18_nanobot-use-cases-analysis.md
  • Deep-research task failure on 2026-06-18 caused by hitting 200 tool-call iteration limit (not a freeze/deadlock)

Plans

  • Set up Claude Code for removing ads and cutting songs from Radio 1 stream
  • Find placement for 3D printer
  • Integrate remind, keep, note, and todo systems
  • Find use for pi-agent #devops
  • "Objednat se na kolenoskopii" — every weekday 08:00 Europe/Prague

Personal Notes

  • Chicken coop (chlívek): pending temperature sensor and MQTT display project

This file is automatically updated by nanobot when important information should be remembered.