EN·ES·DE·PT·FR
⌘K

Gestion d'État & Mémoire

Persistance sauvegardée en SQLite avec mémoire de travail en mémoire vive, recherche sémantique via embeddings et récupération tri-hybride.

Mise à jour v0.9.x
La persistance principale des conversations utilise maintenant la table events. Les anciennes données de messages sont migrées vers events pendant la mise à jour.

Schéma de la Base de Données

Table messages

KeyTypeDefaultDescription
idTEXT PKClé primaire UUID
session_idTEXTIdentifiant de session (indexé)
roleTEXTuser, assistant ou tool
contentTEXTnullContenu texte du message
tool_call_idTEXTnullID pour les messages de résultat d'outil
tool_nameTEXTnullNom de l'outil pour les messages d'outil
tool_calls_jsonTEXTnullTableau JSON des appels d'outil
created_atTEXTHorodatage RFC3339
importanceREAL0.5Score d'importance (0.0–1.0)
embeddingBLOBnullEmbedding encodé en JSON Vec<f32>
embedding_errorTEXTnullMessage d'erreur si l'embedding a échoué
consolidated_atTEXTnullHorodatage de consolidation de la mémoire

Table facts

KeyTypeDefaultDescription
idINTEGER PKautoClé primaire auto-incrémentée
categoryTEXTCatégorie de regroupement
keyTEXTClé du fait (unique par catégorie)
valueTEXTContenu du fait
sourceTEXT""Qui l'a stocké : "agent" ou "user"
created_atTEXTHorodatage RFC3339
updated_atTEXTHorodatage RFC3339

Table macros

KeyTypeDefaultDescription
idINTEGER PKautoClé primaire auto-incrémentée
trigger_toolTEXTOutil qui déclenche la macro
trigger_args_patternTEXTnullModèle d'arguments à correspondre
next_toolTEXTOutil à chaîner ensuite
next_argsTEXTArguments pour l'outil chaîné
confidenceREAL0.0Score de confiance de la macro
used_countINTEGER0Nombre de fois que la macro a été utilisée
created_atTEXTHorodatage RFC3339
updated_atTEXTHorodatage RFC3339

Table scheduled_tasks

KeyTypeDefaultDescription
idTEXT PKClé primaire UUID
nameTEXTLibellé lisible de la tâche
cron_exprTEXTExpression cron à 5 champs calculée
original_scheduleTEXTEntrée utilisateur (langage naturel ou cron)
promptTEXTPrompt de l'agent à exécuter selon le planning
sourceTEXT"tool" (créé via l'outil) ou "config" (depuis config.toml)
is_oneshotINTEGER0Se déclenche une fois puis suppression automatique
is_pausedINTEGER0Les tâches en pause ne se déclenchent pas
is_trustedINTEGER0Les tâches trusted passent l'approbation terminal
next_run_atTEXTHorodatage RFC3339 de la prochaine exécution
last_run_atTEXTnullHorodatage RFC3339 de la dernière exécution
created_atTEXTHorodatage RFC3339
updated_atTEXTHorodatage RFC3339

Table terminal_allowed_prefixes

KeyTypeDefaultDescription
prefixTEXT PKPréfixe de commande persisté depuis les approbations "Allow Always"

Mémoire de Travail

Un HashMap<String, VecDeque<Message>> en mémoire par session, plafonné à working_memory_cap (par défaut 50). Évite les accès base de données pour l'historique de conversation récent.

Récupération Tri-Hybride

La méthode get_context combine trois stratégies de récupération :

StratégieSourceLimiteObjectif
RécenceN derniers messages10Continuité conversationnelle
Saillanceimportance ≥ 0.85Souvenirs critiques marqués
PertinenceSimilarité vectorielle > 0.655Recherche sémantique via embeddings

Les résultats sont dédupliqués par ID de message avant d'être inclus dans le contexte.

Service d'Embedding

  • Modèle : AllMiniLML6V2 (via fastembed)
  • S'exécute en arrière-plan — génère les embeddings des nouveaux messages après leur ajout
  • Active la branche pertinence de la récupération tri-hybride

Consolidation de la Mémoire

Une tâche en arrière-plan s'exécute toutes les consolidation_interval_hours (par défaut 6). Elle compresse les anciennes conversations en résumés à l'aide du modèle fast, réduisant le stockage et l'utilisation de la fenêtre de contexte.

Scoring d'Importance

RôleScore par Défaut
Message utilisateur0.5
Réponse assistant0.5
Sortie d'outil0.3
Message système0.1

Pool de Connexions

  • Pool SQLite : max 5 connexions
  • Mode journal : WAL (Write-Ahead Logging) pour les lectures concurrentes
  • Crée automatiquement la base de données et les tables si absentes