skillopt-sleep

Par microsoft · skillopt

Validez et affinez les skills d'agent via des cycles de sommeil nocturnes avec des gates réservés. Encapsule le moteur SkillOpt-Sleep de Microsoft pour la stack OpenClaw/DeepSeek.

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

skillopt-sleep — Adaptation OpenClaw de Microsoft SkillOpt-Sleep

Une boucle d'auto-amélioration nocturne qui lit nos transcriptions de session, extrait les patterns de workflow récurrents, les rejoue avec les modifications de skill proposées, et valide les propositions sur un ensemble de test réservé. Seules les améliorations qui dépassent la baseline sont mises en attente pour adoption humaine.

Quand l'utiliser

  • Après la Weekly Skill Review d'Hermes (ou en remplacement)
  • Quand un skill est utilisé 10+ fois/semaine et pourrait être optimisé
  • Avant de promouvoir un nouveau skill de skill-proposals/ vers skills/
  • Quand un skill régresse en qualité observée

Ce qu'il fait (Un cycle)

harvest session transcripts  ->  mine recurring task patterns
                              ->  replay each pattern (current skill vs proposed)
                              ->  GATE: must improve held-out score
                              ->  stage proposal
                              ->  Ethan adopts (manual)

Aucune modification ne s'applique en live tant qu'Ethan n'adopte pas. Chaque adoption crée d'abord une sauvegarde.

Architecture

skills/skillopt-sleep/
├── SKILL.md                          # this file
├── config.json                       # engine config (backend, budgets, etc.)
├── run_sleep.py                      # entry point
└── skillopt_sleep_openclaw.py        # DeepSeek/Ollama backend

Le moteur lui-même se trouve à ~/.openclaw/workspace/SkillOpt/skillopt_sleep/ (cloné de microsoft/SkillOpt).

Utilisation

# Run one cycle with current config
cd ~/.openclaw/workspace/skills/skillopt-sleep
python3 run_sleep.py

# Dry run (report only, no staging)
python3 run_sleep.py --dry-run

# Use a pre-built task set (recommended for testing)
python3 run_sleep.py --tasks tests/research-cron-tasks.json

Planification

python3 slash_sleep.py schedule --hour 3 --minute 17
python3 slash_sleep.py unschedule
python3 slash_sleep.py unschedule --all

Installe une entrée cron nocturne utilisant le planificateur SkillOpt-Sleep partagé. C'est une alternative au script externe run_sleep_cron.sh.

Backends alternatifs

Bien qu'OpenClaw utilise par défaut openclaw-deepseek (DeepSeek V4 Pro + Ollama), le moteur partagé supporte aussi :

  • --backend mock — déterministe, aucun coût API (pour tester)
  • --backend claude — utilise Claude CLI
  • --backend codex — utilise Codex CLI
  • --backend copilot — utilise GitHub Copilot CLI

Ceux-ci peuvent être utilisés via le moteur directement (python -m skillopt_sleep).

Flags du moteur partagé

Lors de l'invocation directe du moteur, tous les flags standards sont disponibles :

  • --source codex / --source auto — harvest à partir des sessions Codex Desktop
  • --tasks-file PATH — utiliser un ensemble de tâches pré-construit
  • --target-skill-path PATH — cible SKILL.md explicite
  • --max-tasks N / --max-sessions N — limiter la charge
  • --progress — afficher la progression des phases
  • --json — sortie lisible par machine
  • --auto-adopt — auto-adopt si la gate réussit

Clés de configuration : preferences, gate_mode, gate_metric, dream_rollouts, recall_k, evolve_memory, evolve_skill.

Configuration (config.json)

Paramètres clés :

  • backend: "openclaw-deepseek" — notre backend personnalisé
  • model: "deepseek-v4-pro" — modèle optimiseur
  • edit_budget: 3 — max éditions bornées par nuit
  • gate_mode: "on" — validation-gated (rejette les régressions)
  • auto_adopt: false — nécessite qu'Ethan adopte manuellement
  • max_tasks_per_night: 12 — limite pour contrôler le coût

Estimation de coût

Par nuit : 12 tâches × (1 tentative + 1 juge + 1 réflexion) × ~$0,005/1K tokens × ~3K tokens/appel ≈ $0,50-2,00/nuit.

Sorties

  • Rapport : ~/.skillopt-sleep/state.json (totaux cumulés)
  • Mise en attente : ~/.skillopt-sleep/staging/<night>/
    • report.md — résumé lisible
    • best_skill.md — skill proposé
    • edits.json — liste d'éditions bornées
    • before.md / after.md — diffs

Ensembles de test réservés (Phase 2)

Situés à tests/<category>-tasks.json. Chaque tâche contient :

  • prompt — la tâche récurrente
  • reference — réponse gold en correspondance exacte
  • rubric — rubrique de score souple (0-1)
  • domain — research/devops/wiki/etc.

Actuellement en construction pour 3 catégories :

  • research-cron-output
  • devops-infrastructure-check
  • wiki-canonical-guide

Quand ne PAS l'utiliser

  • Pour un workflow ponctuel (pas un pattern récurrent)
  • Pendant une crise/incident (les humains doivent diriger)
  • Quand les transcriptions de session ont < 24h (pas assez de signal)
  • Pour les skills < 300 tokens (risque de sur-optimisation)

Skills similaires