CommunityCodierung & Entwicklunggithub.com

grahama1970/assistant-lab

Selbstverbesserungs-Werkbank für /assistant. Alle Werkzeuge, die benötigt werden, um Modelle in einer kontinuierlichen Schleife zu diagnostizieren, trainieren, evaluieren und zu promoten. Der „warme Teich

Was ist assistant-lab?

`assistant-lab` ist eine Selbstverbesserungs-Werkbank für den `/assistant` Skill. Sie ermöglicht es dem `/assistant`, seine eigenen Modelle kontinuierlich zu diagnostizieren, zu trainieren, zu evaluieren und zu promoten. Das Skillset identifiziert die Grundursache von Leistungsproblemen (z.B. geringe Übereinstimmung mit einem Lehrer-Modell), trainiert dann automatisch kleinere, spezialisierte Modelle (wie GPTs mit QLoRA oder Klassifikatoren) und vergleicht sie mit einem hochwertigen Lehrer (Tier 2) wie `scillm`. Wenn ein Modell eine ausreichende Übereinstimmungsrate (z.B. ≥90%) erreicht, wird es in das Live-Registry des `/assistant` übernommen. Die nutzt einen intelligenten Entscheidungsbaum ('ModelFactory') und unterstützt sowohl lokales Training auf einer A5000 GPU als auch Remote-Training auf RunPod Flash für größere Modelle (3B-13B Parameter).

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht assistant-lab?

Selbstverbesserungs-Werkbank für /assistant. Dies ist das Labor, in dem /assistant Probleme diagnostiziert, neue Modelle trainiert, sie evaluiert und bestandene Modelle in das Live-Registry übernimmt.

Nicht zu verwechseln mit /monitor-skills – dem Observability-Daemon, der ALLE Skills auf Gesundheit, Drift und Sync-Probleme überwacht. /assistant-lab ist spezifisch die Selbstverbesserungs-Werkzeugkiste.

Der Selbstverbesserungs-Kreislauf

/monitor-skills erkennt Problem    ← Observability
    ↓
/assistant-lab diagnostiziert Grundursache ← dieser Skill
    ↓
Schattenmodus: Lehrer (scillm) beschriftet Fluss in shadow.jsonl
    ↓
ModelFactory.auto_improve(task)
    ├─ liest Schattenübereinstimmungsrate
    ├─ >= 90%: Promoten → model_registry.json aktualisieren
    ├─ 80-90%: Plateau → /prompt-lab Neugestaltung
    ├─ 70-80%: Neu trainieren → /create-gpt oder /create-classifier
    └─ < 70%: Aggressiv neu trainieren + Architekturänderung
    ↓
/gpt-lab Benchmark oder /classifier-lab Evaluierung
    ↓ bestanden? → ins Live-Registry promoten
    ↓
/assistant verwendet das verbesserte Modell zur Inferenzzeit

Verfügbare Werkzeuge

WerkzeugZweckVerwendung
/create-gptQLoRA/SFT/GRPO GPT trainieren (Stufe 1.5)Übereinstimmung < 80% oder kein Modell vorhanden
/create-classifierDistilBERT/sklearn Klassifikator trainieren (Stufe 0.5)Textklassifikationsaufgaben
/create-regressorsklearn/XGB Regressor trainieren (Stufe 0.75)Kontinuierliche Vorhersageaufgaben
RunPod FlashServerloses GPU-Training via Python SDK (7B–70B)Modell zu groß für lokale A5000 — ersetzt /ops-runpod für Training
/gpt-labGPT gegen Lehrer-Baseline benchmarkenNach Training, vor Promotion
/classifier-labKlassifikator-Genauigkeit/F1 bewertenNach Klassifikator-Training
/prompt-labPrompts bei Plateauerkennung neugestaltenÜbereinstimmung bei 80-90% festgefahren
/scillmStufe 2 Lehrer — erstellt LabelsImmer (Lehrer ist Ground Truth)

Verwendung

CLI

# Diagnostiziere, was eine Aufgabe benötigt
./run.sh diagnose --task stress-test-grader

# Vollständiger autonomer Verbesserungskreislauf
./run.sh auto-improve --task stress-test-grader

# Spezifischen Modelltyp trainieren
./run.sh train --task stress-test-grader --type gpt
./run.sh train --task sparta-ambiguity --type classifier

# Ein Modell evaluieren
./run.sh evaluate --task stress-test-grader --type gpt

# Ein bestandenens Modell promoten (deaktiviert Schattenmodus)
./run.sh promote --task stress-test-grader --type gpt

# Lehrerlabels aus shadow.jsonl ernten
./run.sh harvest --task stress-test-grader --since 24h

# Schattenübereinstimmungsstatistiken für alle Aufgaben anzeigen
./run.sh status

# Vollständigen Selbsttest ausführen (Train → Eval → Promote-Zyklus auf Testdaten)
./run.sh self-test

Python-API

from assistant_lab import AssistantLab

lab = AssistantLab()

# Diagnose: Was braucht diese Aufgabe?
diagnosis = lab.diagnose("stress-test-grader")
# → {"has_gpt": False, "has_classifier": False, "shadow_agreement": 0.0, ...}

# Auto-Improve: Entscheiden + Trainieren + Evaluieren + Promoten
result = lab.auto_improve("stress-test-grader")
# → {"actions": ["trained gpt", "evaluated (passing=True)", "promoted"]}

# Manuelle Schritte
lab.train("stress-test-grader", model_type="gpt")
lab.evaluate("stress-test-grader", model_type="gpt")
lab.promote("stress-test-grader", model_type="gpt")

Modellfabrik

Die Kernmaschine ist ModelFactory (aus /common/model_factory.py). /assistant-lab kapselt sie mit CLI + Diagnose + Berichterstattung.

Schwellenwerte der Schattenübereinstimmung

ÜbereinstimmungsrateAktionBegründung
>= 90%PromotenSchüler stimmt zuverlässig mit Lehrer überein
80-90%/prompt-lab NeugestaltungPlateau — Prompts könnten die Grenze sein
70-80%Neu trainieren mit mehr LabelsMehr Daten helfen wahrscheinlich
< 70%Aggressiv neu trainierenArchitektur oder Basismodell ändern
< 50 StichprobenWartenNicht genug Daten für eine Entscheidung

Minimale Trainingsdaten (NICHT VERHANDELBAR)

Rufe NICHT /create-gpt train oder /create-classifier train mit unzureichenden Daten auf.

ModelltypMindeststichprobenRegel
GPT (QLoRA SFT)1.000+ insgesamt< 1.000 → bleibt auf Stufe 2 Lehrer
Klassifikator (sklearn/SetFit)200 pro Klassen_samples / n_classes >= 200
Regressor100+ insgesamtStandard sklearn-Richtlinie

Nachweis: sparta_stress_grading wurde auf 246 Stichproben trainiert → 33,7% Übereinstimmung. Das sind 4 Monate verschwendeter Schattenlabels, weil das Modell zu früh trainiert wurde. Erst sammeln, trainieren wenn bereit.

Trainingsdatenfluss

Stufe 2 Lehrer (scillm via Persona)
    ↓ Labels in shadow.jsonl gespeichert
    ↓
/assistant-lab harvest --task X
    ↓ Extrahiert Eingabe+Ausgabe-Paare
    ↓
/create-gpt train --task X --data labels.jsonl
    ↓ QLoRA auf Qwen2.5-1.5B (Standard)
    ↓
/gpt-lab benchmark --task X
    ↓ Vergleicht Schüler vs. Lehrer
    ↓
/assistant-lab promote --task X --type gpt
    ↓ Aktualisiert model_registry.json, shadow_mode=false

Remote-Training (RunPod Flash)

Für Modelle, die zu groß für die lokale RTX A5000 (24 GB VRAM, max ~1,7B mit LoRA) sind, verwendet assistant-lab RunPod Flash – das serverlose Python SDK ohne Docker, ohne SSH und ohne rsync-Overhead. Flash ersetzt /ops-runpod für alle Trainingspfade. /ops-runpod bleibt nur für persistente Inferenzserver erhalten.

Wann Flash verwenden

ModellgrößeLokale A5000Flash nötigGPU
0,5–1,7BLoRA passtNein./run.sh train (lokal)
3–7BPasst nichtJaB200 (bevorzugt) oder H200
8–13BUnmöglichJaB200 (bevorzugt) oder H200

Flash-GPU-Typen

GPUVRAMHinweise
B200192 GB HBM3eSchnellste; 3–5× H200 bei MoE / langem Kontext
H200192 GB HBM3Gute Verfügbarkeit; solide Basislinie

Abrechnung: Pay-per-Second, maximal 7 Tage Ausführungszeit pro Job.

Flash-Kostenschätzungen (ungefähr)

ModellgrößeGPUGeschätzte TrainingszeitGeschätzte Kosten
7B QLoRA SFTB200~1–2 Std.~$5–15
7B QLoRA SFTH200~2–3 Std.~$8–20
13B QLoRA SFTB200~2–4 Std.~$10–25
13B QLoRA SFTH200~3–5 Std.~$12–30

Befehle

# Schritt 1: Immer zuerst Kosten schätzen
./run.sh estimate --task taxonomy-assessor --target flash --gpu B200 --size 7B

# Schritt 2: Auf Flash B200 trainieren (erfordert --confirm zur Sicherheit)
./run.sh train --task taxonomy-assessor --target flash --gpu B200 --size 7B --confirm

# Auf Flash H200 trainieren
./run.sh train --task taxonomy-assessor --target flash --gpu H200 --size 13B --confirm

# Mit benutzerdefiniertem Basismodell
./run.sh train --task taxonomy-assessor --target flash --gpu B200 --size 8B \
  --base-model meta-llama/Llama-3.1-8B-Instruct --confirm

# Mit anderer Quantisierung
./run.sh train --task qra-validator --target flash --gpu B200 --size 7B \
  --quantize Q5_K_M --confirm

Flash-Trainingspipeline

estimate --target flash --gpu B200 --size 7B
    ↓
train --target flash --gpu B200 --confirm
    ├─ 1. Kostenschätzung + Budgetschranke
    ├─ 2. Flash serverloser Job übermittelt (Python SDK — kein Docker/SSH)
    ├─ 3. Dataset zum Flash-Arbeiter gestreamt
    ├─ 4. QLoRA / SFT Training läuft auf B200/H200 (192 GB VRAM)
    ├─ 5. Modellgewichte nach /mnt/storage12tb/models/ geholt
    ├─ 6. create-gpt export --quantize Q4_K_M (GGUF)
    └─ 7. Evaluieren + automatisch promoten wenn bestanden

Sicherheitssperren

  • Budgetobergrenze: --max-cost (Standard $15,00) blockiert Training, wenn Schätzung Grenzwert überschreitet
  • Bestätigung: Muss --confirm übergeben — ohne wird Kosten angezeigt und beendet
  • Automatischer Abbau: Flash-Job wird beim Beenden abgebrochen (auch bei Fehlern, via trap)
  • Metrikprotokollierung: Jeder Flash-Trainingslauf wird in lab_metrics.jsonl protokolliert

Integration mit dem Selbstverbesserungs-Kreislauf

Remote-trainierte Modelle integrieren sich in dieselbe Kaskade wie lokale Modelle:

Stufe 0:   Heuristik (kostenlos, sofort)
Stufe 0.5: Klassifikator (lokal, kostenlos)
Stufe 1.5: Lokales GPT ≤1,7B (create-gpt, kostenlos nach Training)
Stufe 1.5: Remote GPT 3-13B (train-remote, kostenlos nach Training)  ← NEU
Stufe 2:   scillm/DeepSeek V3 (Chutes, $0,12/1K Aufrufe)

Ein 7-13B Modell auf Stufe 1.5 kann Stufe 2 (Chutes) Eskalationen erheblich reduzieren, und damit potenziell seine Trainingskosten durch reduzierte Überschreitungen amortisieren.

Beziehung zu anderen Skills

/monitor-skills ──→ "Skill X ist nicht gesund"
                         ↓
/assistant-lab ──→ Diagnose → Trainieren → Evaluieren → Promoten
                         ↓
/assistant ──────→ Verwendet promoviertes Modell zur Inferenzzeit
  • /monitor-skills: Beobachtet ALLE Skills. Erkennt Probleme. Meldet Gesundheit.
  • /assistant-lab: Repariert die Modelle von /assistant. Trainiert, evaluiert, promoviert.
  • /assistant: Führt Inferenz durch. Verwendet Modelle, die das Labor produziert hat.

Vertrag

  • Eingabe: Aufgabenname + optionaler Modelltyp
  • Ausgabe: Diagnose, Trainingsergebnisse, Evaluierungsergebnisse, Promotionsstatus
  • Abhängigkeiten: model_factory.py (aus /common), create-*- und *-lab Fähigkeiten
  • Metriken: Hängt an ~/.pi/assistant/lab_metrics.jsonl an

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.

Verwandte Skills