Matteo Benedetto faa4e84611 feat: metriche gateway con push a VictoriaMetrics + dashboard Grafana
- raccolta in-memory: richieste per endpoint, latenza (sum/count), errori per status, search queries/hits, punti
- push periodico (30s) a VM via /api/v1/import/prometheus (pattern energy engine, timestamp ms)
- VM_PUSH_URL/VM_PUSH_INTERVAL/METRICS_ENABLED configurabili; default host.docker.internal:8428
- endpoint /v1/metrics (auth) per verifica manuale
- dashboard Grafana versionata in monitoring/qmem-dashboard.json (provisioning: /home/enne2/domotics/grafana/dashboards/)
- verificato sul server: /v1/metrics OK, 6 serie qmem_* in VM
2026-08-16 19:51:08 +02:00

pi-qmem

Memoria centralizzata e condivisa per agenti AI — estensione per pi.

Salva e cerca record semantici (fatti, decisioni, preferenze, episodi) in un Memory Gateway (FastAPI + Qdrant + BGE-M3) ospitato su un server remoto raggiungibile via VPN. Nessun LLM in scrittura: l'agente salva record deliberati e strutturati; il retrieval è vettoriale + filtri metadata.

Installazione

pi install git:git.enne2.net/enne2/pi-qmem

Oppure copia extensions/index.ts in ~/.pi/agent/extensions/pi-qmem/.

Tool

Tool Descrizione
qmem_store Salva un record di memoria (text, kind, agent_id, project_id obbligatorio, scope, source, expires_at, supersedes_id, supersede_reason)
qmem_search Ricerca semantica su tutta la conoscenza condivisa (query, kind, project_id, scope, top_k, include_superseded, min_score)
qmem_correct Corregge una memoria falsa: crea un nuovo record che supersede il vecchio (che resta in archivio marcato superseded)
qmem_meta Discovery: panoramica di scope×kind, progetti, agenti e superseduti (per scegliere i filtri di ricerca)

Comando

/qmem:config — menu interattivo (TUI):

  • 🌐 Imposta URL gateway
  • 🔑 Cambia API key
  • 🔌 Test connessione (verifica URL + validità chiave)
  • 📋 Mostra configurazione
  • ↩️ Annulla

Modalità CLI rapida: /qmem:config url <URL> | apikey <KEY> | test

Config salvata in ~/.config/pi-qmem/config.json (0600):

{
  "url": "http://10.8.0.3:8082",
  "apiKey": "..."
}

Regole comportamentali (autocontenute)

Le regole vincolanti (obbligo project_id, punteggi, correzione/supersede, discovery) sono distribuite con l'estensione, senza toccare AGENTS.md:

  • promptGuidelines sui 4 tool (bullets nel Guidelines del system prompt, solo quando i tool sono attivi)
  • before_agent_start → blocco "Regole pi-qmem" iniettato nel system prompt a ogni turno (solo se i tool qmem sono attivi)
  • Skill qmem (skills/qmem/SKILL.md, standard agentskills.io) → procedura completa on-demand, caricabile con /skill:qmem
  • Manifest: pi.skills nel package.json

Gateway (componente server)

La cartella gateway/ contiene il Memory Gateway FastAPI da deployare sul server (Docker Compose con Qdrant 1.19 + Ollama BGE-M3). Vedi gateway/README.md per il deploy.

Architettura

pi (estensione) ──HTTPS/VPN──▶ Memory Gateway (FastAPI) ──▶ Qdrant 1.19
                                      │
                                      └──▶ Ollama BGE-M3 (embedding locale)
  • Accesso condiviso: una chiave API con accesso completo in lettura/scrittura
  • agent_id è solo metadata di provenienza, non isolamento
  • Rate limit, audit log, cleanup automatico dei record scaduti
  • Correzioni: i record sono immutabili; correggere una memoria falsa = nuovo record che supersede il vecchio (qmem_correct o qmem_store con supersedes_id). Il vecchio resta in archivio con superseded_by, escluso dalla ricerca di default (include_superseded=true per la lineage)

Licenza

MIT

S
Description
Memoria centralizzata e condivisa per agenti AI: estensione pi (qmem_store/qmem_search) + Memory Gateway FastAPI + Qdrant + BGE-M3
Readme
340 KiB
Languages
TypeScript 70.4%
JavaScript 23.2%
Python 6%
Shell 0.4%