שני פלואי הצ'אט

56 · צ'אט יועץ (chat_message)  ·  58 · צ'אט לקוח (customer_chat_message)  ·  מההגדרות בשרת, 28.09.2026 · סביבות חול 57 ו-59

שני פלואים, אותו מנוע, שני קהלים

כל שאלה שנשלחת לעוזר בממשק עוברת לאחד משני פלואים. הבחירה נעשית בקליינט לפי תפקיד המשתמש: בעל העסק (CUSTOMER) שולח את נקודת הכניסה customer_chat_message ומגיע לפלואו 58. כל שאר התפקידים (מנהלת תזרים, יועץ, אדמין) שולחים chat_message ומגיעים לפלואו 56. שני הפלואים בנויים סביב אותו סוכן, האקי, ואותם כלים כמעט. ההבדל הוא במה שהסוכן יודע, במה שמותר לו לעשות, ובסדר שבו הדברים רצים.

56 · צ'אט יועץ chat_message

מי שואל: מנהלת תזרים של HK, יועץ במשרד הייעוץ, אדמין. האקי מדבר איתם "כמו עמית". ההמלצות מנוסחות כ"פעולות לנציג", ויש לו כלי לפתיחת משימה.

58 · צ'אט לקוח customer_chat_message

מי שואל: בעל העסק. האקי הוא "היועץ שלו", מדבר בגוף שני על "העסק שלך". אין לו כלי משימות, יש לו סעיף גבולות תפקיד, והוא מקבל את רשימת הקטגוריות של החברה ואת תאריך תחילת הנתונים.

סביבות חול בפרוד (28.09.2026)

57 · העתק של 56 בלי נקודת כניסה

העתק מלא של צ'אט היועץ. מקבל תנועה רק דרך כלל ניתוב: המשתמש של אייל (user 65) בנקודת הכניסה chat_message מגיע לכאן. כל שאר המשתמשים ממשיכים ל-56.

59 · העתק של 58 בלי נקודת כניסה

העתק מלא של צ'אט הלקוח, ועליו הצעת ההנחיות המעודכנות לאקי (haki-58-instructions.md). המשתמש של אייל ב-customer_chat_message מגיע לכאן, עם היסטוריית שיחה מלאה. תוצאות ההשוואה בדף בנק השאלות.

איך זה בנוי: יצירה דרך POST /flows ואז PUT /flows/:id עם המעטפת המלאה; כלל ניתוב ראשון ב-routing/config לפי user.id (אומת 28.09: משתמש אחר, 163, נשלח בשתי נקודות הכניסה והגיע ל-56 ול-58; המשתמש 65 מגיע ל-57 ול-59); כל שינוי נרשם בהיסטוריית הגרסאות של הפלואו. קידום ל-58 נעשה רק אחרי אישור של אייל, ב-PUT /flows/58 לשני העותקים של הסוכן. התיעוד של עומרי: hk-server/docs/ai-flow-editing.md.

איפה זה מופעל בממשק

המסךמה שואלים שםמה נוסף לשיחה
עוזר AIשאלות חופשיות על העסק: יתרה, הכנסות, הוצאות, פגישותשיחה כללית, בלי type
תמונת תזרים · על הדוחשאלות על הדוח שמוצג, והפאנל מצהיר שהוא עונה רק ממנוtype: cashflow ומטען הדוח ב-chat_context
התזרים קדימהמה צפוי, למה החריגה, הנגררותלפי תיעוד הקליינט. לא נבדק בהגדרה זו
הכנה לפגישהמה חשוב לפני הפגישה הבאהלפי תיעוד הקליינט. לא נבדק בהגדרה זו

ה-chat_context וה-type מגיעים לנקודת הכניסה של שני הפלואים כשדות, אבל אף node בהגדרה לא קורא אותם. לפי תיעוד השרת הם מוזרקים להיסטוריית השיחה כבלוק "הקשר:" בסקיל טעינת ההיסטוריה, שאינו חלק מהפלואו. מה-JSON לבד אי אפשר לאמת שזה קורה.

מה קורה לשאלה מרגע שנשלחה

56 · צ'אט יועץ 58 · צ'אט לקוח הודעה נכנסת במקביל בסיס ידע · פלואו 35 שאלה מוכנה? found / is_list / sum פרופיל החברה ↓ האקי 7 כלים · עד 14 איטרציות רץ תמיד, גם כשבסיס הידע ענה found ∧ ¬is_list ? כן סינתזר מקבל רק sum + השאלה תשובת האקי נזרקת אחרת שמירת תשובת האקי save_chat_message כולל found ∧ is_list שמירה · סיום סיום הודעה נכנסת במקביל · הכנה בלבד בסיס ידע · 35 found / is_list / sum פרופיל החברה זיכרון, טקסט קטגוריות החברה חדש ב-58 found ? כן ∧ ¬is_list סינתזר מקבל רק sum + השאלה שמירה · סיום לא האקי 6 כלים · עד 14 איטרציות מקבל פרופיל + קטגוריות + תג data_available_from רץ רק כשבסיס הידע לא ענה שמירת תשובת האקי · סיום כן ∧ is_list סיום בלי תשובה

הרצף, צעד אחר צעד

  1. כניסה. ההודעה מגיעה עם מזהה שיחה, המשתמש והחברה. גם type ו-chat_context מגיעים, אך לא נקראים בפלואו.
  2. בסיס הידע (פלואו 35). סוכן "שומר סף" משווה את ההודעה לטבלת שאלות מוכנות שנשלפת בזמן ריצה. התאמה רק בזהות מלאה: אותו מונח פיננסי, אותו זמן, אותה צורת תשובה. אם נמצאה שאלה מסוג "סכום יחיד", הפלואו המתאים רץ ומחזיר sum. אם נמצאה שאלה מסוג "רשימה", הוא שולח רשימת וואטסאפ.
  3. הכנת ההקשר. טעינת פרופיל החברה (זיכרון איכותי, לא מספרים). ב-58 גם רשימת הקטגוריות המסווגות של החברה, שמשמשת את האקי לקבוע באיזו רמה לחפש.
  4. ההכרעה. ב-56 האקי כבר רץ במקביל לבסיס הידע, והתנאי רק בוחר איזו תשובה לשמור. ב-58 התנאי מחליט אם בכלל להריץ את האקי.
  5. האקי. קורא את השאלה על רקע ההיסטוריה, מחלץ בעצמו תאריכים ונושאים, בוחר כלי אחד או יותר, ומנסח תשובה. הפירוט לכל כלי נמצא בדף הכלים של האקי.
  6. שמירה. התשובה נשמרת לשיחה עם save_chat_message. זו ההודעה שהמשתמש רואה.

הכלים והמיומנויות, ומתי כל אחת נבחרת

כלימתי האקי בוחר בו5658
search_transactions · פלואו 36כל שאלה על תנועות. עם נושא (ספק, קטגוריה, כותרת, אמצעי תשלום) הוא מסנן לפי topics. בלי נושא, topics: [] ומחזיר את כל התנועות בטווח. הכלי היחיד שמחזיר תנועות בודדות✓✓
get_monthly_reportשאלות דוחיות: רווח והפסד, רווח גולמי, סך הכנסות או הוצאות לתקופה, יתרת פתיחה וסגירה. סכומים מחושבים מראש בשלוש רמות, בלי תנועות✓✓
cashflow_analyzeשאלות מצב וניתוח: "איך התזרים", חריגה, יתרה צפויה, מסגרת פנויה. וגם כשצריך יתרה כדי לענות על שאלה אחרת. מחזיר אובייקט נתונים, האקי מעצב✓✓
cashflow_reportבקשה להציג או לשלוח את התזרים עצמו, גם בלי המילה "דוח". מחזיר מחרוזת מוגמרת שמשולבת מילה במילה✓✓
get_company_meetingsסיכומים, החלטות, הכנה לפגישה. מחזיר פגישות שהיו, החדשות ראשונות✓✓
get_company_accountsרק כשהשאלה מציינת חשבון בנק מסוים, כדי להשיג את המזהה שלו לכלי אחר✓✓
create_task"בכל פעם שיש צורך ביצירת משימה לנציג אנושי". ההגדרה לא מפרטת יותר✓✗

כל הכלים כאן מוגדרים בתוך הסוכן (function calling). מלבד פלואו 36 ופלואו 35, שאר המיומנויות הן קוד בשרת, והפלואו רואה רק את החתימה שלהן. מה שקורה בתוכן, כולל סינון לפי הרשאות, לא נראה בהגדרה.

במה 56 ו-58 נבדלים בפועל

מה56 · יועץ58 · בעל העסקלמה זה משנה
מי מדבר עם מי"עמית" מקצועי מטעם HK"היועץ שלו", גוף שני, "העסק שלך"בעל העסק לא אמור לשמוע על תהליכים פנימיים או על "נציג"
מתי האקי רץתמיד, במקביל לבסיס הידערק אם בסיס הידע לא ענהב-56 עד 14 קריאות מודל נזרקות כשיש שאלה מוכנה. ב-58 זה נחסך
פתיחת משימותכלי create_taskאין. סעיף "גבולות התפקיד" אוסר במפורשבעל העסק לא יכול להפעיל את צוות HK דרך הצ'אט. הוא מופנה ליועץ שלו
רשימת קטגוריותלא נטענתנטענת ומוזרקת לאקיקובעת אם נושא נשלח כ-header או כ-category. ב-56 ההנחיה מפנה לרשימה שלא קיימת
גבול תחילת הנתוניםאיןתג data_available_from מוזרק, והאקי חייב לבדוק אותו לפני שליפהמונע "אין נתונים" מבלבל על תקופות שלפני הצטרפות החברה
הפרופיל הפנימימוצג כרקע, כולל "כאבי לקוח"מוצג כרקע, עם איסור לצטט רשמים פנימיים של HKאותו סקיל טוען את הפרופיל בשניהם. הסינון הוא בהנחיה לסוכן, לא בנתונים
כותרות ההמלצות"המלצות", "פעולות לנציג""תובנות", "מה כדאי לעשות"נוסח
חיפוש חופשי לפי תאריךמצב ב' של פלואו 36מצב ב' של פלואו 36פלואו 46 כבר לא כלי נפרד באף אחד מהם

מה בעל העסק לא יקבל, ולמה

  1. פתיחת משימה לצוות HK. אין לו את הכלי. הסוכן אומר שזה מחוץ לתפקידו ומציע להעלות את זה מול היועץ.
  2. ציטוט מהזיכרון הפנימי. הפרופיל נטען במלואו, אבל ההנחיה אוסרת להציג "מה שרשום עליך אצלנו". זו הגנה ברמת ההנחיה בלבד. אם הסקיל load_company_profile_categories מסנן לפי נראות, זה לא נראה בהגדרה.
  3. ממצאי בדיקה יומית או תור תפעול. לאף אחד מהפלואים אין כלי שמחזיר את זה, אז ב-58 זה לא נגיש בכלל. ב-56 גם לא, אלא אם זה מגיע דרך הפרופיל.

איפה זה יכול להישבר

חוסם58: שאלה מוכנה מסוג "רשימה" מסיימת את הפלואו בלי תשובה עובדה מההגדרה: ה-switch אחרי "מנוע האקי" ב-58 מכיל שני מקרים, found is_true ∧ is_list is_false → סינתוז ושמירה, ו-found is_false → האקי, ו-default: end. המקרה found ∧ is_list לא תואם אף מקרה. ב-56 ה-default הוא goto ל"שמירת תשובת האקי". מסקנה: ב-58 באותו מקרה אף step שמכיל save_chat_message לא רץ, ולכן לשיחה בממשק לא נכתבת הודעה מהפלואו. מה שכן קורה: פלואו 35 מפעיל בפנים send_whatsapp_list. אם משהו מחוץ לפלואו שומר הודעה, זה לא נראה בהגדרה. לאימות: להריץ ב-58 שאלה שתואמת נתיב רשימה ולבדוק את השיחה.
חוסם56: ההנחיה מפנה ל-company_categories שהסוכן לא מקבל כלל "רמת החיפוש נקבעת לפי company_categories בלבד" קיים בהנחיות של האקי בשני הפלואים. ב-58 יש סקיל שטוען את הרשימה וקלט בשם הזה. ב-56 אין לא סקיל ולא קלט. מה יקרה: ביועץ, האקי ינחש אם "חומרי גלם" הוא header או category. ניחוש שגוי מסנן לכלום בפלואו 36.
בינוני56: האקי רץ תמיד, גם כשתשובתו נזרקת האקי יושב בתוך הקבוצה המקבילה יחד עם בסיס הידע. כשבסיס הידע מחזיר סכום, הפלואו שומר את תשובת הסינתזר ותשובת האקי נעלמת, אחרי עד 14 איטרציות וקריאות כלים. מה יקרה: עלות וזמן תגובה כפולים על כל שאלה מוכנה. ב-58 זה כבר תוקן. כדאי ליישר את 56 לאותו מבנה.
בינוניהסינתזר מקבל רק מספר אחד ושאלה, בלי היסטוריה ובלי תקופה בשני הפלואים הסינתזר מקבל sum ו-userMessage בלבד, עם includeHistory: false. ההנחיות שלו מתארות טבלאות, גרפים ומגמות, אבל אין לו ממה לבנות אותם. מה יקרה: "כמה הכנסתי חודש שעבר" יקבל מספר בלי ציון החודש. שאלת המשך קצרה ("וזה כולל מע"מ?") שתתאים לנתיב מוכן תיענה בלי הקשר.
בינוניפלואו 36: פרמטרים חובה בלי ערכים מותרים tense מתואר רק כ"זמן". selected_action "אופציונלי, רלוונטי רק לחיפוש נושאי", אבל בתוך הפלואו הוא נכנס לסקיל הסינון בכל המסלולים. account_id מסומן חובה ומותר להעביר ריק, בניגוד להנחיית האקי לא להעביר מחרוזות ריקות לפרמטרי חובה. מה יקרה: האקי ממציא ערך. אם הסקיל מצפה ל-past/future או ל-finance_summary/finance_list, ערך אחר יחזיר ריק בלי שגיאה.
בינוניפלואו 36: topics חסר לגמרי נופל ל-default שהוא end התנאי אחרי איסוף הנתונים בודק length_gt 0 או length_eq 0. הפרמטר אופציונלי, כך שהאקי יכול לא לשלוח אותו בכלל. איך length מתנהג על ערך חסר לא ברור מההגדרה. מה יקרה: אם זה נופל ל-default, הפלואו מסתיים בלי תוצאה והאקי מקבל פלט ריק ועונה "לא נרשמו תנועות". צריך לבדוק בקוד.
בינונימגבלת 14 איטרציות מול כלל "קריאה לכל חודש" ההנחיה דורשת קריאה נפרדת לכל חודש בשאלות מגמה. תשעה חודשים על שני נושאים הם 18 קריאות. onLimit: best_effort אומר שהסוכן יענה עם מה שיש. מה יקרה: טבלה חודשית חסרה בלי שהסוכן אומר זאת. תלוי אם המנוע מריץ קריאות מקבילות באיטרציה אחת, וזה לא נראה בהגדרה.
נמוך"מתי הפגישה הבאה שלי" אין ממה לענות get_company_meetings מחזיר פגישות שהיו. אין כלי ליומן. השאלה מופיעה ברשימת השאלות המוצעות של מסך העוזר של בעל העסק. מה יקרה: האקי יענה מהפרופיל או יגיד שאין לו מידע.
נמוך56 בלי data_available_from הסעיף שמלמד את הסוכן לבדוק מאיזה תאריך יש נתונים קיים רק ב-58. מה יקרה: יועץ ששואל על תקופה שלפני ההצטרפות יקבל "0" או "אין נתונים" בלי הסבר.
לא ברורהקשר של מסך (chat_context) והנחיות דינמיות לכל כלי שניהם לא נמצאים בהגדרת הפלואו. לפי תיעוד השרת, ההקשר מוזרק להיסטוריה וההנחיות הדינמיות מתווספות בשרת. ממצא פתוח בלוח (252) אומר שבמסלול הלקוח הסוכן ענה בלי הדוח. מה לבדוק: סשן אמיתי מתמונת תזרים בתפקיד CUSTOMER, ולראות אם בלוק "הקשר:" מופיע בהיסטוריה שהאקי מקבל.

השאלות המוכנות (פלואו 35)

טבלת השאלות המוכנות נשלפת בזמן ריצה בסקיל fetchFlowPaths. לפי הקוד בשרת, הסקיל קורא מהטבלה flow_paths ומחזיר לכל שורה פעילה (is_active) ארבעה שדות: שאלה לדוגמה (prompt), הפלואו שאליו היא מובילה (flow_id), הערה, וסף התאמה (match_threshold). התוכן של הטבלה לא נכלל בדף: אין נקודת קצה ב-API שחושפת אותה, והדרך היחידה היא מסך הניהול או גישה ישירה לבסיס הנתונים.

מה שכן ידוע: בדוגמאות שבהנחיות השומר מופיעות "כמה הכנסות היו לי חודש קודם" ו"כמה צ'קים יש לי בחוץ". ברשימת הפלואים בשרת יש פלואים בלי נקודת כניסה שנראים כמועמדים: 32 (הכנסות חודש קודם), 41 (כמה צ'קים בחוץ), 45 (צפייה בדוח תזרים). זו הסקה מהשמות, לא מהטבלה.

השומר פוסל התאמה בכל אחד מהמקרים: מונח פיננסי שונה, כוונה שונה (דיווח במקום שאלה), זמן שונה, צורת תשובה שונה (סכום מול פירוט), ותאריך מפורש מול זמן יחסי. כלומר "כמה הכנסתי באוגוסט" לא יתאים לנתיב "חודש קודם" גם אם אוגוסט הוא החודש הקודם.

מקור: GET /api/ai-flow-manager/flows בסביבת הייצור, קריאה בלבד, 28.09.2026. פלואים 56, 58, 35, 36, 38, 39, 46. מה שלא כתוב בהגדרות מסומן כ"לא ברור" או "לפי תיעוד". בלי שמות לקוחות ובלי נתונים אמיתיים.