grahama1970/assistant-lab

Atelier d'auto-amélioration pour /assistant. Tous les outils nécessaires pour diagnostiquer, entraîner, évaluer et promouvoir des modèles dans une boucle continue. L'étang chaud où /assistant fait évoluer sa propre pile d'inférence.

Qu'est-ce que assistant-lab ?

Assistant-lab est un atelier d'auto-amélioration dédié à l'agent /assistant. Il permet de diagnostiquer les problèmes de performance, d'entraîner de nouveaux modèles (GPT, classifieurs, régresseurs), de les évaluer par rapport à un enseignant de référence (scillm), et de promouvoir les modèles réussis dans un registre en direct. La boucle d'amélioration est guidée par des seuils de taux d'accord : au-dessus de 90 %, le modèle est promu ; entre 80 et 90 %, les invites sont repensées ; entre 70 et 80 %, un réentraînement est déclenché ; en dessous de 70 %, un changement d'architecture est imposé. Les entraînements peuvent être effectués localement sur une RTX A5000 pour les modèles jusqu'à 1,7B, ou à distance via RunPod Flash (GPU B200/H200) pour les modèles de 3 à 13B, avec des garde-fous de coût et de confirmation. L'atelier s'intègre avec /monitor-skills pour détecter les problèmes en amont et avec /assistant pour utiliser les modèles promus en inférence.

Compatible avec~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/assistant-lab

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait assistant-lab ?

Atelier d'auto-amélioration pour /assistant. C'est le laboratoire où /assistant diagnostique les problèmes, entraîne de nouveaux modèles, les évalue, et promeut les modèles réussis dans le registre en direct.

À ne pas confondre avec /monitor-skills qui est le démon d'observabilité qui surveille TOUTES les compétences pour la santé, la dérive et les problèmes de synchronisation. /assistant-lab est spécifiquement la boîte à outils d'auto-amélioration.

La Boucle d'Auto-Amélioration

/monitor-skills détecte un problème    ← observabilité
    ↓
/assistant-lab diagnostique la cause racine ← cette compétence
    ↓
Mode ombre : l'enseignant (scillm) étiquette les flux dans shadow.jsonl
    ↓
ModelFactory.auto_improve(tâche)
    ├─ lit le taux d'accord de l'ombre
    ├─ >= 90 % : promouvoir → mettre à jour model_registry.json
    ├─ 80-90 % : plateau → /prompt-lab reconception
    ├─ 70-80 % : réentraîner → /create-gpt ou /create-classifier
    └─ < 70 % : réentraînement agressif + changement d'architecture
    ↓
/gpt-lab benchmark ou /classifier-lab évaluation
    ↓ réussi ? → promouvoir dans le registre en direct
    ↓
/assistant utilise le modèle amélioré lors de l'inférence

Outils Disponibles

OutilObjectifQuand l'utiliser
/create-gptEntraîner QLoRA/SFT/GRPO GPT (Tier 1.5)Accord < 80 % ou aucun modèle existant
/create-classifierEntraîner un classifieur DistilBERT/sklearn (Tier 0.5)Tâches de classification de texte
/create-regressorEntraîner un régresseur sklearn/XGB (Tier 0.75)Tâches de prédiction continue
RunPod FlashEntraînement GPU serverless via SDK Python (7B–70B)Modèle trop grand pour A5000 local — remplace /ops-runpod pour l'entraînement
/gpt-labBenchmarker GPT par rapport à la référence de l'enseignantAprès l'entraînement, avant la promotion
/classifier-labÉvaluer la précision/F1 du classifieurAprès l'entraînement du classifieur
/prompt-labReconcevoir les invites lorsqu'un plateau est détectéAccord bloqué à 80-90 %
/scillmEnseignant Tier 2 — crée les étiquettesToujours (l'enseignant est la vérité terrain)

Utilisation

CLI

# Diagnostiquer ce dont une tâche a besoin
./run.sh diagnose --task stress-test-grader

# Boucle d'amélioration autonome complète
./run.sh auto-improve --task stress-test-grader

# Entraîner un type de modèle spécifique
./run.sh train --task stress-test-grader --type gpt
./run.sh train --task sparta-ambiguity --type classifier

# Évaluer un modèle
./run.sh evaluate --task stress-test-grader --type gpt

# Promouvoir un modèle réussi (désactive le mode ombre)
./run.sh promote --task stress-test-grader --type gpt

# Récolter les étiquettes de l'enseignant depuis shadow.jsonl
./run.sh harvest --task stress-test-grader --since 24h

# Afficher les statistiques d'accord de l'ombre pour toutes les tâches
./run.sh status

# Exécuter l'auto-test complet (cycle entraînement → évaluation → promotion sur données de test)
./run.sh self-test

API Python

from assistant_lab import AssistantLab

lab = AssistantLab()

# Diagnostiquer : de quoi cette tâche a-t-elle besoin ?
diagnosis = lab.diagnose("stress-test-grader")
# → {"has_gpt": False, "has_classifier": False, "shadow_agreement": 0.0, ...}

# Auto-amélioration : décider + entraîner + évaluer + promouvoir
result = lab.auto_improve("stress-test-grader")
# → {"actions": ["trained gpt", "evaluated (passing=True)", "promoted"]}

# Étapes manuelles
lab.train("stress-test-grader", model_type="gpt")
lab.evaluate("stress-test-grader", model_type="gpt")
lab.promote("stress-test-grader", model_type="gpt")

Fabrique de Modèles

Le moteur principal est ModelFactory (depuis /common/model_factory.py). /assistant-lab l'enveloppe avec CLI + diagnostics + rapports.

Seuils d'Accord de l'Ombre

Taux d'AccordActionJustification
>= 90 %PromouvoirL'élève correspond de manière fiable à l'enseignant
80-90 %/prompt-lab reconceptionPlateau — les invites peuvent être le plafond
70-80 %Réentraîner avec plus d'étiquettesPlus de données aident probablement
< 70 %Réentraînement agressifChanger d'architecture ou de modèle de base
< 50 échantillonsAttendrePas assez de données pour décider

Données d'Entraînement Minimales (NON NÉGOCIABLES)

N'appelez PAS /create-gpt train ou /create-classifier train avec des données insuffisantes.

Type de ModèleÉchantillons MinimauxRègle
GPT (QLoRA SFT)1 000+ total< 1 000 → reste à l'enseignant Tier 2
Classifieur (sklearn/SetFit)200 par classen_échantillons / n_classes >= 200
Régresseur100+ totalDirective sklearn standard

Preuve : sparta_stress_grading a été entraîné sur 246 échantillons → 33,7 % d'accord. Ce sont 4 mois d'étiquettes d'ombre gaspillés parce que le modèle a été entraîné trop tôt. Collectez d'abord, entraînez quand vous êtes prêt.

Flux de Données d'Entraînement

Enseignant Tier 2 (scillm via persona)
    ↓ étiquettes sauvegardées dans shadow.jsonl
    ↓
/assistant-lab harvest --task X
    ↓ extrait les paires entrée+sortie
    ↓
/create-gpt train --task X --data labels.jsonl
    ↓ QLoRA sur Qwen2.5-1.5B (par défaut)
    ↓
/gpt-lab benchmark --task X
    ↓ compare l'élève vs l'enseignant
    ↓
/assistant-lab promote --task X --type gpt
    ↓ met à jour model_registry.json, shadow_mode=false

Entraînement à Distance (RunPod Flash)

Pour les modèles trop grands pour la RTX A5000 locale (24 Go VRAM, max ~1,7B avec LoRA), assistant-lab utilise RunPod Flash — le SDK Python serverless sans Docker, sans SSH et sans surcharge rsync. Flash remplace /ops-runpod pour tous les chemins d'entraînement. /ops-runpod est conservé uniquement pour les serveurs d'inférence persistants.

Quand Utiliser Flash

Taille du ModèleA5000 LocalFlash NécessaireGPU
0,5–1,7BLoRA tientNon./run.sh train (local)
3–7BNe tient pasOuiB200 (préféré) ou H200
8–13BImpossibleOuiB200 (préféré) ou H200

Types de GPU Flash

GPUVRAMNotes
B200192 Go HBM3eLe plus rapide ; 3–5× H200 sur MoE / contexte long
H200192 Go HBM3Bonne disponibilité ; référence solide

Facturation : à la seconde, exécution maximale de 7 jours par tâche.

Estimations de coût Flash (approximatives)

Taille du ModèleGPUTemps d'Entraînement EstiméCoût Estimé
7B QLoRA SFTB200~1–2 h~5–15 $
7B QLoRA SFTH200~2–3 h~8–20 $
13B QLoRA SFTB200~2–4 h~10–25 $
13B QLoRA SFTH200~3–5 h~12–30 $

Commandes

# Étape 1 : Toujours estimer le coût d'abord
./run.sh estimate --task taxonomy-assessor --target flash --gpu B200 --size 7B

# Étape 2 : Entraîner sur Flash B200 (nécessite --confirm pour la sécurité)
./run.sh train --task taxonomy-assessor --target flash --gpu B200 --size 7B --confirm

# Entraîner sur Flash H200
./run.sh train --task taxonomy-assessor --target flash --gpu H200 --size 13B --confirm

# Avec un modèle de base personnalisé
./run.sh train --task taxonomy-assessor --target flash --gpu B200 --size 8B \
  --base-model meta-llama/Llama-3.1-8B-Instruct --confirm

# Avec une quantification différente
./run.sh train --task qra-validator --target flash --gpu B200 --size 7B \
  --quantize Q5_K_M --confirm

Pipeline d'Entraînement Flash

estimate --target flash --gpu B200 --size 7B
    ↓
train --target flash --gpu B200 --confirm
    ├─ 1. Estimation du coût + seuil budgétaire
    ├─ 2. Tâche Flash serverless soumise (SDK Python — pas de Docker/SSH)
    ├─ 3. Jeu de données diffusé vers le worker Flash
    ├─ 4. Entraînement QLoRA / SFT s'exécute sur B200/H200 (192 Go VRAM)
    ├─ 5. Poids du modèle récupérés dans /mnt/storage12tb/models/
    ├─ 6. create-gpt export --quantize Q4_K_M (GGUF)
    └─ 7. Évaluer + promouvoir automatiquement si réussi

Barrières de Sécurité

  • Plafond budgétaire : --max-cost (par défaut 15,00 $) bloque l'entraînement si l'estimation dépasse la limite
  • Confirmation : Doit passer --confirm — sans cela, affiche le coût et se termine
  • Arrêt automatique : La tâche Flash est annulée à la sortie (même en cas d'erreur, via trap)
  • Journalisation des métriques : Chaque exécution d'entraînement Flash est enregistrée dans lab_metrics.jsonl

Intégration avec la Boucle d'Auto-Amélioration

Les modèles entraînés à distance s'intègrent avec la même cascade que les modèles locaux :

Tier 0 :   Heuristique (gratuit, instantané)
Tier 0.5 : Classifieur (local, gratuit)
Tier 1.5 : GPT local ≤1,7B (create-gpt, gratuit après entraînement)
Tier 1.5 : GPT distant 3-13B (train-remote, gratuit après entraînement)  ← NOUVEAU
Tier 2 :   scillm/DeepSeek V3 (Chutes, 0,12 $ / 1K appels)

Un modèle 7-13B au Tier 1.5 peut réduire considérablement les escalades vers Tier 2 (Chutes), potentiellement en remboursant son coût d'entraînement grâce à la réduction des dépassements.

Relations avec les Autres Compétences

/monitor-skills ──→ "la compétence X est malsaine"
                         ↓
/assistant-lab ──→ diagnostiquer → entraîner → évaluer → promouvoir
                         ↓
/assistant ──────→ utilise le modèle promu lors de l'inférence
  • /monitor-skills : Observe TOUTES les compétences. Détecte les problèmes. Rapporte la santé.
  • /assistant-lab : Corrige les modèles de /assistant. Entraîne, évalue, promeut.
  • /assistant : Exécute l'inférence. Utilise les modèles que le laboratoire a produits.

Contrat

  • Entrée : Nom de la tâche + type de modèle optionnel
  • Sortie : Diagnostic, résultats d'entraînement, résultats d'évaluation, statut de promotion
  • Dépendances : model_factory.py (depuis /common), compétences create-* et *-lab
  • Métriques : Ajoute à ~/.pi/assistant/lab_metrics.jsonl

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

Skills associés