בפוסט טכני שפורסם בבלוג של AWS, הציג רווי קומאר ארכיטקטורה לבניית סוכן נסיעות קולי (voice travel concierge) עבור אפליקציות של חברות תעופה. הפתרון מבוסס על שלושה שירותים מנוהלים: Amazon Bedrock AgentCore, המשמש כפלטפורמה לבנייה, פריסה והפעלה של סוכני בינה מלאכותית בסביבה מאובטחת; Amazon Nova Sonic ב-Bedrock, מודל דיבור-אל-דיבור (speech-to-speech) לקול בזמן אמת; ו-Amazon Bedrock Knowledge Bases, שירות RAG מנוהל לעיגון תשובות במסמכי מדיניות. הסוכן מאפשר לנוסעים לבצע משימות כגון החלפת מושב, בדיקת עיכובים, עדכון העדפות ארוחה, בירור מדיניות והסלמה לנציג אנושי לפי בקשה, תוך כדי שילוב לצד המסכים הקיימים באפליקציה.
ארכיטקטורת המערכת והפרדת השכבות
הארכיטקטורה המוצגת מפרידה בין ממשק המשתמש (front end), סוכן הבינה המלאכותית ושירותי ה-backend לשכבות נפרדות, מה שמאפשר לפתח ולהרחיב כל רכיב באופן עצמאי. לצורך קישור הסוכן לשירותי ה-backend נעשה שימוש ב-Model Context Protocol (MCP), תקן פתוח להעברת הודעות סטנדרטיות השומר על צימוד רופף (loose coupling).
הפתרון כולל פריסה של מספר שירותי AWS:
- Amazon Cognito – מטפל באימות משתמשים ומספק אישורי AWS זמניים לגישה חתומה לממשקי ה-API.
- Amazon Bedrock AgentCore runtime – מארח את הסוכן בבידוד ברמת microVM עבור כל הפעלה (session).
- Amazon Bedrock AgentCore Gateway – חושף את נקודות הקצה של ה-backend ככלי MCP הניתנים לגילוי.
- Amazon API Gateway – מפרסם את ה-backend כנקודות קצה של REST עם הרשאות AWS Identity and Access Management (IAM).
- AWS Lambda – מריץ את הלוגיקה העסקית עבור מסלולי נסיעה, מפות מושבים, עדכוני נוסעים, סטטוס טיסה, מועדון לקוחות, בדיקות מדיניות והסלמות.
- Amazon DynamoDB – שומר פרופילי לקוחות, הזמנות, נוסעים, מפות מושבים, היסטוריית רכישות, העדפות, תמלולי שיחות ונתוני טיסות.
- Amazon Bedrock Knowledge Bases – עונה על שאלות מדיניות על ידי עיגון במסמכי חברת התעופה.
- Amazon Simple Email Service (SES) – שולח התראות בדואר אלקטרוני.
- AWS Amplify – מארח את ממשק ה-React של האפליקציה.
התשתית מחולקת לארבעה מקטעים ב-AWS CDK: מקטע A כולל חמש מחסניות CDK לתשתיות ה-backend; מקטע B כולל מחסנית אחת ליצירת ה-AgentCore Gateway עם פרוטוקול MCP; מקטע C כולל שתי מחסניות להקצאת תשתית ה-runtime, כולל שימוש ב-Amazon ECR לתמונת הקונטיינר, Amazon S3 להעלאות קוד מקור ו-AWS CodeBuild להפקת תמונת ARM64 Docker; ומקטע D כולל מחסנית לפריסת אפליקציית ה-React ב-AWS Amplify.
זרימת בקשות המשתמש וחיבור WebSocket
זרימת האינטראקציה מתחילה כאשר המשתמש פותח את אפליקציית הרשת ב-AWS Amplify ומזין פרטי התחברות. Amazon Cognito מאמת את הבקשה ומחזיר אסימוני JWT ואישורי AWS זמניים. לאחר מכן, ממשק המשתמש פותח חיבור WebSocket חתום ב-SigV4 ישירות מול Amazon Bedrock AgentCore.
זמן הריצה מאמת את האסימון מול Cognito ומאתחל את Amazon Nova 2.5 Sonic. כאשר המשתמש מדבר, האודיו מוזרם בפורמט 16 kHz PCM דרך ה-WebSocket. מודל Nova 2.5 Sonic מעבד את הדיבור ומפעיל קריאות לכלים (tool calls). הסוכן מפעיל את ה-AgentCore Gateway באמצעות MCP כדי לאחזר נתוני טיסה או לבצע פעולות, וה-Gateway מתרגם את הקריאות לבקשות REST API המועברות ל-API Gateway ולפונקציות Lambda. הנתונים נשלפים מ-DynamoDB, ו-Nova 2.5 Sonic מחזיר תשובה קולית המוזרמת חזרה למשתמש דרך חיבור ה-WebSocket.
יכולות עיבוד קולי עם Amazon Nova 2.5 Sonic
הפתרון עושה שימוש ב-Amazon Nova 2.5 Sonic, מודל קול-אל-קול בעל יכולות הסקת מסקנות בזמן אמת. המודל מספק זיהוי דיבור במגוון מבטאים, עמידות לרעשי רקע, תשובות קוליות המתאימות עצמן לטון הדיבור של הנוסע, והזרמה דו-כיוונית בשיהוי נמוך.
בנוסף, המערכת כוללת קריאות אסינכרוניות לכלים במקביל ללא עצירת השיחה, מיסוך שיהוי (latency masking) על ידי הפקת תגובות קוליות זמניות בזמן ההמתנה לתוצאות, יכולת התפרצות (barge-in), ניהול תורות דיבור טבעי ושמירה על הקשר לאורך תורות מרובים. הסוכן מוגדר לפעול לפי דפוס של אישור לפני כתיבה (confirm-before-write), המחייב אישור מהנוסע לפני ביצוע שינויים, ומקריא מספרי טיסות וקודי אישור תו אחר תו.
מענה לשאלות מדיניות והסלמה לנציג אנושי
עבור שאלות בנושאי כבודה, דמי שינוי, טיסה עם חיות מחמד ותנאי מועדון לקוחות, הסוכן מתחבר ל-Amazon Bedrock Knowledge Bases דרך מחבר ייעודי ב-AgentCore Gateway. מסמכי המדיניות מועלים ל-Amazon S3, והשירות מטפל בהטמעה (embedding), חלוקה למקטעים, אינדוקס, אחסון ב-Amazon S3 Vectors ואיחזור. מנגנון Smart Parsing מכין קובצי PDF כך שטבלאות ומבנים מורכבים יאותחרו בצורה מדויקת.
כאשר משתמש מבקש לשוחח עם נציג אנושי, או כאשר הסוכן אינו יכול למלא את הבקשה, מופעל כלי ה-EscalateToAgent לאחר קבלת אישור מהמשתמש. פונקציית Lambda מתעדת את ההסלמה ב-DynamoDB ומחזירה מספר פנייה וזמן המתנה משוער. ממשק ה-Amplify מפעיל את החיוג למספר התמיכה שהוגדר במערכת ממכשירו של המשתמש.
דרישות מקדימות ופריסה
הפריסה מתבצעת באמצעות תסריט AWS CDK יחיד. הדרישות המקדימות כוללות חשבון AWS, גישה למודל Amazon Nova 2.5 Sonic באזור הפריסה, Node.js בגרסה 20.x ומעלה, Python בגרסה 3.12 ומעלה, AWS CLI מגרסה 2.x, ו-AWS CDK CLI מגרסה 2.x. ניטור המערכת מתבצע באמצעות Amazon CloudWatch, והצפנת הנתונים במנוחה מנוהלת באמצעות AWS KMS. הסרת המשאבים מתבצעת בסדר הפוך לפריסה באמצעות תסריט ייעודי.