---
tags: [ia, memoire, opencode, configuration, OpenCode]
type: documentation
univers: PRO
nature: documentation
status: active
description: "Mémoire à trois niveaux S/M/L : fichiers memory, opencode.db, page long terme, consolidation cron 0 token."
projects:
  - [[03_PROJETS/VPS-IA]]
---

# VPS-IA_Memoire-Long-Terme

> Système de mémoire multi-niveaux OpenCode, inspiré du modèle Hermes Agent (Nous Research). Mise en place le 2026-10-26.

## Principe — 3 niveaux

| Niveau | Où | Rôle | Coût |
|---|---|---|---|
| **S** (court terme) | `~/.config/opencode/memory/` — `memory-common.md` + `memory-<agent>.md` | Faits durables toujours en contexte | ~600-900 tokens/session |
| **M** (rappel) | `opencode.db` (SQLite) + notes SilverBullet | « On en a parlé quand ? » — recherche à la demande | 0 token si non consulté |
| **L** (long terme) | `80_CONFIG/IA_MEMOIRE_LONGTERME` (SilverBullet) | Faits consolidés, source de vérité du LT | 0 token par défaut, ~300-600 si consulté |

## Fichiers en place

- `memory-common.md` : profil USER (Guillaume) + faits transverses + `[INDEX_LT]`.
- `memory-vps-admin.md`, `memory-pkm-manager.md` : leçons/faits par agent (budget 2000 chars chacun).
- `~/.opencode/bin/cron-memory-consolidation.sh` : consolidation S → L, déterministe **0 token**.
  - Paramètres : `PROMOTE_AFTER_DAYS` (défaut 30 j), mode `--run` (manuel) / `--dry-run`.
  - Dédup par empreinte md5 (`.promoted.fingerprints`), jauge > 80 % → mail récap.
- Cron : `0 18 * * 5` (premier vendredi du mois, test jour ≤ 7 dans le script).

## Règles de cohérence S ↔ L

1. **Un fait vit à un seul endroit** — fréquence d'usage + stabilité décident du niveau (frontière dans AGENTS.md).
2. **Promotion** : entrée datée `- YYYY-MM-DD : texte` âgée ≥ 30 j → copiée dans LT (section par agent, lien journal `[[01_JOURNAL/...]]`) **puis retirée** de S.
3. **Rappel** : le LT se consulte à la demande via l'`[INDEX_LT]` (requête ciblée, jamais la page entière).
4. **Exclusions** : jamais de secret (reste dans `pass`), jamais AGENTS.md/skills/notes SB dans les fichiers mémoire.

## Verrous anti-surconsommation (consultation LT)

1. **Index** — `[INDEX_LT]` dans `memory-common.md` : domaine non couvert → **0 lecture**.
2. **Requête SLIQ ciblée** — jamais lire la page entière ; interroger les **items indexés** (`index.items()` sur la page LT, filtres tag/mot-clé/date) — cf. skill `historique-projet`, section « Consultation de la mémoire long terme ».
3. **Garde-fou de taille** — `cron-memory-consolidation.sh` alerte par **mail + ntfy** (topic `vps-admin`, priorité `high`, tags `rotating_light/warning`) si la page LT dépasse `LT_SIZE_WARN` (défaut 20 Ko) → découpage en sous-pages par domaine (`IA_MEMOIRE_LONGTERME/<Domaine>`).

**Notifications ntfy** (topic `vps-admin`, token `opencode/ntfy-token` lu à l'exécution) : toute consolidation active (tags `tada`) ; alerte taille page (priorité `high`) ; jauge mémoire > 80 %.

## Historique

- 2026-10-26 : migration `memory.md` → dossier `memory/` (2 agents), création page LT, script + cron, sections Mémoire dans les agents, extension skill `historique-projet` (rappel FTS5/LIKE), AGENTS.md mis à jour (source : 80_CONFIG/IA_CONTEXT/AGENTS.md).
- 2026-10-26 : verrous 2 et 3 ajoutés — règle « jamais lire la page LT en entier » + requête SLIQ items documentée dans le skill `historique-projet` ; alerte de taille (`LT_SIZE_WARN`, défaut 20 Ko) dans le script de consolidation.
- 2026-10-26 : alerte **ntfy** ajoutée au script — consolidation (tags `tada`) et limite 20 Ko (priorité `high`, `rotating_light/warning`).
- 2026-10-26 : skill `memoire-long-terme` créé (procédure de découpage en sous-pages, consolidation manuelle, vérifications) — déclenché par l'alerte ntfy 20 Ko. Routage ajouté dans l'agent vps-admin + règle dans AGENTS.md (§ Niveau L).
