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

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

  1. Détection, Surveiller l'utilisation du contexte (déclencheur par défaut : 80 % de la fenêtre de contexte)
  2. Résumé, Les anciens messages sont résumés en une entrée de compaction
  3. Nouvelle session, Une session fraîche commence avec le résumé injecté en haut
  4. Préservation, Les anciennes transcriptions sont préservées pour l'historique mais ne sont plus chargées dans le contexte

Configuration

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 :

Recherche vectorielle

Neotask prend en charge la recherche par similarité vectorielle sur la mémoire des agents :

  1. Indexation, Les fichiers de mémoire sont indexés à l'aide d'embeddings
  2. Recherche, Les agents interrogent la mémoire en langage naturel (« Qu'a dit l'utilisateur sur ses préférences API ? »)
  3. 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é :

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 :

Nettoyage