grahama1970/assistant-lab

Bancada de autoaperfeiçoamento para /assistant. Todas as ferramentas necessárias para diagnosticar, treinar, avaliar e promover modelos em um ciclo contínuo. O 'tanque morno' onde /assistant evolui sua própria pilha de inferência.

O que é assistant-lab?

O assistant-lab é uma bancada de autoaperfeiçoamento projetada especificamente para o agente `/assistant`. Ele implementa um ciclo completo de melhoria contínua: primeiro diagnóstica problemas no desempenho do modelo, então treina novos modelos (seja localmente na RTX A5000 para modelos até 1.7B, ou remotamente via RunPod Flash para modelos de 7B a 13B), avalia a concordância com um professor (scillm) e, se a taxa de concordância (shadow agreement) for ≥ 90%, promove o modelo para o registro ativo de produção. O fluxo é orientado por limites claros: abaixo de 70% de concordância, o modelo passa por um retreinamento agressivo; entre 70% e 80%, é retreinado com mais dados; entre 80% e 90%, um redesenho de prompts é acionado via `/prompt-lab`; acima de 90%, o modelo é promovido. A ferramenta impõe quantidades mínimas não negociáveis de dados de treinamento (1000+ amostras para GPT) para evitar desperdício de esforço em modelos subtreinados. O treinamento remoto via RunPod Flash substitui o `/ops-runpod` para treinamento, oferecendo GPUs B200 e H200 com pagamento por segundo, estimativas de custo pré-treinamento e barreiras de segurança como limite de orçamento (`--max-cost`) e confirmação manual (`--confirm`). O assistant-lab se integra diretamente ao `/monitor-skills` (que detecta problemas em todas as habilidades) e ao `/assistant` (que consome os modelos promovidos em tempo de inferência). Plataformas suportadas: CLI (`./run.sh`) e API Python (`assistant_lab.AssistantLab`).

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

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que assistant-lab faz?

Bancada de autoaperfeiçoamento para /assistant. Este é o laboratório onde /assistant diagnostica problemas, treina novos modelos, os avalia e promove modelos aprovados para o registro ativo.

Não deve ser confundido com /monitor-skills, que é o daemon de observabilidade que monitora TODAS as habilidades quanto a saúde, desvio e problemas de sincronia. /assistant-lab é especificamente a caixa de ferramentas de autoaperfeiçoamento.

O Ciclo de Autoaperfeiçoamento

/monitor-skills detecta problema    ← observabilidade
    ↓
/assistant-lab diagnostica causa raiz ← esta habilidade
    ↓
Modo sombra: professor (scillm) rotula fluxo em shadow.jsonl
    ↓
ModelFactory.auto_improve(tarefa)
    ├─ lê taxa de concordância sombra
    ├─ >= 90%: promover → atualizar model_registry.json
    ├─ 80-90%: platô → /prompt-lab redesenhar
    ├─ 70-80%: retreinar → /create-gpt ou /create-classifier
    └─ < 70%: retreinamento agressivo + mudança de arquitetura
    ↓
/gpt-lab benchmark ou /classifier-lab avalia
    ↓ aprovou? → promover para registro ativo
    ↓
/assistant usa o modelo melhorado em tempo de inferência

Ferramentas Disponíveis

FerramentaPropósitoQuando Usar
/create-gptTreinar GPT com QLoRA/SFT/GRPO (Nível 1.5)Concordância < 80% ou nenhum modelo existe
/create-classifierTreinar classificador DistilBERT/sklearn (Nível 0.5)Tarefas de classificação de texto
/create-regressorTreinar regressor sklearn/XGB (Nível 0.75)Tarefas de predição contínua
RunPod FlashTreinamento GPU serverless via Python SDK (7B–70B)Modelo muito grande para A5000 local — substitui /ops-runpod para treinamento
/gpt-labAvaliar GPT contra baseline do professorApós treinamento, antes da promoção
/classifier-labAvaliar acurácia/F1 do classificadorApós treinamento do classificador
/prompt-labRedesenhar prompts quando platô é detectadoConcordância travada em 80-90%
/scillmProfessor Nível 2 — cria rótulosSempre (professor é a verdade absoluta)

Uso

CLI

# Diagnosticar o que uma tarefa precisa
./run.sh diagnose --tarefa stress-test-grader

# Ciclo completo de autoaperfeiçoamento autônomo
./run.sh auto-improve --tarefa stress-test-grader

# Treinar tipo específico de modelo
./run.sh train --tarefa stress-test-grader --tipo gpt
./run.sh train --tarefa sparta-ambiguity --tipo classifier

# Avaliar um modelo
./run.sh evaluate --tarefa stress-test-grader --tipo gpt

# Promover um modelo aprovado (desativa modo sombra)
./run.sh promote --tarefa stress-test-grader --tipo gpt

# Coletar rótulos do professor de shadow.jsonl
./run.sh harvest --tarefa stress-test-grader --desde 24h

# Mostrar estatísticas de concordância sombra para todas as tarefas
./run.sh status

# Executar autoteste completo (ciclo treinar → avaliar → promover em dados de teste)
./run.sh self-test

API Python

from assistant_lab import AssistantLab

lab = AssistantLab()

# Diagnosticar: o que esta tarefa precisa?
diagnostico = lab.diagnose("stress-test-grader")
# → {"has_gpt": False, "has_classifier": False, "shadow_agreement": 0.0, ...}

# Autoaperfeiçoar: decidir + treinar + avaliar + promover
resultado = lab.auto_improve("stress-test-grader")
# → {"actions": ["trained gpt", "evaluated (passing=True)", "promoted"]}

# Etapas manuais
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

O núcleo do motor é ModelFactory (de /common/model_factory.py). /assistant-lab o envolve com CLI + diagnósticos + relatórios.

Limiares de Concordância Sombra

Taxa de ConcordânciaAçãoJustificativa
>= 90%PromoverAluno corresponde confiavelmente ao professor
80-90%Redesenho /prompt-labPlatô — prompts podem ser o teto
70-80%Retreinar com mais rótulosMais dados provavelmente ajudam
< 70%Retreinamento agressivoMudar arquitetura ou modelo base
< 50 amostrasAguardarDados insuficientes para decidir

Dados Mínimos de Treinamento (NÃO NEGOCIÁVEIS)

NÃO chame /create-gpt train ou /create-classifier train com dados insuficientes.

Tipo de ModeloAmostras MínimasRegra
GPT (QLoRA SFT)1.000+ total< 1.000 → permanece no Professor Nível 2
Classificador (sklearn/SetFit)200 por classen_amostras / n_classes >= 200
Regressor100+ totalOrientação padrão sklearn

Evidência: sparta_stress_grading foi treinado com 246 amostras → 33,7% de concordância. Isso são 4 meses de rótulos sombra desperdiçados porque o modelo foi treinado cedo demais. Colete primeiro, treine quando estiver pronto.

Fluxo de Dados de Treinamento

Professor Nível 2 (scillm via persona)
    ↓ rótulos salvos em shadow.jsonl
    ↓
/assistant-lab harvest --tarefa X
    ↓ extrai pares entrada+saída
    ↓
/create-gpt train --tarefa X --dados labels.jsonl
    ↓ QLoRA em Qwen2.5-1.5B (padrão)
    ↓
/gpt-lab benchmark --tarefa X
    ↓ compara aluno vs professor
    ↓
/assistant-lab promote --tarefa X --tipo gpt
    ↓ atualiza model_registry.json, shadow_mode=false

Treinamento Remoto (RunPod Flash)

Para modelos grandes demais para a RTX A5000 local (24GB VRAM, máximo ~1.7B com LoRA), assistant-lab usa RunPod Flash — o SDK Python serverless sem Docker, sem SSH e sem sobrecarga de rsync. Flash substitui /ops-runpod para todos os caminhos de treinamento. /ops-runpod é mantido apenas para servidores de inferência persistentes.

Quando Usar Flash

Tamanho do ModeloA5000 LocalFlash Necessário?GPU
0.5–1.7BLoRA cabeNão./run.sh train (local)
3–7BNão cabeSimB200 (preferido) ou H200
8–13BImpossívelSimB200 (preferido) ou H200

Tipos de GPU Flash

GPUVRAMNotas
B200192 GB HBM3eMais rápida; 3–5× H200 em MoE / contexto longo
H200192 GB HBM3Boa disponibilidade; baseline sólido

Cobrança: pagamento por segundo, execução máxima de 7 dias por job.

Estimativas de Custo Flash (aproximadas)

Tamanho do ModeloGPUTempo de Treinamento Est.Custo 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

# Passo 1: Sempre estime o custo primeiro
./run.sh estimate --tarefa taxonomy-assessor --alvo flash --gpu B200 --tamanho 7B

# Passo 2: Treinar no Flash B200 (requer --confirm por segurança)
./run.sh train --tarefa taxonomy-assessor --alvo flash --gpu B200 --tamanho 7B --confirm

# Treinar no Flash H200
./run.sh train --tarefa taxonomy-assessor --alvo flash --gpu H200 --tamanho 13B --confirm

# Com modelo base personalizado
./run.sh train --tarefa taxonomy-assessor --alvo flash --gpu B200 --tamanho 8B \
  --base-model meta-llama/Llama-3.1-8B-Instruct --confirm

# Com quantização diferente
./run.sh train --tarefa qra-validator --alvo flash --gpu B200 --tamanho 7B \
  --quantize Q5_K_M --confirm

Pipeline de Treinamento Flash

estimate --alvo flash --gpu B200 --tamanho 7B
    ↓
train --alvo flash --gpu B200 --confirm
    ├─ 1. Estimativa de custo + portão de orçamento
    ├─ 2. Job Flash serverless submetido (Python SDK — sem Docker/SSH)
    ├─ 3. Dataset transmitido para o worker Flash
    ├─ 4. Treinamento QLoRA / SFT executado em B200/H200 (192GB VRAM)
    ├─ 5. Pesos do modelo baixados para /mnt/storage12tb/models/
    ├─ 6. create-gpt export --quantize Q4_K_M (GGUF)
    └─ 7. Avaliar + promover automaticamente se aprovado

Portões de Segurança

  • Limite de orçamento: --max-cost (padrão $15.00) bloqueia treinamento se a estimativa exceder o limite
  • Confirmação: Deve passar --confirm — sem ele, mostra o custo e sai
  • Desligamento automático: O job Flash é cancelado na saída (mesmo em erro, via trap)
  • Registro de métricas: Cada treinamento Flash é registrado em lab_metrics.jsonl

Integração com o Ciclo de Autoaperfeiçoamento

Modelos treinados remotamente integram-se à mesma cascata que modelos locais:

Nível 0:   Heurística (grátis, instantâneo)
Nível 0.5: Classificador (local, grátis)
Nível 1.5: GPT Local ≤1.7B (create-gpt, grátis após treinamento)
Nível 1.5: GPT Remoto 3-13B (train-remote, grátis após treinamento)  ← NOVO
Nível 2:   scillm/DeepSeek V3 (Chutes, $0.12/1K chamadas)

Um modelo de 7-13B no Nível 1.5 pode reduzir significativamente as escalações para o Nível 2 (Chutes), potencialmente pagando seu custo de treinamento com a redução de excedentes.

Relacionamento com Outras Habilidades

/monitor-skills ──→ "habilidade X não está saudável"
                         ↓
/assistant-lab ──→ diagnosticar → treinar → avaliar → promover
                         ↓
/assistant ──────→ usa modelo promovido em tempo de inferência
  • /monitor-skills: Observa TODAS as habilidades. Detecta problemas. Relata saúde.
  • /assistant-lab: Corrige modelos do /assistant. Treina, avalia, promove.
  • /assistant: Executa inferência. Usa quaisquer modelos que o laboratório produziu.

Contrato

  • Entrada: Nome da tarefa + tipo opcional de modelo
  • Saída: Diagnóstico, resultados de treinamento, resultados de avaliação, status de promoção
  • Dependências: model_factory.py (de /common), habilidades create-* e *-lab
  • Métricas: Anexa 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.

Habilidades Relacionadas