סקירת מצב מערכת, שינויי קרדיטים והערכת איכות
דוח פנימי לדיון צוותי — ארכיטקטורה נוכחית, פירוט מלא של שינויי אופטימיזציה, הערכה מקצועית של השפעת השינויים על איכות המערכת, ומיפוי צריכת קרדיטים.
מבנה המערכת
InvestIQ היא פלטפורמת ניתוח וביצוע השקעות אוטומטית המורכבת מארבע שכבות:
- שכבת סוכנים — 15 סוכני AI (scanner, news, financials, technical, portfolio) שסורקים שווקים ומייצרים Candidates
- שכבת CIO — אלגוריתם מיזוג (cioAlgorithm) שמקבל את כל ההמלצות ומחליט פעולה (BUY/SELL/HOLD/WAIT)
- שכבת Risk Gate — בדיקות סיכון דטרמיניסטיות (חשיפה, מאגר מזומן, סקטור, אזור) לפני יצירת Trade
- שכבת ביצוע — מכונת מצבים (stateMachine) שמעבירה Trade דרך pending→approved→executed עם CAS + Idempotency
זרימת עבודה — מסריקה לביצוע
refreshPortfolioPrices הוא הבעלים היחיד של הביצוע — רץ כל שעה בשעות מסחר, מעדכן מחירים, בודק טריגרים (סטופ-לוס/טייק-פרופיט), ומבצע עסקאות מאושרות. כולל 4 שלבים: PRICE_REFRESH → TRADE_VALIDITY → CIO_SCAN → EXECUTION.
סוכנים פעילים (15)
| סוג | אזור | תדירות מקורית | תדירות נוכחית |
|---|---|---|---|
| Scanner (US) | US | כל 60 דק' | כל 90 דק' |
| Scanner (IL) | IL | כל 120 דק' | כל 240 דק' |
| News | US/IL | בכל סריקה | 2×/יום (workflow נפרד) |
| Technical | US | כל 60 דק' | כל 90 דק' |
| Financials | US/IL | כל 24 שעות | כל 24 שעות (ללא שינוי) |
| Portfolio Risk | גלובלי | כל שעה | פעם/יום (dedup) |
| Market Regime | גלובלי | 2×/יום | 2×/יום (ללא שינוי) |
להלן כל שינוי שבוצע במסגרת הורדת צריכת הקרדיטים, מסווג לפי סוג השינוי. התוצאה: ירידה מ-~1,225 קרדיט/יום ל-~15 קרדיט/יום (99%).
א. הוצאה מ-LLM → קוד דטרמיניסטי
| רכיב | לפני | אחרי |
|---|---|---|
| Pre-Filter Scanner | LLM סורק כל פעם | בדיקת תזוזת Watchlist >2% — אם <25% זזו, דילוג LLM |
| Split Detection | LLM מזהה פיצולים | 3 איתותים דטרמיניסטיים (avg vs current, last vs quote, changePct) |
| Price Drift Check | LLM בודק סטייה | חישוב דטרמיניסטי: |live - approved| / approved × 100 |
| Risk Gate | LLM מעריך סיכון | בדיקות דטרמיניסטיות (חשיפה, מאגר, סקטור, אזור) |
| Stale Proposal Validation | LLM בודק טריות | חישוב זמן + סף דטרמיניסטי |
ב. צמצום תדירויות
| Workflow | תדירות מקורית | תדירות נוכחית | ירידה |
|---|---|---|---|
| News Feed Scan | 4×/יום | 2×/יום | 50% |
| Social Sentiment | 4×/יום | 2×/יום | 50% |
| Insider Filings | 4×/יום | 2×/יום | 50% |
| Maya Reports | 4×/יום | 2×/יום | 50% |
| Macro Indicators | 4×/יום | 2×/יום | 50% |
| Index Refresh | 4×/יום | 2×/יום | 50% |
| IL Scans | 2×/יום (10+14) | 1×/יום (11:00) | 50% |
| US Scans | 5×/יום | 3×/יום (16:30,18,20) | 40% |
| Agent Intervals (US) | 60 דק' | 90 דק' | 33% |
ג. הסרת כפילויות (Dedup)
- • CIO_SCAN daily dedup — נכס מנותח ע"י LLM לכל היותר פעם/יום (במקום כל שעה ב-refreshPortfolioPrices)
- • evaluateProtectionStatus — פעם/יום לכל משתמש (במקום כל סריקה)
- • News agents הוצאו מ-runAgentScan — רצים רק דרך workflows ייעודיים (מונע עיבוד כפול)
- • Dedup הודעות שגיאה — הודעת שגיאה אחת לסמל/יום (במקום כל מחזור refresh)
- • Dedup סטטוס תיק — הודעת סטטוס אחת/יום כשמאגר מזומן אזל
ד. בוטל / הושבת לחלוטין
- • Continuous Agent Scan — הושבת (כפילות מלאה עם 5 סריקות האזור — רץ 3×/יום וסרק את אותם סוכנים פעמיים)
- • Morning Acceptance Routine — הושבת (QA ידני מועדף על אוטומטי יומי)
- • Live Market Test Afternoon — הושבת (QA ידני מועדף)
- • כל 27 ה-workflows — מנוטרלים כעת באופן זמני עד החלטת כיוון
סיכום: ירידת איכות משמעותית ב-4 רכיבים קריטיים
האופטימיזציה הצילה את המערכת מבחינת קרדיטים, אך במחיר איכות ישיר. להלן הערכה כנה של כל נקודת שינוי והשפעתה:
3.1 — Pre-Filter Scanner: "עיוורון בשוק שקט"
לפני: כל סריקה, כל סוכן קרא ל-LLM עם חיפוש אינטרנט וניתח את השוק המלא. אחרי: אם פחות מ-25% מה-Watchlist זז מעל 2%, ה-LLM לא נקרא כלל. (הסמלים > ו-< מופיעים כאן כטקסט רגיל) הבעיה: שוק רגוע לא אומר שאין הזדמנויות. מניה יכולה לטפס לאט ובהדרגה (0.5%/יום) בלי להדליק את הפילטר, והמערכת תתעלם ממנה לחלוטין. הפילטר מניח ש"תזוזה = הזדמנות" — זה נכון ל-swing trading אבל לא ל-value investing.
3.2 — CIO_SCAN Daily Dedup: "סוכן הסיכון כבר לא מנטר ירידות תוך-יומיות"
לפני: סוכן הסיכון ניתח כל נכס בכל שעה — ירידה שמתחילה ב-11:00 נתפסה ב-12:00. אחרי: כל נכס מנותח לכל היותר פעם אחת ביום. הבעיה: אם מניה מתחילה לקרוס ב-11:00, הסוכן לא יבחן אותה שוב עד מחר. סטופ-לוס דטרמיניסטי עדיין עובד, אך הניתוח האיכותי ("האם זה תיקון זמני או שינוי יסודי?") קורה פעם אחת בלבד. זהו פגיעה ישירה ביכולת ההגנה של המערכת.
3.3 — Agent Intervals (90 דק'): "חלון עיוור של שעה וחצי"
לפני: סוכן יכול היה לרוץ כל 60 דקות ולתפוס תנועות intraday. אחרי: מרווח מינימלי 90 דקות (US) / 240 דקות (IL). הבעיה: מניה יכולה להספייק ולהתאושש בין שתי סריקות — המערכת תחמיץ את כל המהלך. לפלטפורמת מסחר, 90 דקות זה זמן ארוך. ה-IL ב-240 דקות (4 שעות!) אומר שהמערכת סורקת את ת"א פעם אחת ביום בלבד.
3.4 — News 2×/יום: "חלון עדכון של עד 12 שעות"
לפני: סריקת חדשות רצה בכל מחזור סריקה. אחרי: 2×/יום קבוע (09:25, 13:25 ל-IL; 16:25, 19:25 ל-US). הבעיה: אם חדשות פורצות ב-12:00, הסריקה הבאה ב-13:25 — עד 1.5 שעות אחרי. בשוק שבו דקות קובעות, זה מאחר המלצות ומפספס תזמון כניסה/יציאה.
3.5 — מה נשאר טוב (לא נפגע)
- • Risk Gate דטרמיניסטי — נשאר מלא ומדויק (חשיפה, מאגר, סקטור)
- • מכונת מצבים — CAS + Idempotency לא נפגעו
- • Split Detection — 3 איתותים דטרמיניסטיים עובדים היטב
- • CIO Algorithm — לוגיקת המיזוג לא השתנתה
- • Execution Layer — ביצוע ובטיחות לא נפגעו כלל
סיכום הערכה
השכבות הדטרמיניסטיות (Risk, Execution, State Machine) לא נפגעו — אלה נשארו מלאות ובטוחות. הפגיעה היא בשכבת האינטליגנציה: המערכת עיוורת יותר, מנתחת פחות, ומגיבה לאט יותר לאירועים. היא עברה מ"סוכן שתמיד ערני" ל"סוכן שבודק כמה פעמים ביום עם מסננים גסים". זה עדיין עובד — אבל זו לא אותה מערכת. תחושת הצוות שהאיכות ירדה נכונה.
נתונים מה-DB (AgentLog)
מיפוי צרכני קרדיטים עיקריים (InvokeLLM)
| רכיב | קריאות LLM/יום (לפני) | קריאות LLM/יום (אחרי) | קרדיטים/יום |
|---|---|---|---|
| Agent Scans (5 סוכנים × 5 סריקות) | ~25 | ~15 | ~15 |
| News Scans (4 סורקים) | ~16 | ~8 | ~8 |
| Macro + Index Refresh | ~8 | ~4 | ~4 |
| CIO_SCAN (refreshPortfolioPrices) | ~14 (כל שעה) | ~1-3 (dedup) | ~2 |
| Daily Summary + Investor Report | ~2 | ~2 | ~2 |
| סה"כ משוער | ~65 | ~30 | ~31 |
הערה: קריאת LLM אחת = ~1 קרדיט. המספרים משוערים על בסיס ניתוח הקוד ותדירויות ה-workflows. המספר הרשמי מה-DB: ~15 קרדיט/יום (אחרי dedup ופילטרים שמבטלים ריצות ריקות).
היסטוריית צריכה חודשית
| תקופה | קרדיטים/יום | קרדיטים/חודש | הערה |
|---|---|---|---|
| לפני אופטימיזציה (עד 30.8) | ~1,225 | ~36,750 | שיא — גרם למיצוי |
| אחרי De-LLM (1-3.9) | ~15 | ~450 | 99% ירידה |
| מכסת Builder | — | 10,000 | מכסה חודשית |
דוח זה מבוסס על ניתוח ישיר של קוד המערכת (agentScanCore.ts, refreshPortfolioPrices, riskGate.ts, cioAlgorithm.ts ו-27 קבצי workflows), נתוני DB מאומתים מ-AgentLog, והיסטוריית שינויים מתועדת. מיועד לדיון צוותי פנימי.
InvestIQ — System Status Review | ספטמבר 2026 | מערכת מושבתת זמנית