(לחצו על התמונה למעלה לצפייה בסרטון של השיעור)
ככל שהשימוש בסוכני AI גדל, כך גם הצורך בפרוטוקולים שמבטיחים סטנדרטיזציה, אבטחה ותמיכה בחדשנות פתוחה. בשיעור זה נסקור 3 פרוטוקולים שמטרתם לענות על הצורך הזה - Model Context Protocol (MCP), Agent to Agent (A2A) ו-Natural Language Web (NLWeb).
בשיעור זה נלמד:
• כיצד MCP מאפשר לסוכני AI לגשת לכלים ולנתונים חיצוניים כדי להשלים משימות משתמש.
• כיצד A2A מאפשר תקשורת ושיתוף פעולה בין סוכני AI שונים.
• כיצד NLWeb מביא ממשקי שפה טבעית לכל אתר אינטרנט, ומאפשר לסוכני AI לגלות ולתקשר עם התוכן.
• לזהות את המטרה המרכזית והיתרונות של MCP, A2A ו-NLWeb בהקשר של סוכני AI.
• להסביר כיצד כל פרוטוקול מקל על תקשורת ואינטראקציה בין LLMs, כלים וסוכנים אחרים.
• להכיר את התפקידים הייחודיים שכל פרוטוקול ממלא בבניית מערכות סוכניות מורכבות.
Model Context Protocol (MCP) הוא תקן פתוח שמספק דרך סטנדרטית ליישומים להציע הקשר וכלים ל-LLMs. זה מאפשר “מתאם אוניברסלי” למקורות נתונים וכלים שונים שסוכני AI יכולים להתחבר אליהם בצורה עקבית.
בואו נבחן את הרכיבים של MCP, היתרונות בהשוואה לשימוש ישיר ב-API, ודוגמה כיצד סוכני AI עשויים להשתמש בשרת MCP.
MCP פועל על ארכיטקטורת לקוח-שרת, והרכיבים המרכזיים הם:
• Hosts הם יישומי LLM (לדוגמה, עורך קוד כמו VSCode) שמתחילים את החיבורים לשרת MCP.
• Clients הם רכיבים בתוך יישום ה-host שמתחזקים חיבורים אחד-על-אחד עם שרתים.
• Servers הם תוכנות קלות משקל שמציעות יכולות ספציפיות.
הפרוטוקול כולל שלושה פרימיטיבים מרכזיים שהם היכולות של שרת MCP:
• Tools: אלו פעולות או פונקציות נפרדות שסוכן AI יכול לקרוא כדי לבצע פעולה. לדוגמה, שירות מזג אוויר עשוי להציע כלי “קבל מזג אוויר”, או ששרת מסחר אלקטרוני עשוי להציע כלי “רכוש מוצר”. שרתי MCP מפרסמים את שם הכלי, תיאורו וסכמת הקלט/פלט ברשימת היכולות שלהם.
• Resources: אלו פריטי נתונים או מסמכים לקריאה בלבד ששרת MCP יכול לספק, והלקוחות יכולים לשלוף אותם לפי דרישה. דוגמאות כוללות תוכן קבצים, רשומות מסד נתונים או קבצי לוג. משאבים יכולים להיות טקסט (כמו קוד או JSON) או בינאריים (כמו תמונות או PDFs).
• Prompts: אלו תבניות מוגדרות מראש שמספקות הצעות להנחיות, ומאפשרות זרימות עבודה מורכבות יותר.
MCP מציע יתרונות משמעותיים לסוכני AI:
• גילוי כלים דינמי: סוכנים יכולים לקבל באופן דינמי רשימה של כלים זמינים משרת יחד עם תיאורים של מה הם עושים. זה שונה מ-APIs מסורתיים, שדורשים לעיתים קרובות קידוד סטטי לאינטגרציות, כלומר כל שינוי ב-API מחייב עדכוני קוד. MCP מציע גישה של “אינטגרציה אחת”, שמובילה להתאמה רבה יותר.
• אינטרופרביליות בין LLMs: MCP עובד עם LLMs שונים, ומספק גמישות להחליף מודלים מרכזיים כדי להעריך ביצועים טובים יותר.
• אבטחה סטנדרטית: MCP כולל שיטת אימות סטנדרטית, שמשפרת את יכולת ההרחבה בעת הוספת גישה לשרתים נוספים של MCP. זה פשוט יותר מניהול מפתחות וסוגי אימות שונים עבור APIs מסורתיים.
דמיינו שמשתמש רוצה להזמין טיסה באמצעות עוזר AI שמופעל על ידי MCP.
חיבור: עוזר ה-AI (לקוח MCP) מתחבר לשרת MCP שמסופק על ידי חברת תעופה.
גילוי כלים: הלקוח שואל את שרת MCP של חברת התעופה, “אילו כלים זמינים לך?” השרת משיב עם כלים כמו “חפש טיסות” ו”הזמן טיסות”.
הפעלת כלי: המשתמש מבקש מהעוזר, “אנא חפש טיסה מפורטלנד להונולולו.” עוזר ה-AI, באמצעות ה-LLM שלו, מזהה שהוא צריך לקרוא לכלי “חפש טיסות” ומעביר את הפרמטרים הרלוונטיים (מוצא, יעד) לשרת MCP.
ביצוע ותגובה: שרת MCP, שפועל כעטיפה, מבצע את הקריאה בפועל ל-API הפנימי של חברת התעופה. הוא מקבל את מידע הטיסה (לדוגמה, נתוני JSON) ושולח אותו חזרה לעוזר ה-AI.
אינטראקציה נוספת: עוזר ה-AI מציג את אפשרויות הטיסה. לאחר שהמשתמש בוחר טיסה, העוזר עשוי להפעיל את כלי “הזמן טיסה” באותו שרת MCP, ולהשלים את ההזמנה.
בעוד MCP מתמקד בחיבור LLMs לכלים, Agent-to-Agent (A2A) protocol לוקח את זה צעד קדימה על ידי אפשרות לתקשורת ושיתוף פעולה בין סוכני AI שונים. A2A מחבר סוכני AI בין ארגונים, סביבות וערימות טכנולוגיות שונות כדי להשלים משימה משותפת.
נבחן את הרכיבים והיתרונות של A2A, יחד עם דוגמה כיצד ניתן ליישם אותו באפליקציית הנסיעות שלנו.
A2A מתמקד באפשרות לתקשורת בין סוכנים ובכך שהם יעבדו יחד כדי להשלים תת-משימה של המשתמש. כל רכיב בפרוטוקול תורם לכך:
בדומה לאופן שבו שרת MCP משתף רשימת כלים, כרטיס סוכן כולל:
מבצע הסוכן אחראי על העברת ההקשר של שיחת המשתמש לסוכן מרוחק, הסוכן המרוחק זקוק לכך כדי להבין את המשימה שיש להשלים. בשרת A2A, סוכן משתמש ב-LLM שלו כדי לנתח בקשות נכנסות ולבצע משימות באמצעות הכלים הפנימיים שלו.
לאחר שסוכן מרוחק השלים את המשימה המבוקשת, תוצר העבודה שלו נוצר כארטיפקט. ארטיפקט מכיל את תוצאת העבודה של הסוכן, תיאור של מה הושלם, והקשר טקסט שנשלח דרך הפרוטוקול. לאחר שהארטיפקט נשלח, החיבור עם הסוכן המרוחק נסגר עד שיהיה צורך בו שוב.
רכיב זה משמש לניהול עדכונים והעברת הודעות. הוא חשוב במיוחד בסביבות ייצור למערכות סוכניות כדי למנוע סגירת החיבור בין סוכנים לפני שמשימה הושלמה, במיוחד כאשר זמני השלמת משימות עשויים להיות ארוכים יותר.
• שיתוף פעולה משופר: מאפשר לסוכנים מספקים ופלטפורמות שונות לתקשר, לשתף הקשר ולעבוד יחד, ומקל על אוטומציה חלקה בין מערכות שבדרך כלל אינן מחוברות.
• גמישות בבחירת מודלים: כל סוכן A2A יכול להחליט איזה LLM הוא משתמש כדי לשרת את בקשותיו, ומאפשר מודלים מותאמים או משופרים לכל סוכן, בניגוד לחיבור LLM יחיד בכמה תרחישי MCP.
• אימות מובנה: אימות משולב ישירות בפרוטוקול A2A, ומספק מסגרת אבטחה חזקה לאינטראקציות בין סוכנים.
בואו נרחיב את תרחיש הזמנת הנסיעות שלנו, אך הפעם באמצעות A2A.
בקשת משתמש לסוכן רב-משימתי: משתמש מתקשר עם סוכן “סוכן נסיעות” A2A, אולי באומרו, “אנא הזמן לי טיול שלם להונולולו לשבוע הבא, כולל טיסות, מלון ורכב שכור”.
תזמור על ידי סוכן נסיעות: סוכן הנסיעות מקבל את הבקשה המורכבת הזו. הוא משתמש ב-LLM שלו כדי לחשוב על המשימה ולקבוע שהוא צריך לתקשר עם סוכנים מתמחים אחרים.
תקשורת בין סוכנים: סוכן הנסיעות משתמש בפרוטוקול A2A כדי להתחבר לסוכנים במורד הזרם, כמו “סוכן חברת תעופה”, “סוכן מלון” ו”סוכן השכרת רכב” שנוצרו על ידי חברות שונות.
ביצוע משימות מואצלות: סוכן הנסיעות שולח משימות ספציפיות לסוכנים המתמחים הללו (לדוגמה, “מצא טיסות להונולולו”, “הזמן מלון”, “השכר רכב”). כל אחד מהסוכנים המתמחים הללו, שמפעילים את ה-LLMs שלהם ומשתמשים בכלים שלהם (שיכולים להיות שרתי MCP בעצמם), מבצע את חלקו הספציפי בהזמנה.
תגובה מאוחדת: לאחר שכל הסוכנים במורד הזרם משלימים את משימותיהם, סוכן הנסיעות מאגד את התוצאות (פרטי טיסה, אישור מלון, הזמנת רכב שכור) ושולח תגובה מקיפה בסגנון צ’אט חזרה למשתמש.
אתרי אינטרנט היו במשך זמן רב הדרך העיקרית עבור משתמשים לגשת למידע ולנתונים ברחבי האינטרנט.
בואו נבחן את הרכיבים השונים של NLWeb, היתרונות של NLWeb ודוגמה כיצד NLWeb עובד על ידי התבוננות באפליקציית הנסיעות שלנו.
אפליקציית NLWeb (קוד שירות ליבה): המערכת שמעבדת שאלות בשפה טבעית. היא מחברת את החלקים השונים של הפלטפורמה כדי ליצור תגובות. ניתן לחשוב עליה כמנוע שמפעיל את תכונות השפה הטבעית של אתר אינטרנט.
פרוטוקול NLWeb: זהו סט בסיסי של כללים לאינטראקציה בשפה טבעית עם אתר אינטרנט. הוא שולח תגובות בפורמט JSON (לעיתים קרובות באמצעות Schema.org). מטרתו ליצור בסיס פשוט ל”AI Web”, באותו אופן ש-HTML הפך את זה לאפשרי לשתף מסמכים באינטרנט.
שרת MCP (נקודת קצה של Model Context Protocol): כל הגדרת NLWeb פועלת גם כשרת MCP. המשמעות היא שהיא יכולה לשתף כלים (כמו שיטת “שאל”) ונתונים עם מערכות AI אחרות. בפועל, זה הופך את התוכן והיכולות של האתר לשימושיים על ידי סוכני AI, ומאפשר לאתר להפוך לחלק מ”אקוסיסטם הסוכנים” הרחב יותר.
מודלי הטמעה: מודלים אלו משמשים להמרת תוכן האתר לייצוגים מספריים הנקראים וקטורים (הטמעות). וקטורים אלו לוכדים משמעות בצורה שהמחשבים יכולים להשוות ולחפש. הם מאוחסנים במסד נתונים מיוחד, והמשתמשים יכולים לבחור איזה מודל הטמעה הם רוצים להשתמש.
מסד נתונים וקטורי (מנגנון אחזור): מסד נתונים זה מאחסן את ההטמעות של תוכן האתר. כאשר מישהו שואל שאלה, NLWeb בודק את מסד הנתונים הווקטורי כדי למצוא במהירות את המידע הרלוונטי ביותר. הוא מספק רשימה מהירה של תשובות אפשריות, מדורגות לפי דמיון. NLWeb עובד עם מערכות אחסון וקטוריות שונות כמו Qdrant, Snowflake, Milvus, Azure AI Search ו-Elasticsearch.
שקלו שוב את אתר הזמנת הנסיעות שלנו, אך הפעם הוא מופעל על ידי NLWeb.
קליטת נתונים: קטלוגי המוצרים הקיימים של אתר הנסיעות (לדוגמה, רשימות טיסות, תיאורי מלונות, חבילות טיולים) מעוצבים באמצעות Schema.org או נטענים דרך עדכוני RSS. הכלים של NLWeb קולטים את הנתונים המובנים הללו, יוצרים הטמעות, ומאחסנים אותם במסד נתונים וקטורי מקומי או מרוחק.
שאילתה בשפה טבעית (אנושית): משתמש מבקר באתר, ובמקום לנווט בתפריטים, מקליד בממשק צ’אט: “מצא לי מלון ידידותי למשפחות בהונולולו עם בריכה לשבוע הבא”.
עיבוד NLWeb: אפליקציית NLWeb מקבלת את השאילתה. היא שולחת את השאילתה ל-LLM להבנה ובמקביל מחפשת במסד הנתונים הווקטורי רשימות מלונות רלוונטיות.
תוצאות מדויקות: ה-LLM עוזר לפרש את תוצאות החיפוש ממסד הנתונים, לזהות את ההתאמות הטובות ביותר על בסיס קריטריונים של “ידידותי למשפחות”, “בריכה” ו”הונולולו”, ואז מעצב תגובה בשפה טבעית. חשוב לציין, התגובה מתייחסת למלונות בפועל מקטלוג האתר, ומונעת מידע מומצא.
אינטראקציה עם סוכן AI: מכיוון ש-NLWeb משמש כשרת MCP, סוכן נסיעות AI חיצוני יכול גם להתחבר למופע NLWeb של האתר הזה. סוכן ה-AI יכול להשתמש בשיטת ask
של MCP כדי לשאול את האתר ישירות: ask("האם יש מסעדות ידידותיות לטבעונים באזור הונולולו שמומלצות על ידי המלון?")
. מופע NLWeb יעבד זאת, תוך ניצול מסד הנתונים של מידע על מסעדות (אם נטען), ויחזיר תגובת JSON מובנית.
הצטרפו ל-Azure AI Foundry Discord כדי לפגוש לומדים אחרים, להשתתף בשעות משרד ולקבל תשובות לשאלות שלכם על סוכני AI.
כתב ויתור:
מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.