STOP. LISEZ L'INTÉGRALITÉ DE CE SKILL.MD AVANT D'APPELER UN ENDPOINT QUELCONQUE.
Que fait assistant ?
Passerelle d'inférence partagée GPT + classifieur + régresseur pour les tâches de surveillance de persona.
L'« étang chaud » — /assistant peut faire évoluer de manière autonome sa pile d'inférence via
/assistant-lab (atelier d'auto-amélioration : create-*, *-lab, fabrique de modèles)
tandis que /monitor-skills fournit l'observabilité de l'écosystème de skills.
Règle d'itération des prompts (NON NÉGOCIABLE)
Tous les prompts système pour les modèles /assistant DOIVENT être itérés via /prompt-lab avant d'être intégrés dans les données d'entraînement via /create-gpt. Ne créez JAMAIS de prompts système directement dans des chaînes Python.
- Nouveau prompt modèle →
/prompt-lab evald'abord sur des données de référence - Plateau du prompt (80-90% d'accord fantôme) →
/prompt-lab compareentre variantes - Réentraînement du modèle → valider le prompt avec
/prompt-lab find-minimumavant/create-gpt
Cascade de niveaux
| Niveau | Méthode | Coût | Latence | Créé par |
|---|---|---|---|---|
| 0 | Heuristique (regex/mot-clé/schéma) | gratuit | microsecondes | codé à la main |
| 0.5 | Classifieur (DistilBERT/sklearn) | gratuit | 5-25 ms | /create-classifier |
| 0.75 | Régresseur (sklearn/XGB) | gratuit | 5-10 ms | /create-regressor |
| 1.5 | GPT partagé (Qwen3-0.6B GGUF) | gratuit | ~200 ms | /create-gpt |
| 2 | scillm (DeepSeek V3.2 via Chutes) | 0,12 $/1K | 2-5 s | professeur persona |
Cycle de vie des modèles (Étang chaud)
Le professeur de niveau 2 crée des labels
↓ harvest.py extrait shadow.jsonl
↓
ModelFactory.auto_improve(task)
↓ lit le taux d'accord fantôme
├─ >= 90% : promotion (shadow_mode → false)
├─ 80-90% : plateau → /prompt-lab reconception
├─ 70-80% : /create-gpt ou /create-classifier réentraînement
└─ < 70% : réentraînement agressif + changement d'architecture
↓
/gpt-lab benchmark ou /classifier-lab evaluate
↓ succès ? → promotion dans le registre
↓
/monitor-skills détecte la dérive ou les problèmes de santé
↓
/assistant-lab auto-amélioration (diagnostiquer → entraîner → évaluer → promouvoir)
Utilisation
# Valider des données via la cascade de niveaux
./run.sh validate --task qra-assessor --scope brandon_bailey --input '{"question":"...", "answer":"..."}'
# Classifier du texte
./run.sh classify --task bridge-tagger --text "évaluation de vulnérabilité satellite"
# Enregistrer un nouveau modèle
./run.sh register --task NOM --model-path CHEMIN --type gpt|classifier --threshold 0.85
# Afficher les modèles enregistrés, taux d'utilisation, distribution des niveaux
./run.sh status
# Exécuter des entrées synthétiques sur tous les niveaux
./run.sh self-test
# Extraire les escalades de niveau 2 comme données d'entraînement
./run.sh harvest --since 24h
API Python
from assistant import validate, classify
# Validation avec cascade à 4 niveaux
result = validate(
input_data={"question": "Qu'est-ce que CWE-79 ?", "answer": "Cross-site scripting..."},
task="qra-assessor",
scope="brandon_bailey",
)
print(result.tier, result.confidence, result.result)
# Classification avec cascade à 3 niveaux
result = classify(
text="évaluation de vulnérabilité satellite",
task="bridge-tagger",
)
print(result.prediction, result.confidence, result.source)
Contrat
- Entrée : Dictionnaire spécifique à la tâche (validateurs) ou chaîne de texte (classifieurs)
- Sortie :
GatewayResultouClassifyResultavec niveau, confiance, latence - Dépendances : loguru, typer ; optionnelles : llama-cpp-python, torch, joblib
- Métriques : Ajoute une ligne JSONL à
~/.pi/assistant/metrics.jsonl
Fabrique de modèles
# Vérifier les modèles dont une tâche a besoin
./run.sh factory needs --task stress-test-grader
# Entraîner un GPT à partir des labels du professeur récoltés
./run.sh factory train-gpt --task stress-test-grader
# Évaluer via /gpt-lab
./run.sh factory evaluate --task stress-test-grader --type gpt
# Promouvoir un modèle validé (désactive le mode fantôme)
./run.sh factory promote --task stress-test-grader --type gpt
# Boucle d'amélioration autonome (décider + entraîner + évaluer + promouvoir)
./run.sh factory auto-improve --task stress-test-grader
from model_factory import ModelFactory
factory = ModelFactory()
result = factory.auto_improve("stress-test-grader")
# → lit l'accord fantôme, entraîne/évalue/promeut si nécessaire
Comportements clés
- Chargement paresseux des modèles : Les poids sont chargés au premier appel, mis en cache dans le processus
- Injection mémoire : Rappels du scope persona, préfixés dans le prompt système du GPT
- Mode transparent : Bascule directement sur scillm si aucun modèle local n'existe
- Mode fantôme : Les tâches avec
"shadow_mode": trueexécutent le modèle local ET scillm en parallèle, enregistrent les désaccords dansshadow.jsonl, retournent le résultat du professeur (scillm). Permet une montée en charge sécurisée des nouveaux modèles étudiants. - Récolte : Extraction nocturne des escalades de niveau 2 comme labels du professeur
- Fabrique de modèles : Via
/assistant-lab, entraîne, évalue et promeut les modèles de manière autonome lorsque le mode fantôme montre qu'une tâche a besoin d'amélioration - Étang chaud :
/monitor-skillssurveille l'écosystème (observabilité),/assistant-labcorrige les problèmes (auto-amélioration). Ensemble, ils forment l'étang chaud où /assistant évolue.
Erreurs fréquentes
À NE PAS FAIRE : Créer des prompts système directement dans des chaînes Python
SYSTEM_PROMPT = "Tu es un validateur QRA. Vérifie si la réponse est correcte..."
À FAIRE : Itérer les prompts via /prompt-lab avant de les intégrer aux données d'entraînement
.pi/skills/prompt-lab/run.sh eval --prompt qra_validator_v1 --model deepseek
# Uniquement après validation via prompt-lab → créer les données d'entraînement
À NE PAS FAIRE : Entraîner avec des données insuffisantes (< 200 échantillons par classe)
./run.sh factory train-gpt --task sparta-intent # 50 échantillons, 12 classes = 4/classe !
À FAIRE : Rester au niveau 2 et récolter d'abord plus de labels du professeur
./run.sh harvest --since 7d # accumuler les labels fantômes
./run.sh status # vérifier les comptes d'échantillons avant l'entraînement
À NE PAS FAIRE : Ignorer le mode fantôme et promouvoir des modèles non testés
./run.sh factory promote --task stress-test-grader # pas de comparaison fantôme !
À FAIRE : Exécuter le mode fantôme, vérifier le taux d'accord, puis promouvoir
./run.sh factory auto-improve --task stress-test-grader
# auto-improve lit le taux d'accord fantôme et décide