logo
0
0
WeChat Login
leestott<leestott@users.noreply.github.com>
🌐 Update translations via Co-op Translator

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

פרוטוקולים סוכניים

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

מבוא

בשיעור זה נלמד:

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

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

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

מטרות למידה

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

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

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

פרוטוקול הקשר מודל (MCP)

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

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

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

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

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

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

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

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

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

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

Prompts: אלו תבניות מוגדרות מראש שמספקות הצעות להנחיות, ומאפשרות זרימות עבודה מורכבות יותר.

יתרונות של MCP

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

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

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

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

דוגמה ל-MCP

תרשים MCP

דמיינו שמשתמש רוצה להזמין טיסה באמצעות עוזר AI שמופעל על ידי MCP.

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

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

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

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

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

פרוטוקול סוכן-לסוכן (A2A)

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

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

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

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

כרטיס סוכן

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

מבצע סוכן

מבצע הסוכן אחראי על העברת ההקשר של שיחת המשתמש לסוכן מרוחק, כך שהסוכן המרוחק יבין את המשימה שיש לבצע. בשרת 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: זהו סט בסיסי של כללים לאינטראקציה בשפה טבעית עם אתר אינטרנט. הוא מחזיר תגובות בפורמט JSON (לעיתים קרובות באמצעות Schema.org). מטרתו היא ליצור בסיס פשוט ל"אתר AI", בדומה לאופן שבו HTML איפשר שיתוף מסמכים באינטרנט.

  • שרת MCP (נקודת קצה של Model Context Protocol): כל התקנת NLWeb פועלת גם כשרת MCP. המשמעות היא שהיא יכולה לשתף כלים (כמו שיטת "ask") ונתונים עם מערכות AI אחרות. בפועל, זה הופך את התוכן והיכולות של האתר לשימושיים על ידי סוכני AI, ומאפשר לאתר להפוך לחלק מ"אקוסיסטם הסוכנים" הרחב יותר.

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

  • מסד נתוני וקטורים (מנגנון אחזור): מסד נתונים זה מאחסן את ההטמעות של תוכן האתר. כאשר מישהו שואל שאלה, NLWeb בודק את מסד הנתונים של הווקטורים כדי למצוא במהירות את המידע הרלוונטי ביותר. הוא מספק רשימה מהירה של תשובות אפשריות, מדורגות לפי דמיון. NLWeb עובד עם מערכות אחסון וקטורים שונות כמו Qdrant, Snowflake, Milvus, Azure AI Search ו-Elasticsearch.

דוגמה ל-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?

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

משאבים


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