Aller au contenu principal

Sessions

Une session conserve messages, activité d’outils, clarifications, rôle, modèle et état des branches. Elle appartient au profil sélectionné. Fermer Dashboard ou la TUI ne supprime pas son historique.

L’historique réside dans state.db et les objets référencés. La mémoire personnelle intersessions est distincte : memory/USER.md et memory/MEMORY.md. Un résumé de contexte n’est pas une nouvelle entrée mémoire.

Démarrer et reprendre​

Dans Dashboard, choisissez New session ou une conversation existante. Chats contient les conversations ordinaires ; Background, les travaux planifiés, délégués et résidents. Les anciennes sessions et messages se chargent par pages.

Dans la TUI, lancez anyy, puis /new ou /sessions. Ouvrez directement une conversation connue :

anyy --resume SESSION_ID

Choisissez un rôle pour une nouvelle conversation :

anyy --role scribe
anyy chat --role scribe "Help me plan this article"

Une session reprise garde son rôle. --role ne peut être combiné avec --resume ou chat --session. Les ID sont résolus uniquement dans le profil sélectionné.

Envoyer un tour CLI​

anyy chat "Summarize my priorities"
anyy chat --session SESSION_ID --json "Add the new constraint"

anyy chat exige un Gateway actif. Il attend l’entrée acceptée d’origine et son exécution réelle, même si des tours ultérieurs réutilisent la session. --json inclut ID de session, soumission, exécution et passage de l’agent, résultat et réponse enregistrée. Une réussite ultérieure ne remplace pas un échec antérieur.

Suspension pour clarification, échec, interruption, entrée effacée et délai d’attente produisent un code de sortie non nul. Un délai ou annulation de l’appelant arrête l’attente, pas le travail accepté. Vérifiez la session avant de soumettre encore. Consultez Résultats CLI.

Messages en attente​

Chaque session a deux files indépendantes :

  • Orientation (steering) : lue au prochain point de contrôle de l’agent, sans annuler l’outil actif.
  • Suivi (follow-up) : attend la fin de la réponse actuelle.

Dashboard a un bouton Send unique. Pendant le travail, l’envoi ajoute un suivi au-dessus de l’éditeur. Chaque élément propose Steer, Edit et Delete. Steer le déplace vers la conversation en attente pour le prochain point de contrôle. Edit ne change que cet élément et garde ses pièces sauf retrait ; annuler laisse l’élément intact. Delete le retire. Une entrée déjà sélectionnée ne peut plus être modifiée/supprimée comme élément de file. Un conflit actualise la file en préservant le brouillon non envoyé. Consultez Chat Dashboard.

Dans la TUI occupée, Enter insère une orientation et Alt+Enter un suivi. La file montre d’abord les orientations. Alt+Up renvoie tous les textes et pièces en attente à l’éditeur sans arrêter le travail. Le texte revient avant le brouillon, séparé par des lignes vides. Seul l’accusé Gateway réussi retire l’appartenance à la file ; envoyer le brouillon révisé admet une nouvelle entrée.

Arrêt et retour à l’éditeur​

ActionTravail actifEntrées en attente
Dashboard EscapeArrête la réponse affichée à l’appuiConservées
TUI Ctrl+C pendant le travailArrête le travail actuel de sessionConservées
TUI Esc en diffusionRenvoie les entrées puis arrête le tour capturéRenvoyées à l’éditeur
TUI Alt+UpContinueRenvoyées à l’éditeur
TUI Esc pendant l’attente de nouvelle tentativeAnnule seulement cette attenteInchangées

Sélecteurs et fenêtres locales traitent Escape d’abord. Les accusés retardés d’arrêt Dashboard ou de retour TUI ne peuvent interrompre un tour ultérieur. L’interruption attend la stabilisation du travail capturé et préserve l’historique validé. Elle ne démarre pas automatiquement une invocation ; une demande ultérieure ou continuation explicite reprend le travail.

Contrôles API des files​

Les clients peuvent inspecter avec session.queue.peek/session.queue.list, récupérer les entrées retirées avec session.queue.clear et modifier les éléments en attente avec session.queue.steer, .update et .cancel. Retirer l’appartenance à la file préserve le corps enregistré, sans supprimer la transcription.

session.queue.modes lit ou définit indépendamment steering et follow_up à all ou one-at-a-time. Ces modes choisissent toutes les entrées admissibles ou une seule par point de contrôle, sans transformer orientation en suivi. Ce sont des contrôles RPC, sans commandes /queue ni réglages Dashboard.

Paramètres de modèle et d’outils​

Le sélecteur Dashboard et /provider, /model, /effort TUI contrôlent la session actuelle. Les valeurs du profil initialisent les nouvelles sessions. Reprise ou navigation restaure la sélection applicable ; si un modèle virtuel antérieur n’est plus enregistré, Anyy peut revenir au modèle de la dernière réponse physique.

Les rôles définissent identité et Soul, sans choisir noms d’outils ou mode Codemode. Utilisez les options CLI ou session.tools.configure pour la sélection. Une mise à jour explicite exige une session inactive sans travail en file/en admission ni résumé en cours. Les paramètres Tools/Codemode appartiennent au profil.

Recharger les ressources​

Le RPC session.reload actualise une session inactive depuis les paramètres/ressources actuels tout en gardant historique, stockage sélectionné, outils chargés et entrées en attente. Il n’arrête pas le travail et ne démarre pas de tour. Le chargement est ordonné ; une erreur n’implique pas l’annulation de tous les changements précédents. Aucun bouton Dashboard, commande TUI ou shell correspondant n’existe.

API des métadonnées d’objectif​

session.goal stocke un texte d’objectif facultatif et un état active ou paused dans les métadonnées. Les clients peuvent utiliser set, status, pause, resume et clear. Cela ne démarre/arrête aucune exécution, ne crée pas de planification et ne poursuit pas seul jusqu’à achèvement. C’est distinct des tâches personnelles. Dashboard/TUI n’exposent pas /goal et la CLI n’a pas de sous-commande goal.

Nouvelles tentatives et taille du contexte​

Les erreurs temporaires de modèle sont réessayées automatiquement par défaut, trois fois au maximum après la première requête. L’attente commence à deux secondes puis croît exponentiellement jusqu’à une minute. Ces paramètres de session sont partagés par le profil ; les tentatives de transport sont une autre couche. Pendant l’attente, Esc TUI n’annule qu’elle. Ctrl+C ou Escape Dashboard arrête le travail.

Compaction et résumés de branche partagent la règle du profil. Une opération garde son budget ; les appels ultérieurs lisent toujours les valeurs de transport actuelles. Désactiver les tentatives automatiques ne désactive pas les délais HTTP. Un résumé échoué, annulé ou tronqué n’est pas appliqué. Consultez Compaction pour récupération automatique et API manuelle.

/tree TUI ouvre l’arbre actuel à l’état inactif. Utilisez Haut/Bas, Entrée pour sélectionner, s pour basculer le résumé de la branche quittée et Échap pour annuler. Sélectionner un message utilisateur revient avant lui et renvoie son texte dans l’éditeur vide. Préservez le brouillon avant navigation pour recevoir ce texte. La navigation reste dans la session et ne lance aucune réponse. Les branches antérieures et voisines restent dans l’arbre.

API de bifurcation et suppression​

session.fork crée une conversation distincte depuis un point choisi en conservant historique et libellés de ce chemin. Bifurquer avant un message utilisateur peut retourner son texte pour révision sans le renvoyer. Le travail actif, les files et les droits d’envoi du canal ne sont pas copiés.

La bifurcation affecte aussi l’original : elle capture son travail actuel avant préparation. Une fois la nouvelle conversation enregistrée durablement, Anyy interrompt le travail capturé et attend sa stabilisation. Un arrêt retardé n’interrompt pas un tour suivant. Si la stabilisation échoue, la nouvelle conversation reste enregistrée ; une erreur ne signifie pas annulation de la bifurcation.

session.delete supprime une conversation en préservant l’historique encore référencé par une autre branche. Si le travail n’est pas terminé, il retourne un conflit sans l’arrêter puis supprimer automatiquement.

Bifurcation et suppression individuelle sont des capacités RPC publiques. Dashboard, TUI et CLI actuels n’ont pas ces actions. /tree navigue dans une conversation sans la bifurquer.

Dépannage​

ProblèmePoints à vérifier
Conversation absenteProfil sélectionné et onglet Chats/Background
/sessions ou /tree indisponibleAttendez la fin du tour ou arrêtez-le
Correction destinée au travail en coursDashboard : envoyez puis Steer ; TUI occupée : Enter
Message en file non modifiableIl peut déjà être sélectionné ; inspectez l’historique actualisé
Chat CLI sans connexionLancez anyy gateway start pour ce profil
Ancien rôle/modèle après repriseLa session possède cet état ; choisissez le modèle ou créez une session pour les nouveaux défauts

La sauvegarde du profil inclut les sessions durables. Gardez une session par sujet suivi et démarrez-en une nouvelle quand l’ancien contexte ne sert plus.