ai-agents-for-beginners

שימוש בפרוטוקולים אגנטיים (MCP, A2A ו-NLWeb)

פרוטוקולים אגנטיים

(לחצו על התמונה למעלה לצפייה בסרטון של השיעור)

ככל שהשימוש בסוכני בינה מלאכותית הולך וגדל, כך מתגברת הצורך בפרוטוקולים שמבטיחים סטנדרטיזציה, אבטחה ותמיכה בחדשנות פתוחה. בשיעור זה, נכסה 3 פרוטוקולים שמטרתם לענות על צורך זה - Model Context Protocol (MCP), Agent to Agent (A2A) ו-Natural Language Web (NLWeb).

הקדמה

בשיעור זה נסקור:

• כיצד MCP מאפשר לסוכני בינה מלאכותית לגשת לכלים ולנתונים חיצוניים כדי להשלים משימות משתמש.

• כיצד A2A מאפשר תקשורת ושיתוף פעולה בין סוכני בינה מלאכותית שונים.

• כיצד NLWeb מביא ממשקי שפה טבעית לכל אתר אינטרנט ומאפשר לסוכני בינה מלאכותית לגלות ולהתחבר לתוכן.

יעדי הלמידה

לזהות את המטרה והיתרונות המרכזיים של MCP, A2A ו-NLWeb בהקשר של סוכני בינה מלאכותית.

להסביר כיצד כל פרוטוקול מקל על תקשורת ואינטראקציה בין LLMs, כלים וסוכנים אחרים.

להכיר את התפקידים הייחודיים שכל פרוטוקול ממלא בבניית מערכות אגנטיות מורכבות.

פרוטוקול Model Context

ה-Model Context Protocol (MCP) הוא תקן פתוח שמספק דרך סטנדרטית ליישומים לספק הקשר וכלים ל-LLMs. זה מאפשר “מתאם אוניברסלי” למקורות נתונים וכלים שונים שיכולים להתחבר אליהם סוכני AI באופן עקבי.

בואו נבחן את רכיבי ה-MCP, את היתרונות בהשוואה לשימוש ישיר ב-API, ודוגמה לאופן שבו סוכני AI עשויים להשתמש בשרת MCP.

רכיבי ליבה של MCP

MCP פועל במבנה לקוח-שרת והרכיבים המרכזיים הם:

Hosts הם יישומי LLM (לדוגמה, עורך קוד כמו VSCode) שמתחילים את החיבורים לשרת MCP.

Clients הם רכיבים בתוך יישום ה-host שמתחזקים חיבורים אחד-לאחד עם השרתים.

Servers הם תוכניות קלות שמשדרות יכולות ספציפיות.

בפרוטוקול כלולים שלושה פרימיטיבים מרכזיים שהם היכולות של שרת MCP:

כלים: פעולות או פונקציות דיסקרטיות שסוכן AI יכול לקרוא כדי לבצע פעולה. לדוגמה, שירות מזג אוויר עשוי לשדר כלי “קבל מזג אוויר”, או שרת e-commerce עשוי לשדר כלי “רכוש מוצר”. שרתי MCP מפרסמים את שם הכלי, תיאורו, וסכמת הקלט/פלט ברשימת היכולות שלהם.

משאבים: פריטי נתונים או מסמכים לקריאה בלבד ששרת MCP יכול לספק, ולקוחות יכולים לאסוף אותם על פי דרישה. דוגמאות כוללות תכני קבצים, רשומות מסד נתונים או קובצי לוג. המשאבים יכולים להיות טקסטואלים (כמו קוד או JSON) או בינאריים (כמו תמונות או PDF).

פרומפטים: תבניות מוגדרות מראש שמציעות פרומפטים מומלצים ומאפשרות תהליכים מורכבים יותר.

יתרונות MCP

MCP מציע יתרונות משמעותיים לסוכני AI:

גילוי כלים דינמי: סוכנים יכולים לקבל באופן דינמי רשימה של כלים זמינים מהשרת יחד עם תיאורים של מה שהם עושים. זאת בניגוד ל-APIs המסורתיים, שלרוב מצריכים קידוד סטטי לאינטגרציות, מה שאומר שכל שינוי ב-API מחייב עדכון קוד. MCP מציע גישה של “אינטגרציה פעם אחת”, שמביאה להתאמה רבה יותר.

תאימות בין LLMs שונים: MCP פועל על פני LLMs שונים ומספק גמישות להחליף דגמים מרכזיים כדי להעריך ביצועים טובים יותר.

אבטחה סטנדרטית: MCP כולל שיטת אימות סטנדרטית, משפרת את הקנה מידה בעת הוספת גישה לשרתי MCP נוספים. זה פשוט יותר מניהול מפתחות וסוגי אימות שונים עבור APIs מסורתיים.

דוגמה ל-MCP

מפה

תארו לעצמכם שמשתמש רוצה להזמין טיסה בעזרת עוזר AI מבוסס MCP.

  1. חיבור: העוזר AI (לקוח MCP) מתחבר לשרת MCP שניתן על ידי חברת תעופה.

  2. גילוי כלים: הלקוח שואל את שרת MCP של חברת התעופה, “אילו כלים זמינים אצלכם?” השרת משיב עם כלים כמו “חפש טיסות” ו”הזמן טיסות”.

  3. קריאת כלי: אתם מבקשים מהעוזר AI, “בבקשה חפש טיסה מפורטלנד להונולולו.” העוזר AI, באמצעות ה-LLM שלו, מזהה שיש לקרוא לכלי “חפש טיסות” ומעביר את הפרמטרים הרלוונטיים (מוצא, יעד) לשרת MCP.

  4. ביצוע ומענה: שרת MCP, הפועל כעטיפה, מבצע את הקריאה האמיתית ל-API הפנימי של חברת התעופה. לאחר מכן מקבל את מידע הטיסה (למשל JSON) ושולח אותו חזרה לעוזר AI.

  5. אינטראקציה נוספת: העוזר AI מציג את אפשרויות הטיסה. לאחר שבוחרים טיסה, העוזר יכול לקרוא את כלי “הזמן טיסה” באותו שרת MCP ולסיים את ההזמנה.

פרוטוקול Agent-to-Agent (A2A)

בעוד ש-MCP מתמקד בחיבור LLMs לכלים, פרוטוקול Agent-to-Agent (A2A) לוקח את זה צעד נוסף ומאפשר תקשורת ושיתוף פעולה בין סוכני AI שונים. A2A מחבר סוכני AI מארגונים, סביבות וטכנולוגיות שונות כדי להשלים משימה משותפת.

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

רכיבי ליבה של A2A

A2A מתמקד בהקניית תקשורת בין סוכנים ובעבודתם המשותפת להשלמת משימה משנה למשתמש. כל רכיב בפרוטוקול תורם לכך:

כרטיס סוכן

בדומה לאופן שבו שרת MCP משתף רשימת כלים, בכרטיס סוכן יש:

מבצע סוכן

מבצע הסוכן אחראי על העברת ההקשר של שיחת המשתמש לסוכן מרוחק, הסוכן המרוחק זקוק לכך להבנת המשימה שעליו להשלים. בשרת A2A, סוכן משתמש ב-LLM משלו כדי לפרש בקשות נכנסות ולבצע משימות באמצעות כלים פנימיים משלו.

ארטיפקט

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

תור אירועים

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

יתרונות A2A

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

גמישות בבחירת מודל: כל סוכן A2A יכול לבחור איזה LLM הוא משתמש לשירות הבקשות שלו, מה שמאפשר אופטימיזציה או דגמים מותאמים אישית לפי סוכן, שלא כמו חיבור LLM יחיד במקרים מסוימים ב-MCP.

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

דוגמה ל-A2A

איילן A2A

נרחיב את תרחיש ההזמנה שלנו, אך הפעם באמצעות A2A.

  1. בקשת משתמש מולטי-סוכן: משתמש מתקשר עם לקוח/סוכן “סוכן נסיעות” ב-A2A, אולי אומר “בבקשה הזמן טיול מלא להונולולו לשבוע הבא, כולל טיסות, מלון והשכרת רכב”.

  2. ארגון על ידי סוכן הנסיעות: סוכן הנסיעות מקבל את הבקשה המורכבת הזו. הוא משתמש ב-LLM שלו כדי להעריך את המשימה ולקבוע שהוא צריך לתקשר עם סוכנים מומחים אחרים.

  3. תקשורת בין-סוכנית: סוכן הנסיעות משתמש בפרוטוקול A2A כדי להתחבר לסוכנים נמוכים יותר, כמו “סוכן חברת התעופה”, “סוכן המלון” ו-“סוכן השכרת הרכב” שנוצרו על ידי חברות שונות.

  4. הקצאת ביצוע משימה: סוכן הנסיעות שולח משימות ספציפיות לסוכנים המומחים הללו (למשל, “מצא טיסות להונולולו”, “הזמן מלון”, “השכר רכב”). כל אחד מהסוכנים המומחים, שמריצים את ה-LLM שלהם ומשתמשים בכלים משלהם (אשר יכולים להיות שרתי MCP בעצמם), מבצע את חלק ההזמנה שלו.

  5. תגובה משולבת: לאחר שכל הסוכנים הנמוכים משלימים את משימותיהם, סוכן הנסיעות אוסף את התוצאות (פרטי טיסה, אישור מלון, הזמנת רכב) ושולח תגובה מפורטת בסגנון צ’אט בחזרה למשתמש.

Natural Language Web (NLWeb)

אתרי אינטרנט הם כבר שנים הדרך העיקרית למשתמשים לגשת למידע ונתונים ברחבי האינטרנט.

בואו נבחן את הרכיבים השונים של NLWeb, את היתרונות שלו ודוגמה לאופן שבו NLWeb עובד דרך אפליקציית הנסיעות שלנו.

רכיבי NLWeb

NLWeb לדוגמה

NLWeb

נחשוב שוב על אתר הזמנות הנסיעות שלנו, אך הפעם הוא מופעל על ידי NLWeb.

  1. קליטת נתונים: קטלוגי המוצרים הקיימים באתר הנסיעות (למשל, רשימות טיסות, תיאורי מלונות, חבילות טיולים) מעוצבים באמצעות Schema.org או נטענים באמצעות RSS. כלים של NLWeb קלטים את הנתונים המבניים, יוצרים הטמעות ואוצרים אותם במסד נתונים וקטורי מקומי או מרוחק.

  2. שאילתת שפה טבעית (אנושית): משתמש מבקר באתר, במקום לנווט בתפריטים, מקליד בממשק צ’אט: “מצא לי מלון ידידותי למשפחות בהונולולו עם בריכה לשבוע הבא”.

  3. עיבוד NLWeb: היישום NLWeb מקבל את השאילתה. הוא שולח את השאילתה ל-LLM להבנה ובמקביל מחפש במסד הנתונים הווקטורי רישומים רלוונטיים של מלונות.

  4. תוצאות מדויקות: ה-LLM מסייע לפרש את תוצאות החיפוש, לזהות את ההתאמות הטובות ביותר על בסיס הקריטריונים “ידידותי למשפחות”, “בריכה” ו”הונולולו”, ואז מעצב תשובה בשפה טבעית. בתשובה מצוין במפורש מלונות אמיתיים מהקטלוג של האתר, תוך הימנעות מידע מומצא.

  5. אינטראקציה עם סוכן AI: מאחר ש-NLWeb משמש כשרת MCP, סוכן נסיעות חיצוני מבוסס AI יכול גם להתחבר ל-NLWeb באתר זה. סוכן ה-AI יכול להשתמש בשיטת ask של MCP כדי לשאול את האתר ישירות: ask("האם יש מסעדות טבעוניות באזור הונולולו שמומלצות על ידי המלון?"). ה-NLWeb יטפל בבקשה זו, ייעזר במסד נתונים של מידע על מסעדות (אם נטען), ויחזיר תגובה מסודרת בפורמט JSON.

יש לכם שאלות נוספות על MCP/A2A/NLWeb?

הצטרפו ל-Microsoft Foundry Discord כדי להיפגש עם לומדים אחרים, להשתתף בשעות פתוחות ולקבל תשובות לשאלות על סוכני AI.

משאבים


כתב החרטה: מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית Co-op Translator. אנו שואפים לדיוק, אך יש לקחת בחשבון כי תרגומים אוטומטיים עשויים להכיל טעויות או אי-דיוקים. המסמך המקורי בשפת המקור שלו מהווה את המקור המוסמך. עבור מידע קריטי מומלץ להיעזר בתרגום מקצועי של מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנות או פרשנויות שגויות הנובעות משימוש בתרגום זה.