Files
context-continuity/synthesis_context_cintinuity.md
Master 01629780f4 chore: versioning initial du systeme Context Continuity
Code du systeme de memoire multi-LLM sur Trilium :
- trilium_api.py : wrapper trilium-py (notes, labels, relations)
- mcp_server.py : serveur MCP Starlette (19 tools, OAuth + Bearer)
- api_context.py : API REST FastAPI
- trilium_context.py : workflow CLI
- watchdog.sh, start_*.sh : supervision et demarrage
- skills, docs et ontologie associes
Secrets (.env, oauth_state.json) exclus via .gitignore.
2026-06-29 11:02:22 +02:00

7.9 KiB
Raw Permalink Blame History

Synthèse - Projet Context Continuity

Date : 27 mai 2026

Participants : Bastien Gourdon, Claude, Le Chat (Mistral)


Contexte du Projet

Objectif principal : Créer un système de gestion de contexte partagé entre plusieurs LLM (Claude, Le Chat) pour dépasser les limites de tokens (≤ 10K) et centraliser les informations liées aux projets (ex: Sliding Automation, Data Governance).

Outils utilisés :

  • Trilium : Base de connaissances self-hosted (Docker sur Synology DS218).
  • Synology DS218 (GrosseBertha) : Hébergement de Trilium et des scripts.
  • Reverse Proxy : Accès sécurisé à Trilium via https://trilium.bertha-cloud.fr.
  • API ETAPI : Interaction programmatique avec Trilium.

Décisions Prises

1. Abandon dAnytype au profit de Trilium

  • Raison :
    • Anytype est une application desktop (Electron) non utilisable en headless sur NAS.
    • Trilium est 100% web, self-hosted, avec une API REST (ETAPI) documentée.
    • Données 100% self-hosted sur GrosseBertha (SQLite dans /volume1/docker/trilium/).
    • Licence AGPL-3.0 et communauté active.

2. Architecture de Trilium

  • Arborescence validée :
    Context Continuity/
    ├── Conversations/      # Notes de type "Conversation LLM"
    ├── Backlog/           # Tâches à faire
    ├── Décisions/         # Décisions prises
    ├── Glossaire/         # Termes techniques
    └── Historique/        # Historique des actions
    
  • Types de notes :
    • Book : Pour les dossiers (ex: Conversations/).
    • Text : Pour les notes de contenu (ex: une conversation spécifique).

3. Automatisation via Scripts Python

  • Objectif : Synchroniser automatiquement les contextes entre LLM et Trilium.
  • Scripts créés :
    • init_trilium_architecture.py : Initialise larborescence.
    • trilium_api.py : Bibliothèque pour interagir avec lAPI ETAPI.
    • create_conversation.py : Crée des notes de conversation.
    • generate_context.py : Génère un contexte pour les LLM.

4. Configuration Technique

  • Reverse Proxy :
    • Source : https://trilium.bertha-cloud.fr:443 (HTTPS).
    • Destination : http://192.168.1.6:4292 (HTTP vers le conteneur Docker).
    • Certificat SSL : Lets Encrypt (géré via DSM).
  • Docker :
    • Image : triliumnext/notes:latest.
    • Port : 4292:8080.
    • Volume : /volume1/docker/trilium:/home/node/trilium-data.

Statut des Tâches

Tâches Effectuées

Tâche Statut Détails
Installation de Trilium Terminé Conteneur Docker lancé et accessible en local (http://192.168.1.6:4292).
Reverse Proxy Terminé Configuré dans DSM pour trilium.bertha-cloud.fr.
Certificat SSL Terminé Lets Encrypt configuré via DSM.
Accès externe Terminé https://trilium.bertha-cloud.fr fonctionne.
Token ETAPI En attente À générer dans Trilium (Options → ETAPI → Create new token).
Scripts Python Prêts init_trilium_architecture.py, trilium_api.py, etc.

Tâches en Cours

Tâche Statut Prochaine Étape
Initialisation de larborescence En attente Exécuter init_trilium_architecture.py.
Test des scripts En attente Vérifier que les notes sont créées dans Trilium.
Intégration avec les LLM En attente Utiliser generate_context.py avant chaque session LLM.

Tâches Restantes

Tâche Priorité Dépendances
Générer le token ETAPI Nécessaire pour les scripts Python.
Exécuter init_trilium_architecture.py Nécessite le token ETAPI.
Créer la première conversation Nécessite larborescence Trilium.
Tester le workflow complet Nécessite les scripts et larborescence.
Automatiser la synchronisation Nécessite un cron job ou un déclencheur manuel.

Tests à Effectuer

1. Test de lAPI ETAPI

# Remplace TON_TOKEN par ton token ETAPI
curl -H "Authorization: TON_TOKEN" http://localhost:4292/etapi/notes

Résultat attendu : Une liste de notes au format JSON.

2. Test du Reverse Proxy

  • Ouvre https://trilium.bertha-cloud.fr dans un navigateur. Résultat attendu : Accès à Trilium sans erreur SSL.

3. Test des Scripts Python

# Initialiser l'arborescence
python3 init_trilium_architecture.py

# Créer une conversation
python3 create_conversation.py

# Générer un contexte
python3 generate_context.py > contexte.md

Résultat attendu :

  • Dossiers créés dans Trilium.
  • Note de conversation ajoutée.
  • Fichier contexte.md généré.

Prochaines Étapes avec Claude

1. Finaliser la Configuration de Trilium

  • Générer le token ETAPI dans Trilium (Options → ETAPI → Create new token).
  • Exécuter init_trilium_architecture.py pour créer larborescence.
  • Vérifier les IDs des dossiers dans trilium_folder_ids.json.

2. Tester les Scripts

  • Tester create_conversation.py avec une conversation factice.
  • Tester generate_context.py pour générer un contexte.
  • Corriger les erreurs si nécessaire (ex: permissions, token invalide).

3. Intégrer avec les LLM

  • Avant une session LLM : Exécuter generate_context.py pour récupérer le contexte.
  • Après une session LLM : Exécuter create_conversation.py pour ajouter la conversation à Trilium.
  • Automatiser avec un cron job ou un script wrapper.

4. Améliorations Futures

  • Ajouter un système de versioning pour les notes (ex: champ version).
  • Intégrer un LLM local (ex: Mistral 7B) pour résumer les contextes.
  • Créer un dashboard pour visualiser les projets et conversations.

Notes Techniques

1. Contraintes Synology

  • Commandes terminal : Toujours sur 1 seule ligne (contrainte DS218).
  • Docker : Utilise Container Manager 24.0.2-1606 (script communautaire 007revad).
  • synoinfo.conf : unique=synology_rtd1296_ds220j (à vérifier après les mises à jour DSM).

2. Sécurité

  • Token ETAPI : À conserver secrétisé (ne jamais le commiter dans Git).
  • Certificat SSL : Lets Encrypt géré via DSM (renouvellement automatique).
  • Accès externe : Vérifier que le port 443 est ouvert sur la Livebox.

3. Performances

  • Limite de tokens : Briefing ≤ 10K tokens pour éviter les coûts excessifs.
  • API Trilium : Éviter les requêtes trop fréquentes (limite à 10 notes par appel dans generate_context.py).

Liens Utiles


Calendrier Estimé

Étape Durée Priorité
Générer le token ETAPI 5 min
Exécuter init_trilium_architecture.py 10 min
Tester les scripts 30 min
Intégrer avec les LLM 1h
Automatiser la synchronisation 1h

Points à Discuter avec Claude

  1. Validation du token ETAPI : Confirmer que le token est bien généré et fonctionnel.
  2. Tests des scripts : Vérifier que init_trilium_architecture.py crée bien larborescence.
  3. Intégration LLM : Comment partager le contexte généré avec Claude/Le Chat ?
  4. Améliorations : Faut-il ajouter des champs spécifiques (ex: priorité, tags) aux notes ?
  5. Automatisation : Comment déclencher les scripts (cron, manuel, autre) ?