מה זה
בניתי פלטפורמה שמאפשרת להקים סוכן קולי נפרד לכל לקוח עסקי. לכל סוכן בוחרים קול, כותבים ברכת פתיחה, הוראות שיחה, מטרות ושאלות נפוצות, ומגדירים מתי הוא מעביר לנציג אנושי.
המערכת עברית-first ו-RTL, ובנויה כדי להימכר לעסקים: מסלול מהיר שמתחיל בהדגמה חיה בדפדפן ומתקדם לחיבור למספר טלפון דרך Twilio.
הבעיה
עסקים מפספסים שיחות. תפריט IVR ישן מתיש את המתקשר ולא באמת עונה, וסוכן קולי טוב דורש בדרך כלל אינטגרציה מורכבת לפני שרואים אם הוא בכלל מתאים.
רציתי שאפשר יהיה להראות ללקוח סוכן שמדבר איתו, בקול, כבר בפגישה הראשונה - בלי התקנה ובלי מספר טלפון.
מה בניתי
המערכת בנויה משלושה מסכים: מסך בנייה (studio) עם חמש תבניות עברית - מסעדה, מרפאה, נדל"ן, מספרה ומזכירה וירטואלית - ושישה קולות לבחירה עם האזנה מקדימה; מסך שיחה חיה (agent) שבו הדיבור עובר מהמיקרופון למוח וחזרה לקול; ודף סטטוס נפרד.
המוח הוא Claude Haiku 4.5 עם tool-use ורשימת כלים מצומצמת ומבוקרת: תיעוד ליד, העברה לנציג אנושי, וסיום שיחה. כל כלי ניתן להפעלה או כיבוי לפי הסוכן, והאירועים שנוצרים בשיחה מוצגים בזמן אמת בממשק.
איך זה עובד
לב המערכת הוא לולאת שיחה half-duplex: ברכה, האזנה, חשיבה, דיבור, ושוב האזנה. הזיהוי הקולי מתנתק בזמן הדיבור כדי למנוע כפילות תור, ולולאת הכלים רצה עד ארבע איטרציות בתוך תור אחד לפני שהתשובה חוזרת למשתמש.
לקול חופשי ואיכותי חיברתי edge-tts - מנוע נוירלי חינמי ללא מפתח, עם שני קולות עבריים (he-IL-HilaNeural ו-he-IL-AvriNeural). אם הוא לא זמין, יש נפילה חלקה ל-Web Speech של הדפדפן.
הסטאק
פרונט vanilla ללא build, מוגש כסטטי על Vercel, מול Cloudflare Worker שמריץ את המוח (Claude) ומשמש כ-proxy ל-TTS. המפתח נשמר כ-secret של ה-Worker או מוזן מקומית בדפדפן, ולעולם לא מוחזר החוצה.
העיצוב מבוסס טוקנים - כחול פרימיום על קנבס בהיר קריר, עם orb קולי מרובד ואנימציות גלילה בסגנון ElevenLabs/Framer. הכל נגיש ומכבד reduced-motion.
התוצאה
המערכת חיה על maaneh.vercel.app, כולל דמו קולי שמתנגן בדפדפן. הצד הלוגי אומת ב-28 בדיקות אוטומטיות ירוקות מקצה לקצה מול המוח, ועבר סבב ביקורת אדוורסרי שבו אותרו ותוקנו כמה באגים בלולאת השיחה.
כדי שהמוח יחשוב נדרש מפתח Anthropic, בעוד הקול עצמו כבר עובד חינמית דרך edge-tts. הקוד פרטי ומקומי; הדף הזה מתאר את המערכת בלי לחשוף מקור או מפתחות.