Sessions et mémoire
Sessions
Fonctionnement des sessions
Chaque conversation avec un agent se déroule dans une session. Les sessions sont identifiées par des clés qui encodent le contexte, quel agent, quel canal, quel chat.
Les sessions maintiennent une transcription complète (JSONL en ajout seul) de tous les messages, appels d'outils et résultats. Cette transcription est ce qui donne aux agents le contexte sur la conversation en cours.
Clés de session
Les sessions sont acheminées automatiquement en fonction du contexte :
| Modèle | Signification |
|---|---|
agent:main:main |
Conversation directe principale |
agent:<id>:<channel>:group:<id> |
Chat de groupe sur un canal spécifique |
agent:<id>:<channel>:channel:<id> |
Conversation de canal/salle |
cron:<jobId> |
Exécution de tâche planifiée |
hook:<uuid> |
Exécution déclenchée par webhook |
Cycle de vie des sessions
- Réinitialisation quotidienne, Les sessions se réinitialisent automatiquement à une heure configurable (4h du matin locale par défaut). Cela crée un contexte de conversation frais chaque jour tout en préservant l'historique.
- Expiration par inactivité, Les sessions qui n'ont pas été actives pendant une période configurable peuvent se réinitialiser automatiquement.
- Réinitialisation manuelle, Commencez à nouveau à tout moment avec une commande
/newou/reset.
Suivi des jetons
Les sessions suivent l'utilisation cumulée des jetons (entrée, sortie, lecture de cache, écriture de cache) pour la surveillance des coûts et la gestion de la fenêtre de contexte.
Compaction
Qu'est-ce que la compaction ?
Lorsqu'une conversation approche de la limite de fenêtre de contexte du modèle, Neotask la compacte, en résumant les anciens messages en un aperçu condensé et en commençant une nouvelle session avec ce résumé plus les messages récents.
Fonctionnement
- Détection, Surveiller l'utilisation du contexte (déclencheur par défaut : 80 % de la fenêtre de contexte)
- Résumé, Les anciens messages sont résumés en une entrée de compaction
- Nouvelle session, Une session fraîche commence avec le résumé injecté en haut
- Préservation, Les anciennes transcriptions sont préservées pour l'historique mais ne sont plus chargées dans le contexte
Configuration
- Activé/désactivé, Basculer la compaction automatique
- Seuil, Pourcentage de la fenêtre de contexte qui déclenche la compaction (80 % par défaut)
- Messages minimum, Ne pas compacter s'il y a moins de N messages
Compaction manuelle
Vous pouvez déclencher la compaction manuellement à tout moment avec la commande /compact. C'est utile lorsque vous souhaitez réinitialiser le contexte sans perdre d'informations importantes.
Mémoire
Mémoire des agents
Chaque agent dispose d'un système de mémoire pour persister des informations importantes entre les sessions :
- MEMORY.md, Un fichier markdown dans l'espace de travail de l'agent où des faits importants, des préférences et du contexte sont stockés
- Répertoire de mémoire, Fichiers supplémentaires dans
memory/pour les connaissances structurées
Recherche vectorielle
Neotask prend en charge la recherche par similarité vectorielle sur la mémoire des agents :
- Indexation, Les fichiers de mémoire sont indexés à l'aide d'embeddings
- Recherche, Les agents interrogent la mémoire en langage naturel (« Qu'a dit l'utilisateur sur ses préférences API ? »)
- Rappel, Les souvenirs pertinents sont retournés classés par similarité
Plugin de mémoire (LanceDB)
Le plugin de mémoire LanceDB fournit un stockage vectoriel avancé :
- Base de données vectorielle persistante
- Taille de chunk et chevauchement configurables
- Recherche de similarité efficace
- Ré-indexation automatique lorsque les fichiers de mémoire changent
Rappel automatique
Au démarrage de la session, les souvenirs pertinents peuvent être automatiquement rappelés et injectés dans le contexte de l'agent. Cela donne aux agents de la continuité entre les sessions sans charger les historiques de conversation entiers.
Persistance des sessions
Toutes les données de session sont stockées localement :
- Métadonnées de session,
sessions.jsonsuit les sessions actives, la dernière activité, les comptages de jetons et la configuration - Transcriptions, Transcriptions individuelles de sessions stockées sous forme de fichiers
.jsonl - Récupération, Les sessions survivent aux redémarrages du Gateway sans perte de données
Nettoyage
- Les sessions qui n'ont pas été accédées pendant une période configurable (30 jours par défaut) sont éligibles au nettoyage
- La gestion manuelle des sessions est disponible via l'interface utilisateur ou l'API
- Les transcriptions compactées sont archivées mais peuvent être consultées