Discord-main memory archive

Browse arkiverade minnessektioner
← Tillbaka till index

Memory stub-systemet (arkitektur, runtime, refresh, CLI)

2026-05-04-memory-stub-systemet.md
Senast matchad2026-05-08 (13 h sedan)
Antal matches14
Skapad2026-05-04
Senast refreshadaldrig
I stubs.dbja

Memory stub-systemet

Senast uppdaterad: 2026-05-04

Semantisk retrieval av arkiverade minnessektioner. Håller memory.md kort genom att flytta detaljer till arkivfiler som bara injiceras när användarens fråga matchar.

Arkitektur (i tre lager)

  1. Skill: memory-stubs (/workspace/extra/server/nanoclaw/groups/global/skills/memory-stubs/)
  1. Lagring: per-kanal sqlite-db

`` id INTEGER PRIMARY KEY title TEXT stub_text TEXT -- kort hook som embeddas archive_path TEXT -- absolut path till .md-fil med fullt innehåll embedding BLOB -- Float32Array little-endian (3072 dim * 4 bytes = 12288 B) created_at TEXT last_matched_at TEXT match_count INTEGER refresh_source TEXT -- JSON: {"type":"file-watch","path":"..."} eller scheduler-db-query / script / manual last_refreshed_at TEXT ``

  1. Runtime-hook: memory-stubs.ts (data/sessions/{kanal}/agent-runner-src/memory-stubs.ts)

Hela flödet (vid varje user-message)

  1. User skriver i Discord/Telegram/WhatsApp
  2. Agent-runner anropar memory-stubs.ts
  3. Embedding-genering via Gemini (cached på SHA256)
  4. Cosinus mot alla stubs i kanalens stubs.db (+ global)
  5. Top-N stubs över threshold, läs archive_path-innehåll
  6. Injicera som "Relevant arkiverat material"-sektion i systemprompt
  7. Claude-tur startar med stubs som extra kontext
  8. match_count bumpas

Viktiga regler

CLI-verktyg

``bash cd /workspace/extra/server/nanoclaw/groups/global/skills/memory-stubs node archive-section.js \ --memory-file /path/to/memory.md \ --section "## Trello API" \ --archive-dir /path/to/memory/archived \ --db-path /path/to/memory/stubs.db \ --stub-text "Trello API-endpoints, board-IDs, veckodagslistor. Läs vid frågor om kort, tasks, boards." ``

``bash node /workspace/group/sqlite3-wrapper.js --header /path/to/stubs.db "SELECT id, title, refresh_source FROM stubs ORDER BY id" ``

Skriv ett kort node-script som hämtar embedding via https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:embedContent?key=$GEMINI_API_KEY, packar floats som little-endian Float32Array Buffer, och INSERTar via better-sqlite3.

Insights och lärdomar

Status per kanal (2026-05-04)

Referenser