didi-lot2-backend/backend/services/orchestration-layer/agent-v3/DIMENSION_WEIGHTS_TODO.md
2026-07-10 03:39:53 -07:00

2.4 KiB
Raw Permalink Blame History

Dimension Weights — Known Issue

Status: documented, not fixed — requires calibration before implementation Reported: 2026-03-18 (audit) Severity: MIC (scorurile functioneaza, dar weights sunt ignorate)

Problema

Dimension weights (D1=20, D2=15, ..., D8=10) sunt stocate in Redis (didi:framework:techniques) si editabile din Admin Dashboard, dar nu sunt folosite nicaieri in scoring.

calculateManipulationScore() in src/components/techniques/executor.ts:584 face media ponderata doar pe severity × confidence per tehnica. Nu acceseaza dimension.weight.

Unde exista weight-urile

Loc Ce contine Folosit?
PostgreSQL bos_parammgmt.dimension coloana weight (INT) doar CRUD
Redis didi:framework:techniques dimensions[].weight (ex: D1=20) ignorat de executor
Admin Dashboard /framework tab Dimensions coloana "Pondere" editabila decorativ
TechniqueHierarchy.Dimension interface (executor.ts:45) NU are camp weight
dimensions_compact (executor.ts:223) NU include weight

Valorile curente in Redis

D1 (content):       weight=20
D2 (narrative):     weight=15
D3 (media):         weight=15
D4 (amplification): weight=10
D5 (evasion):       weight=10
D6 (operations):    weight=10
D7 (temporal):      weight=10
D8 (targeting):     weight=10

De ce nu fixam acum

  1. Scorurile se schimba — D1 ar contribui 2x fata de D8, pattern-ul results se modifica
  2. Weights nu sunt calibrate — valorile sunt din setup initial, nu validate pe date reale
  3. Verdict calculator depinde de manipulation_score — thresholds-urile pot deveni incorecte
  4. Nu exista test suite care sa detecteze regresii in scoring

Ce trebuie facut (sprint dedicat)

  1. Adauga weight in interface Dimension (executor.ts:45)
  2. Citeste weight din techniqueHierarchy in calculateManipulationScore()
  3. Inmulteste contributia fiecarei tehnici cu dimension.weight / max_weight
  4. Ruleaza comparatie A/B pe ~50 sesiuni existente (scoruri vechi vs noi)
  5. Ajusteaza thresholds in verdict calculator daca distributia scorurilor se schimba
  6. Calibreaza weights pe baza rezultatelor (poate D1=20 e prea mult/putin)

Fisiere de modificat

  • src/components/techniques/executor.ts — interface Dimension + calculateManipulationScore()
  • src/components/pipeline/verdict-calculator.ts — posibil ajustare thresholds
  • Admin Dashboard — weight-ul e deja editabil, nu necesita modificari