nemo-rl-session-memory

Par nvidia · skills

Gérez la mémoire de session de travail durable pour les agents de codage. À utiliser lorsqu'un utilisateur souhaite préserver ou restaurer le contexte d'un agent après des déconnexions, des redémarrages de VS Code, des travaux de longue durée, des transferts, ou toute session où un état important doit être écrit périodiquement dans le répertoire de session du dépôt. NE PAS utiliser pour : les questions simples, les tâches courtes, les commandes ponctuelles, le linting ou la revue de code.

npx skills add https://github.com/nvidia/skills --skill nemo-rl-session-memory

Mémoire de session

Conservez un enregistrement durable et lisible par l'humain de la session de travail actuelle afin qu'un autre agent puisse reprendre après une déconnexion avec une perte de contexte minimale.

Quand l'utiliser

Utilisez cette compétence quand :

  • L'utilisateur demande de préserver, récupérer, sauvegarder ou gérer la mémoire de l'agent.
  • Le travail est long, expérimental ou susceptible de s'étendre sur plusieurs déconnexions.
  • Vous êtes sur le point de faire des modifications non triviales, d'exécuter des tâches longues, de changer de branche ou de faire une pause pour une saisie utilisateur.
  • Vous reprenez dans un dépôt qui contient déjà des répertoires ./session/.

Répertoire de session

Créez un répertoire par session de travail :

mkdir -p session
date +%Y%m%d_%H%M%S
mkdir -p session/<session_date_time>

Utilisez l'heure locale de la machine. Réutilisez le même répertoire de session pour tous les points de contrôle de la même conversation, sauf si l'utilisateur démarre explicitement une nouvelle session.

Fichiers attendus :

  • session_state.md - objectif global, sous-tâche actuelle, compétences chargées, statut, plan, hypothèses, blocages et prochaines actions.
  • timeline.md - journal d'ajout unique des actions majeures, commandes, résultats et décisions.
  • files.md - fichiers inspectés, fichiers modifiés et pourquoi ils importent.
  • handoff.md - instructions de reprise concises pour l'agent suivant.

Ajoutez d'autres fichiers uniquement si utiles, comme experiments.tsv, review_notes.md ou journaux de commandes copiés.

Démarrer ou reprendre

Au démarrage d'une session :

  1. Vérifiez les répertoires de session existants :
ls -dt session/* 2>/dev/null | head
  1. Si l'utilisateur reprend du travail, lisez les fichiers session_state.md, timeline.md et handoff.md les plus récents et pertinents.
  2. S'il n'existe aucune session pertinente, créez un nouveau répertoire horodaté.
  3. Écrivez un session_state.md initial avec l'objectif global de l'utilisateur, la sous-tâche actuelle, les compétences chargées, le chemin du dépôt, la branche et les contraintes connues.

Ne traitez pas les notes de session comme la seule source de vérité. Vérifiez les affirmations importantes par rapport à l'état git, aux fichiers et à la sortie de commandes avant d'agir.

Rythme des points de contrôle

Écrivez un point de contrôle :

  • Après avoir rassemblé suffisamment de contexte pour former un plan.
  • Avant et après des modifications de code significatives.
  • Avant des commandes longues, des expériences, des changements de branche ou tout ce qui est difficile à reconstruire à partir de la conversation.
  • Quand l'utilisateur change de direction.
  • Avant la réponse finale si la session a un état significatif à reprendre.
  • Au minimum toutes les 30 minutes pendant un travail long actif.

Préférez mettre à jour les mêmes fichiers plutôt que de créer de nombreux petits fichiers de point de contrôle. Gardez l'enregistrement compact et facile à scanner.

Modèles de fichiers

session_state.md

# Session State

- Session: <session_date_time>
- Repo: <chemin absolu du dépôt>
- Branch: <nom de la branche>
- Started: <horodatage local>
- Updated: <horodatage local>

## Goal
<Objectif global stable de l'utilisateur en une ou deux phrases. Conservez-le à travers les ajustements de suivi, sauf si l'utilisateur le change explicitement.>

## Current Subtask
<Tâche immédiate ou demande d'ajustement actuellement traitée.>

## Loaded Skills
- `<skill-name>` - <pourquoi elle a été chargée et toute instruction importante à conserver.>

## Current Status
<Ce qui est vrai maintenant. Incluez le travail complété et le statut de vérification.>

## Plan
- [ ] <Prochaine étape concrète>
- [ ] <Prochaine étape concrète>

## Assumptions
- <Hypothèse et comment la vérifier si nécessaire.>

## Blockers
- <Blocage ou « Aucun connu ».>

timeline.md

# Timeline

## <horodatage local>
- User asked: <demande brève>
- Context gathered: <fichiers/commandes et résultat clé>
- Decision: <choix important et justification>
- Result: <modifications/tests/résultat>

files.md

# Files

## Inspected
- `<chemin>` - <pourquoi cela a importé>

## Changed
- `<chemin>` - <ce qui a changé et pourquoi>

## Generated
- `<chemin>` - <but>

handoff.md

# Handoff

## Resume From Here
<Un paragraphe résumant l'état actuel.>

## Next Actions
- <Action suivante la plus importante>
- <Vérification ou nettoyage encore nécessaire>

## Watch Outs
- <Risques, préférences utilisateur ou contraintes du dépôt que l'agent suivant doit conserver.>

Workflow de récupération

Lors de la reprise après une déconnexion :

  1. Trouvez le répertoire de session le plus récent probable.
  2. Lisez d'abord handoff.md, puis session_state.md, puis le timeline.md récent.
  3. Exécutez une vérification légère comme git status --short, git branch --show-current et des lectures de fichier ciblées.
  4. Continuez à partir de la dernière action vérifiée.
  5. Ajoutez une entrée de chronologie notant la récupération et tout écart trouvé.

Règles de qualité

  • Gardez les notes factuelles et concises. Les agents futurs ont besoin d'état, pas d'une transcription.
  • Enregistrez les résultats de commandes qui importent, en particulier les tests échoués ou la vérification ignorée.
  • Mentionnez les modifications non validées et si elles ont été faites par l'agent actuel ou pré-existantes.
  • Ne stockez pas de secrets, de tokens, d'identifiants privés ou de gros journaux dans les fichiers de session.
  • Si un fichier de session devient volumineux, résumez les anciens détails et gardez les dernières actions suivantes près du début de handoff.md.

Skills similaires