skillopt-sleep

Par microsoft · skillopt

À utiliser lorsque l'utilisateur souhaite que son agent Claude s'améliore à partir des usages passés, demande un cycle « sleep » ou « dream » nocturne/hors ligne, une consolidation de mémoire/compétences, ou dit des choses comme « rends mon agent meilleur au fil de l'utilisation », « passe en revue mes sessions passées », « apprends mes préférences », « consolide ce que tu as appris », « lance le cycle sleep », ou souhaite planifier une auto-optimisation hors ligne. Pilote le moteur skillopt_sleep : collecte des sessions passées -> extraction des tâches récurrentes -> rejeu hors ligne -> consolidation validée de CLAUDE.md/SKILL.md derrière une gate de validation.

npx skills add https://github.com/microsoft/skillopt --skill skillopt-sleep

SkillOpt-Sleep : auto-évolution hors ligne pour un agent Claude local

SkillOpt-Sleep offre à l'agent de l'utilisateur un cycle de sommeil. Pendant que l'utilisateur est hors ligne (par exemple la nuit), il examine ses vraies sessions Claude Code passées, réexécute les tâches récurrentes sur son propre budget API, et consolide ce qu'il apprend en mémoire (CLAUDE.md) et en compétences (SKILL.md) — mais ne conserve que les modifications qui passent une validation réservée, et seulement après que l'utilisateur les ait adoptées. L'agent devient mesurément meilleur pour ce travail récurrent de l'utilisateur, sans entraînement des poids du modèle. C'est l'équivalent au moment du déploiement de l'entraînement : expérience court terme → compétence long terme.

Il synthétise trois idées :

  • SkillOpt — le document compétence/mémoire est du texte entraînable ; modifications bornées add/delete/replace ; acceptées seulement via une porte réservée ; les modifications rejetées deviennent un retour négatif.
  • Claude Dreams — consolidation hors ligne qui lit les sessions passées et reconstruit la mémoire (dédupplication/fusion/résolution) ; l'entrée n'est jamais mutée ; la sortie est examinée puis adoptée.
  • Agent sleep — la rejeu périodique hors ligne transforme les épisodes en compétence durable.

Quand utiliser cette compétence

Déclenchez quand l'utilisateur veut :

  • « faire apprendre mon agent de comment je l'utilise » / « devenir meilleur au fur et à mesure que je l'utilise » / « mémoriser mes préférences entre les sessions »
  • une exécution nightly/programmée ou à la demande d'auto-amélioration / rêve / sommeil hors ligne
  • examiner les sessions/trajectoires passées et distiller les tâches récurrentes
  • consolider les retours dans CLAUDE.md ou une compétence gérée
  • programmer le cycle (cron) ou adopter une proposition échelonnée

Le cycle (six étapes)

  1. Harvest — lire ~/.claude/projects/*/<session>.jsonl + ~/.claude/history.jsonl (LECTURE SEULE) → résumés de session.
  2. Mine — résumés → TaskRecords (intentions récurrentes + étiquettes de résultat + références vérifiables si possible).
  3. Replay — réexécuter les tâches hors ligne sous la compétence+mémoire courante → scores (hard, soft).
  4. Consolidate — réfléchir aux échecs → proposer des modifications bornées → porte sur une tranche réservée ; accepter seulement si cela améliore strictement.
  5. Stage — écrire proposed_CLAUDE.md, proposed_SKILL.md, un diff et report.md dans <project>/.skillopt-sleep/staging/<date>/. Rien ne change en direct.
  6. Adopt — explicite (ou opt-in auto) : copier les fichiers échelonnés sur les fichiers directs, en sauvegardant d'abord.

Comment l'utiliser

Préférez la commande /skillopt-sleep. Sous le capot, elle appelle le runner fourni :

"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" status                       # ce qui s'est passé
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" dry-run --project "$(pwd)"    # aperçu sûr
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" run --project "$(pwd)"        # cycle complet, prépare une proposition
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" adopt --project "$(pwd)"      # appliquer la proposition préparée (avec sauvegarde)
  • Le backend par défaut est mock (déterministe, aucune dépense API) — bon pour tester le plomberie.
  • Ajoutez --backend claude ou --backend codex pour dépenser le vrai budget de l'utilisateur pour une amélioration authentique.
  • La portée par défaut est le projet appelé ; --scope all récolte tous les projets.

Programmation

"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" schedule --project "$(pwd)" --hour 3 --minute 17
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" unschedule --project "$(pwd)"

Installe une entrée cron nightly. unschedule --all supprime chaque entrée gérée.

Tous les drapeaux CLI

Drapeau Défaut Description
--project PATH répertoire courant Répertoire de projet à évoluer
--scope all\|invoked invoked Portée de la récolte
--backend mock\|claude\|codex\|copilot mock Backend de rejeu (mock = aucune dépense API)
--model NAME défaut du backend Remplacer le modèle utilisé pour le rejeu
--source claude\|codex\|auto claude Source de transcription
--lookback-hours N 72 Fenêtre de récolte
--max-sessions N illimité Plafonner les sessions récoltées
--max-tasks N 40 Plafonner les tâches exploitées
--target-skill-path PATH auto SKILL.md explicite à évoluer
--tasks-file PATH JSON TaskRecord examiné (sauter la récolte)
--progress off Imprimer la progression de phase sur stderr
--auto-adopt off Auto-adopter si la porte passe
--edit-budget N 4 Max modifications bornées par nuit
--json off Sortie JSON lisible par machine

Clés de config (~/.skillopt-sleep/config.json)

Au-delà des drapeaux CLI, le comportement avancé est contrôlé via config :

  • preferences — règles de maison en texte libre injectées dans l'étape de réflexion de l'optimiseur (ex : « Toujours utiliser async/await », « Réponses en \boxed{}»).
  • gate_modeon (défaut, validation-gated) ou off (greedy, accepter tous les modifications).
  • gate_metrichard, soft, ou mixed (défaut). Contrôle comment la porte réservée noте.
  • dream_rollouts — >1 active le rejeu multi-contrastif par tâche.
  • recall_k — >0 rappelle K tâches passées similaires dans le rêve (mémoire long terme).
  • evolve_memory / evolve_skill — bascule indépendamment la consolidation CLAUDE.md vs SKILL.md.

Consolidation de mémoire

Le cycle de sommeil peut consolider les deux :

  • SKILL.md — le fichier compétence géré (modifications bornées : add/delete/replace)
  • CLAUDE.md — la mémoire du projet (mêmes modifications bornées)

Les deux sont gatées par le même score de validation réservé. Définissez evolve_memory: false pour consolider seulement les compétences, ou evolve_skill: false pour seulement la mémoire.

Règles strictes

  • Ne jamais éditer manuellement le CLAUDE.md / SKILL.md de l'utilisateur comme partie de cette compétence. Seule l'action adopt change les fichiers directs, et elle les sauvegarde d'abord.
  • La récolte est en lecture seule. Le rejeu mock n'a pas d'effets secondaires.
  • Toujours montrer à l'utilisateur la baseline réservée → score candidat et les modifications proposées exactes avant de suggérer l'adoption. Preuve avant adoption.
  • Si demandé si cela aide vraiment, exécutez python -m skillopt_sleep.experiments.run_experiment --persona researcher --json — une démo déterministe qui prouve l'amélioration réservée et que la porte bloque les modifications nuisibles.

Valider / démo

# preuve déterministe (aucune API) : le score réservé monte, la porte bloque les régressions
python -m skillopt_sleep.experiments.run_experiment --persona researcher --assert-improves
python -m skillopt_sleep.experiments.run_experiment --persona programmer  --assert-improves

Voir la section guide SkillOpt-Sleep pour la sortie enregistrée et docs/superpowers/specs/2026-06-07-skillopt-sleep-claude-code-plugin-design.md pour la conception complète.

Skills similaires