V2-CH5-002 — ארכיטקטורת Evidence Fusion
כרך 2 · פרק 5 · משימה 002 · איחוד ראיות מרובה-סוכנים ל-FusedEvidence
v1.0 Review · 12.8.2026
מטרת המסמך
הגדרת ארכיטקטורת Evidence Fusion: איסוף כל AnalysisOutput התקפים ל-candidate_id, בדיקת quorum, זיהוי מחלוקות, איחוד ראיות (evidence/risks/missing_data), חישוב confidence מאוחד, קביעת קונצנזוס, ויצירת FusedEvidence שמועבר ל-CIO. סוגר את פער G1.
זרימת Fusion (8 שלבים)
| שלב | פעולה | תיאור | מקור |
|---|---|---|---|
| 1 | איסוף AnalysisOutput | query AnalysisOutput where candidate_id = X AND status = VALID. מחזיר רשימת פלטים (אחד לכל סוכן, ייחודיות על candidate_id+agent_id). | candidateService.ts |
| 2 | בדיקת Quorum | count(VALID outputs) ≥ quorum (ceil(60% × |expected_agent_ids|)). אם לא — המתנה או EXPIRED. | candidateService.ts |
| 3 | זיהוי מחלוקות | השוואת conclusions בין סוכנים. אם BUY vs SELL → conflict. conflict_flag = true ב-AnalysisOutput. | evidenceFusion.ts (חדש) |
| 4 | איחוד ראיות | merge evidence[], risks[], missing_data[], limitations[] מכל הפלטים. דה-דופליקציה של ראיות זהות. | evidenceFusion.ts |
| 5 | חישוב Confidence מאוחד | fused_confidence = Σ(confidence_i × weight_i) / Σ(weight_i). weight = reliability_profile.hit_rate × analysis_role_weight. | evidenceFusion.ts |
| 6 | קביעת קונצנזוס | consensus_direction = majority(reliability-weighted). אם אין רוב → HOLD/NO_OPINION. | evidenceFusion.ts |
| 7 | יצירת FusedEvidence | אובייקט חדש: { candidate_id, outputs[], fused_confidence, consensus_direction, conflicts[], evidence[], risks[] }. | evidenceFusion.ts |
| 8 | העברה ל-CIO | FusedEvidence → CIO Shadow. CIO מקבל ראיות מאוחדות (לא סוכן בודד). | runCioShadow/entry.ts |
סכמת FusedEvidence
| שדה | סוג | חובה | תיאור |
|---|---|---|---|
| candidate_id | string (ref) | חובה | מזהה Candidate |
| outputs | array<AnalysisOutput> | חובה | כל הפלטים התקפים שנאספו |
| fused_confidence | number (0-10) | חובה | ביטחון מאוחד משוקלל |
| consensus_direction | enum | חובה | BUY / SELL / HOLD / NO_OPINION |
| conflicts | array<Conflict> | אופציונלי | רשימת מחלוקות שזוהו |
| evidence | array<string> | חובה | ראיות מאוחדות (דה-דופליקציה) |
| risks | array<string> | חובה | סיכונים מאוחדים |
| missing_data | array<string> | אופציונלי | נתונים חסרים מכל הסוכנים |
| fusion_timestamp | date-time | חובה | מועד איחוד |
קריטריוני קבלה
| מזהה | קריטריון | תוצאה |
|---|---|---|
| F1 | 8 שלבי fusion flow מוגדרים: איסוף → quorum → זיהוי מחלוקות → איחוד → confidence → קונצנזוס → FusedEvidence → CIO. | PASS |
| F2 | FusedEvidence object מוגדר: candidate_id, outputs, fused_confidence, consensus_direction, conflicts, evidence, risks. | PASS |
| F3 | מודול חדש: evidenceFusion.ts ב-base44/shared/ — אינו פוגע בנתיב הקיים (shadow). | PASS |
| F4 | קישור ל-Candidate: FusedEvidence נוצר רק ל-candidate_id עם quorum שהושג. | PASS |
מפרט · v1.0 Review · 12.8.2026
חזרה ל-V2-CH5-001