Files
kxkm_clown/docs/AUTORESEARCH_MODE.md
L'électron rare b817985a19 lot-11-E: corrections P2 (10 items) + autoresearch métriques artefact
## Corrections P2 — Code quality
- node-engine-runner.js: structuredClone + graph.edges validation
- http-api.js: input validation from-source + extension/mime check uploads
- chat-routing.js: regex compilées au module scope (perf)
- Chat.tsx: React.memo ChatMessage + validation couleurs persona
- sessions.js: saveAllSessions debounce 2s
- ollama.js: model token limits lookup (mistral/llama/qwen/phi/gemma)
- storage.js: warning session messages > 90% du max

## Autoresearch avancé
- Extraction score métier depuis artefacts d'évaluation (6 métriques)
- Score artefact prioritaire, fallback status-based
- TSV étendu avec colonne artifact_score
- Documentation mise à jour

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:13:56 +01:00

82 lines
2.6 KiB
Markdown

# Autoresearch Mode V2
Ce document decrit une integration minimale de la logique autoresearch dans KXKM_Clown V2.
## Objectif
Automatiser des cycles d'experiences Node Engine avec un budget fixe par run, puis appliquer une decision keep/discard basee sur une politique de score deterministe.
Le mode actuel automatise l'orchestration des runs et leur selection. Il ne modifie pas le code des nodes.
## Ce qui est implemente
- script: scripts/v2-autoresearch-loop.js
- config exemple: ops/v2/autoresearch.example.json
- sortie TSV append-only: data/node-engine/autoresearch/results.tsv
Boucle executee:
1. creer un run queued sur un graph existant
2. attendre un statut terminal
3. calculer un score
4. marquer keep/discard par rapport au meilleur score courant
5. journaliser la ligne dans results.tsv
## Prerequis
- Postgres accessible via DATABASE_URL
- migrations V2 executees (tables node_graphs et node_runs)
- worker V2 actif (npm run dev:v2:worker) pour consommer la queue
- un graph existant dans node_graphs
## Utilisation
1. definir graphId dans ops/v2/autoresearch.example.json
2. lancer:
```bash
npm run v2:autoresearch
```
Execution unique:
```bash
node scripts/v2-autoresearch-loop.js --config ops/v2/autoresearch.example.json --once
```
## Politique de score
Le score par defaut est derive du statut terminal, avec bonus de vitesse pour les runs completes:
- completed: 1 + bonus
- failed: 0
- cancelled, blocked, not_configured: -1
La table statusScores du JSON permet d'ajuster le comportement sans changer le script.
## Score metier via artefacts
Le script extrait automatiquement les scores depuis les artefacts d'evaluation du run.
Les metriques supportees (par ordre de priorite) :
- `score` — score generique (0-1)
- `eval_score` — score d'evaluation
- `accuracy` — precision
- `f1` — F1 score
- `bleu` — score BLEU (traduction/generation)
- `perplexity` — perplexite (inversee: 1/(1+p), plus bas = mieux)
Pour qu'un run produise un score metier, le graph doit inclure un node `benchmark` ou `prompt_test` qui ecrit un artefact de type `evaluation` avec une de ces metriques dans le champ `data`.
Si aucun artefact d'evaluation n'est trouve, le fallback est le score base sur le statut terminal.
## Limites actuelles
- keep/discard est une decision de session, pas encore un alias model registry
- pas de mutation automatique des graphes ou hyperparametres
## Etapes suivantes
1. Brancher keep/discard comme alias dans le model registry (register_model node)
2. Ajouter mutation automatique des hyperparametres entre experiments
3. Integrer les metriques cout tokens et latence p95