--- title: Hindsight (Semantic Memory) category: systems tags: [hindsight, memory, postgresql, embeddings, semantic-search] created: "2026-07-24" modified: "2026-07-24" --- # Hindsight (Semantic Memory) ## Deployment - **Namespace:** hindsight (K8s) - **API:** LoadBalancer `10.0.30.208:9177` (**NICHT localhost**, NICHT .201 — dort sitzt seit Rebuild 2026-08-01 Grafana!) - **Health:** `curl -s http://10.0.30.208:9177/health` - **Port-Mapping:** Svc 9177 → Container 8888; NodePort-Fallback 31577 (jeder Node) - **LB-IP-Drift-Warnung:** LB-IPs verschoben sich beim Rebuild 2026-08-01 (hindsight .201→.208). Bei Health-Failure IMMER zuerst `kubectl -n hindsight get svc hindsight-api` gegenprüfen, statt Referenz-IP zu vertrauen - **Backend:** PostgreSQL + pgvector - **Config:** `~/.hermes/hindsight/config.json` (api_url gesetzt) ## Components | Component | Status | |-----------|--------| | hindsight-api | 1/1 Running | | hindsight-postgres | 1/1 Running | | Embedding Model | harrier-oss (via noris) | ## API Endpoints - `GET /health` — Health check - `POST /retain` — Store memory - `POST /recall` — Semantic search - `POST /reflect` — Synthesize answer across memories ## Best Practices - **retain_every_n_turns: 2** — reduziert Duplikate - Vor Batch-Retain: Health-Check, dann erst retain calls feuern - Meta-Memory Cleanup Cron: 1st of Month 03:00 (3 Dedup Rounds, Archive >6 Monate) - Decay & Importance Scoring: 1st of Month 03:30 (score=access×age_decay, archive score<0.15) - User Drift Detection: Mondays 04:00 (compare 14d vs 90d baseline) - Skill Health Check: Mondays 04:30 (scan 187 SKILL.md for issues) - Nightly Dream Cycle + Weekly Insight Digest ## What NOT to store in Hindsight - Temporäre Task-States (→ session_search / todo) - Workflows (→ Skills) - Credentials (→ 1Password) - Duplikate von MEMORY.md ## Related Skills - `hindsight` (hindsight category) - `compound-learning` (software-development category) ## Related - [[systems/rke2-kubernetes]] - [[concepts/credential-policy]]