CommunityProgramación y desarrollogithub.com

grahama1970/assistant-lab

Banco de trabajo de auto-mejora para /assistant. Todas las herramientas necesarias para diagnosticar, entrenar, evaluar y promocionar modelos en un ciclo continuo. El

¿Qué es assistant-lab?

Este skill,` /assistant-lab` , es un banco de trabajo de auto-mejora diseñado específicamente para el agente `/assistant` . Su propósito es permitir un ciclo continuo de diagnóstico, entrenamiento, evaluación y promoción de modelos, todo dentro de un entorno autónomo. Es útil porque automatiza el proceso de mejora de modelos, reduciendo la dependencia de intervención manual y permitiendo que `/assistant` evolucione su propia pila de inferencia de manera continua. El skill soporta múltiples plataformas de entrenamiento, incluyendo entrenamiento local en GPUs como la RTX A5000 (para modelos de hasta 1.7B con LoRA) y entrenamiento remoto serverless en RunPod Flash (para modelos de 3B a 70B, usando GPUs B200 o H200). Funciona mediante un bucle de auto-mejora que monitorea la tasa de acuerdo entre un modelo estudiante y un profesor (scillm). Si el acuerdo es alto (>=90%), el modelo se promociona; si es bajo, se rediseñan los prompts, se reentrena el modelo con más datos, o se cambia la arquitectura. Incluye herramientas como `/create-gpt` , `/create-classifier` , `/gpt-lab` , y `/classifier-lab` , y gestiona todo el flujo de datos, desde la recolección de etiquetas hasta la promoción al registro en vivo.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace assistant-lab?

Banco de trabajo de auto-mejora para /assistant. Este es el laboratorio donde /assistant diagnostica problemas, entrena nuevos modelos, los evalúa y promociona los modelos exitosos al registro en vivo.

No debe confundirse con /monitor-skills , que es el demonio de observabilidad que vigila TODOS los skills para detectar problemas de salud, deriva y sincronización. /assistant-lab es específicamente la caja de herramientas de auto-mejora.

El Bucle de Auto-Mejora

/monitor-skills detecta un problema    ← observabilidad
    ↓
/assistant-lab diagnostica la causa raíz ← este skill
    ↓
Modo sombra: el profesor (scillm) etiqueta el flujo y lo guarda en shadow.jsonl
    ↓
ModelFactory.auto_improve(tarea)
    ├─ lee la tasa de acuerdo en sombra
    ├─ >= 90%: promocionar → actualizar model_registry.json
    ├─ 80-90%: meseta → /prompt-lab rediseñar
    ├─ 70-80%: reentrenar → /create-gpt o /create-classifier
    └─ < 70%: reentrenamiento agresivo + cambio de arquitectura
    ↓
/gpt-lab evaluar o /classifier-lab evaluar
    ↓ ¿aprobado? → promocionar al registro en vivo
    ↓
/assistant usa el modelo mejorado en tiempo de inferencia

Herramientas Disponibles

HerramientaPropósitoCuándo se usa
/create-gptEntrenar GPT con QLoRA/SFT/GRPO (Nivel 1.5)Acuerdo < 80% o no existe modelo
/create-classifierEntrenar clasificador DistilBERT/sklearn (Nivel 0.5)Tareas de clasificación de texto
/create-regressorEntrenar regresor sklearn/XGB (Nivel 0.75)Tareas de predicción continua
RunPod FlashEntrenamiento GPU serverless mediante SDK Python (7B–70B)El modelo es demasiado grande para la A5000 local — reemplaza /ops-runpod para entrenamiento
/gpt-labEvaluar GPT contra la línea base del profesorDespués del entrenamiento, antes de la promoción
/classifier-labEvaluar precisión/F1 del clasificadorDespués del entrenamiento del clasificador
/prompt-labRediseñar prompts cuando se detecta una mesetaAcuerdo estancado en 80-90%
/scillmProfesor de Nivel 2 — crea etiquetasSiempre (el profesor es la verdad absoluta)

Uso

CLI

# Diagnosticar qué necesita una tarea
./run.sh diagnose --task stress-test-grader

# Bucle de auto-mejora completo y autónomo
./run.sh auto-improve --task stress-test-grader

# Entrenar un tipo de modelo específico
./run.sh train --task stress-test-grader --type gpt
./run.sh train --task sparta-ambiguity --type classifier

# Evaluar un modelo
./run.sh evaluate --task stress-test-grader --type gpt

# Promocionar un modelo aprobado (desactiva el modo sombra)
./run.sh promote --task stress-test-grader --type gpt

# Cosechar etiquetas del profesor desde shadow.jsonl
./run.sh harvest --task stress-test-grader --since 24h

# Mostrar estadísticas de acuerdo en sombra para todas las tareas
./run.sh status

# Ejecutar autoevaluación completa (ciclo entrenar → evaluar → promocionar en datos de prueba)
./run.sh self-test

API de Python

from assistant_lab import AssistantLab

lab = AssistantLab()

# Diagnosticar: ¿qué necesita esta tarea?
diagnosis = lab.diagnose("stress-test-grader")
# → {"has_gpt": False, "has_classifier": False, "shadow_agreement": 0.0, ...}

# Auto-mejorar: decidir + entrenar + evaluar + promocionar
result = lab.auto_improve("stress-test-grader")
# → {"actions": ["trained gpt", "evaluated (passing=True)", "promoted"]}

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

Fábrica de Modelos

El motor principal es ModelFactory (de /common/model_factory.py). /assistant-lab lo envuelve con CLI + diagnósticos + informes.

Umbrales de Acuerdo en Sombra

Tasa de AcuerdoAcciónJustificación
>= 90%PromocionarEl estudiante coincide de forma fiable con el profesor
80-90%/prompt-lab rediseñarMeseta — los prompts pueden ser el límite
70-80%Reentrenar con más etiquetasMás datos probablemente ayuden
< 70%Reentrenamiento agresivoCambiar la arquitectura o el modelo base
< 50 muestrasEsperarNo hay suficientes datos para decidir

Datos Mínimos de Entrenamiento (NO NEGOCIABLE)

NO llames a /create-gpt train ni a /create-classifier train con datos insuficientes.

Tipo de ModeloMínimo de MuestrasRegla
GPT (QLoRA SFT)1,000+ en total< 1,000 → se queda en el profesor de Nivel 2
Clasificador (sklearn/SetFit)200 por clasen_samples / n_classes >= 200
Regresor100+ en totalGuía estándar de sklearn

Evidencia: sparta_stress_grading se entrenó con 246 muestras → 33.7% de acuerdo. Eso son 4 meses de etiquetas en sombra desperdiciadas porque el modelo se entrenó demasiado pronto. Recolecta primero, entrena cuando estés listo.

Flujo de Datos de Entrenamiento

Profesor de Nivel 2 (scillm a través de persona)
    ↓ etiquetas guardadas en shadow.jsonl
    ↓
/assistant-lab harvest --task X
    ↓ extrae pares de entrada+salida
    ↓
/create-gpt train --task X --data labels.jsonl
    ↓ QLoRA en Qwen2.5-1.5B (por defecto)
    ↓
/gpt-lab benchmark --task X
    ↓ comparar estudiante vs profesor
    ↓
/assistant-lab promote --task X --type gpt
    ↓ actualiza model_registry.json, shadow_mode=false

Entrenamiento Remoto (RunPod Flash)

Para modelos demasiado grandes para la RTX A5000 local (24GB de VRAM, máx. ~1.7B con LoRA), assistant-lab usa RunPod Flash — el SDK Python serverless sin Docker, sin SSH y sin sobrecarga de rsync. Flash reemplaza /ops-runpod para todos los caminos de entrenamiento. /ops-runpod se conserva solo para servidores de inferencia persistentes.

Cuándo Usar Flash

Tamaño del ModeloA5000 Local¿Flash Necesario?GPU
0.5–1.7BLoRa cabeNo./run.sh train (local)
3–7BNo cabeSíB200 (preferida) o H200
8–13BImposibleSíB200 (preferida) o H200

Tipos de GPU Flash

GPUVRAMNotas
B200192 GB HBM3eLa más rápida; 3–5× H200 en MoE / contexto largo
H200192 GB HBM3Buena disponibilidad; línea base sólida

Facturación: pago por segundo, máximo de 7 días de ejecución por trabajo.

Costos estimados de Flash (aproximados)

Tamaño del ModeloGPUTiempo de Entrenamiento Est.Costo Est.
7B QLoRA SFTB200~1–2 hrs~ $5–15
7B QLoRA SFTH200~2–3 hrs~ $8–20
13B QLoRA SFTB200~2–4 hrs~ $10–25
13B QLoRA SFTH200~3–5 hrs~ $12–30

Comandos

# Paso 1: Siempre estimar el costo primero
./run.sh estimate --task taxonomy-assessor --target flash --gpu B200 --size 7B

# Paso 2: Entrenar en Flash B200 (requiere --confirm por seguridad)
./run.sh train --task taxonomy-assessor --target flash --gpu B200 --size 7B --confirm

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

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

# Con cuantización diferente
./run.sh train --task qra-validator --target flash --gpu B200 --size 7B \
  --quantize Q5_K_M --confirm

Pipeline de Entrenamiento Flash

estimate --target flash --gpu B200 --size 7B
    ↓
train --target flash --gpu B200 --confirm
    ├─ 1. Estimación de costos + límite de presupuesto
    ├─ 2. Trabajo serverless Flash enviado (SDK Python — sin Docker/SSH)
    ├─ 3. Dataset transmitido al trabajador Flash
    ├─ 4. Entrenamiento QLoRA / SFT se ejecuta en B200/H200 (192GB VRAM)
    ├─ 5. Pesos del modelo descargados a /mnt/storage12tb/models/
    ├─ 6. create-gpt export --quantize Q4_K_M (GGUF)
    └─ 7. Evaluar + auto-promocionar si aprueba

Barreras de Seguridad

  • Límite de presupuesto: --max-cost (por defecto $15.00) bloquea el entrenamiento si la estimación excede el límite
  • Confirmación: Debe pasar --confirm — sin él, muestra el costo y sale
  • Auto-destrucción: El trabajo Flash se cancela al salir (incluso en caso de error, mediante trap)
  • Registro de métricas: Cada entrenamiento Flash se registra en lab_metrics.jsonl

Integración con el Bucle de Auto-Mejora

Los modelos entrenados de forma remota se integran con la misma cascada que los modelos locales:

Nivel 0:   Heurístico (gratuito, instantáneo)
Nivel 0.5: Clasificador (local, gratuito)
Nivel 1.5: GPT local ≤1.7B (create-gpt, gratuito después del entrenamiento)
Nivel 1.5: GPT remoto 3-13B (train-remote, gratuito después del entrenamiento)  ← NUEVO
Nivel 2:   scillm/DeepSeek V3 (Chutes, $0.12/1K llamadas)

Un modelo de 7-13B en el Nivel 1.5 puede reducir significativamente las escalaciones al Nivel 2 (Chutes), potencialmente pagando su costo de entrenamiento con la reducción de excedentes.

Relación con Otros Skills

/monitor-skills ──→ "el skill X no está saludable"
                         ↓
/assistant-lab ──→ diagnosticar → entrenar → evaluar → promocionar
                         ↓
/assistant ──────→ usa el modelo promocionado en tiempo de inferencia
  • /monitor-skills : Observa TODOS los skills. Detecta problemas. Reporta salud.
  • /assistant-lab : Arregla los modelos de /assistant. Entrena, evalúa, promociona.
  • /assistant : Ejecuta inferencia. Usa cualquier modelo que el laboratorio haya producido.

Contrato

  • Entrada: Nombre de la tarea + tipo de modelo opcional
  • Salida: Diagnóstico, resultados de entrenamiento, resultados de evaluación, estado de promoción
  • Dependencias: model_factory.py (de /common), skills create-* y *-lab
  • Métricas: Agrega a ~/.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 relacionados