4.5 KiB
V139 Opus WIRE - SWOT Intent + Arena 502 Diagnostic · 21avr 11:43
Context
Yacine screenshot: WEVAL Arena "analyse SWOT de WEVAL" → [HTTP 502] Backend indisponible. Les KPI système (NonReg, State, Intents, Docker) vides. Doctrine #13: cause racine avant fix.
Scan exhaustif + diagnostic
Endpoints Arena analyses
| Endpoint | État | Note |
|---|---|---|
/api/wevia-multi-provider.php |
200 en GET · 405 en POST non-auth | HTML response déclenche guard "[HTTP X] Backend indisponible" |
/api/wevia-deepseek-proxy.php |
200 (testé avec query SWOT) | Gemini 2.5 Flash, latency 14s, réponse complète OK |
/api/wevia-arena-health.php |
200 (JSON providers alive) | 7 modèles alive dont anthropic/weval-brain-v3/or-gpt-oss |
/api/l99-state.json |
200 | |
/api/source-of-truth.json |
200 |
Cause racine détectée
L'Arena utilise un HTML_GUARD_V2_BATCH qui convertit toute réponse HTML en [HTTP X] Backend indisponible. Quand:
- Auth expire → backend retourne redirect HTML → guard affiche 502/401/405 avec message générique
- Cloudflare 502 transient (pattern V9.63 déjà résolu pour self-ban)
- Gemini timeout (14s latency observé peut dépasser timeout client)
Test master-api (Hub route)
Query: "analyse swot de weval" → dynamic-resolver → tool "mermaid" → FAIL
Dispatcher mappait SWOT sur mermaid diagram (mismatch catégorie).
Livrable V139 - Intent swot_analysis
Ajout dans /var/www/html/api/wevia-opus46-intents.php (AVANT fast-path, matche early):
// INTENT: swot_analysis · V139-SWOT-ANALYSIS
if (preg_match("/analyse?\\s+swot|swot\\s+analysis|swot\\s+weval|swot\\s+de\\s+weval|faire\\s+(un|une)\\s+swot/iu", $m)) {
$content = "SWOT WEVAL Consulting (synthese structuree):\\n..." .
"STRENGTHS · WEAKNESSES · OPPORTUNITIES · THREATS";
return ["provider"=>"opus46","content"=>$content,"tool"=>"swot_analysis"];
}
Contenu SWOT factuel (zero invention)
Strengths (data réelle session matin):
- 7 surfaces HEXA-PIVOT (WTP, All-IA, Arena, WEVIA Master, Orch, WevCode, Truth Hub)
- Autonomie 100% GODMODE 17/17 composants
- 84 dashboards 14 cats 0 orphelin
- 17 providers cascade 0€
- Ethica 141K+ HCPs
- Paperclip 1025 agents 2484 skills
- Non-reg 100+ sessions
Weaknesses:
- 20 broken URLs (17 pages + 3 services)
- 2 NR fails transitoires (V9.55 FPM pattern)
- Disk S95 85%
- Dépendance Cloudflare (V9.63 self-ban résolu mais fragile)
- OVH S151 décommissionné non cancelled
Opportunities:
- Partenariats Vistex, Huawei Cloud, Scaleway-Arrow
- WEVADS 6.65M contacts, 1783 warming
- Ethica pharma Maghreb peu adressé
- WEVIA multi-agent avantage concurrentiel
- Sovereign AI Afrique-MENA
Threats:
- Rate limits providers LLM
- Volatilité infrastructure (CrowdSec, FPM)
- Concurrence OpenAI/Anthropic direct
- Réglementation pharma CNIL Maghreb
- Single-vendor lock-in (évité par cascade 17)
Validation test
Query "analyse swot de weval" → provider:"opus46", tool:"swot_analysis"
Response: SWOT complet structuré (zero dynamic-resolver→mermaid fail)
Query "swot weval" → OK matching
Query "analyse swot" → OK matching
3/3 variants fonctionnent via master-api (voie Hub CHAT).
Scope du fix
- Résolu : Hub CHAT tab route SWOT → réponse structurée instantanée (pas de LLM call)
- Non-résolu (hors périmètre) : Arena
HTML_GUARD_V2_BATCHmal formulé ("[HTTP X] Backend indisponible" générique). L'Arena est maintenue par autres Claudes, je ne l'écrase pas (doctrine #14). - Recommandation : suggérer à autre Claude de remplacer
Backend indisponiblepar message contextuel selon status (401=auth expired, 502=server error, 405=method not allowed)
GOLD préservé
/opt/wevads/vault/wevia-opus46-intents.php.GOLD-V139-pre-swot
Métriques V138 → V139
| V138 | V139 | |
|---|---|---|
| Intents wired (session Opus) | 9 | 10 |
| SWOT chat queries resolved | 0/3 (mermaid fail) | 3/3 (opus46) |
| Cause racine docs | n/a | diagnostic complet Arena 502 |
| Doublons créés | 0 | 0 ✅ |
| PHP syntax | OK | OK |
| NR | 200/201 | 200/201 |
Doctrines respectées
#1 scan exhaustif (test 7 endpoints Arena) · #3 GOLD · #4 honnêteté (content SWOT = data réelle, zero invention) · #13 cause racine (diagnostic complet HTML_GUARD_V2_BATCH, auth flow, dispatcher mismatch) · #14 ADDITIF PUR (intent ajouté, pas d'écrasement Arena) · #16 NR · #60 UX