טלפון
קלט ופלט קולי, ו-SMS. לא שיחות טלפון.
מה זה עושה
זיהוי וסינתזת דיבור פועלים באירוח עצמי (self-hosted), עם ניתוב לפי שפה בין ספקים שונים, ושכבת ניהול תורות המטפלת בקטיעת דיבור ובהזרמה ברמת המשפט, כדי ששיחה קולית לא תרגיש כמו מכשיר קשר. נתיב SMS נפרד מיושם מאחורי דגל תכונה (feature flag) עבור הודעות טקסט.
למה זה חשוב
קול הוא המקום שבו תפיסת ה"עוזר" הופכת למציאותית או קורסת, והשהיה (latency) היא כל הסיפור. אירוח עצמי של הדיבור אומר שזמן הסבב (round trip) אינו נתון לחסדי תור של צד שלישי.
איך זה עובד
הדיבור פועל באירוח עצמי כברירת מחדל
הזיהוי והסינתזה פועלים בקונטיינרים משלהם, עם ניתוב ספקים לפי שפה עבור שפות שהמודלים המקומיים מתקשים איתן.
ניהול התורות הוא מפורש
שער תורות ומפרק משפטים מנהלים קטיעות והזרמה, במקום להמתין לתגובה מלאה לפני תחילת הדיבור.
הטלפוניה היא ב-SMS בלבד וכבויה כברירת מחדל
נתיב ה-SMS מובנה אך חסום מאחורי דגל ודורשת חשבון ספק תקשורת. שיחות קוליות היו מחוץ לטווח ההגדרה באופן מפורש, ולא פיתחנו אותן.
שאלות
- האם הסוכן שלי יכול לענות לטלפון?
- לא. אין שיחות נכנסות או יוצאות. קול עובד בדפדפן; טלפוניה היא ב-SMS בלבד וחסומה כרגע.
- באילו שפות יש תמיכה בדיבור?
- מגוון רחב של שפות, עם ניתוב לספקים שונים לפי שפה, כולל ספק ייעודי לשפות הודיות שבהן המודלים הכלליים מציגים ביצועים נמוכים.
The rest of the bag
AccessControl
הרשאות ברמת המסמך הבודד שמסננות תשובות, לא רק דפים.
פענוח המדיניות נשמר במטמון (cache) לכל הפעלה (session) לצורך מהירות; שינוי הרשאה מופץ בעת ביטול תוקף המטמון (cache invalidation) ולא באופן מיידי עבור כל בקשה פעילה.
תיעוד
עץ תיקיות שהסוכן קורא, וקובץ הגדרות שהוא מציית לו.
החילוץ מכסה קובצי PDF, גיליונות אלקטרוניים ותמלילים. פורמטים בינאריים אקזוטיים אינם מנותחים.
אירועים
ספר תיעוד עמיד של מה שהסוכנים עשו, ומדוע.
אפיק האירועים הפנימי (in-process event bus) הוא פולט של צומת יחיד (single-node emitter), ולא מתווך מבוזר. התיעוד העמיד בין הסוכנים הוא ספר משימות נפרד ב-Postgres.
That was step 1 of 6: a request arrives. Next, the subdomain is the isolation boundary, so the request resolves to one workspace, one database, and one question of whether it is even in scope.