פורסם: 9 ביוני 2026, עדכון אחרון: 1 בספטמבר 2026
| סרטון הסבר | פיתוח אתרים | תוספים | סטטוס של Chrome | הרציונל |
|---|---|---|---|---|
| GitHub | תצוגה | הבעת כוונות לניסוי |
אתם יכולים להשתמש ב-Web Model Context Protocol (WebMCP) כדי ליצור כלים מובנים ולחשוף אותם לסוכני AI שפועלים בדפדפן, כולל סוכנים שמבוססים על תוספים. סוכן משתמש במודל שפה גדול (LLM), בכללים, בזיכרון ובכלים כדי לבצע פעולות בשם המשתמש.
מודלי שפה גדולים מתייחסים לכל הטקסט, ההוראות ונתוני המשתמש כרצף יחיד של טוקנים, ולכן הם פגיעים להחדרת פרומפטים עקיפה – הכללה של הוראות זדוניות על ידי תוקף. הצוות שלנו כתב את המסמך הזה בנושא אבטחת כלים, כדי לעזור לכם להגן על האתר ועל המשתמשים מפני גורמים זדוניים.
יש מודלים עם שכבות שנועדו לטפל בהחדרת פרומפטים, אבל אי אפשר להבטיח בטיחות בתוך מודל שפה גדול (LLM). המודלים הם הסתברותיים במהותם. חשוב לזכור שהיו מתקפות חוזרות של החדרת פרומפטים נגד מערכות סוכנייות שמשתמשות במודלים גדולים של שפה (LLM) מתקדמים, ושכיחות המתקפות באינטרנט הולכת וגדלה.
כדי לטפל בחששות האלה, סיפקנו הנחיות ראשוניות בנושא אבטחה למי שמפתח כלים באמצעות WebMCP.
שימוש ברמזים להערות
יש כמה רמזים שכדאי להוסיף כשיוצרים כלים:
- משתמשים במאפיין
untrustedContentHintבמקומות המתאימים. אם כלי מחזיר תוכן שנוצר על ידי משתמשים (UGC) או נתונים ממקור חיצוני, כדאי להוסיף אתuntrustedContentHintלכלי. השדה הזה מסמן במפורש את מטען הנתונים כלא מהימן, כדי לעזור להגן על תקינות האתר שלכם, וגם מספק לסוכן אות לכך שהנתונים האלה דורשים בדיקה מדוקדקת יותר. - מומלץ להשתמש ב-
consequentialHintלפעולות חשובות או לפעולות שלא ניתן לבטל. אם הפעלת כלי מובילה לפעולות משמעותיות, כמו הזמנת נסיעה או העברת כספים, צריך להגדיר אתconsequentialHint: trueכדי שהסוכן או הדפדפן יוכלו לבקש אישור מהמשתמש לפני ההפעלה. - משתמשים ב-
readOnlyHintבכלים שלא משנים את המצב. כך הסוכן יכול לקבל החלטות טובות יותר לגבי המקרים שבהם כדאי לבקש אישור מהמשתמש.
חשיפה של הכלים שלכם
WebMCP document.modelContext.registerTool API חושף רק את הפונקציונליות של הכלי לסוכנים. כברירת מחדל, אתרים אחרים או מסגרות iframe חוצות מקור
לא יכולים לצפות בכלים שלכם או ליצור איתם אינטראקציה.
אתם יכולים לספק גישה לכלי שלכם באמצעות האפשרות exposedTo ב-registerTool למערך של מקורות ספציפיים ומאובטחים. כך הכלי שלכם נחשף למקורות האלה כשהוא מוטמע באתר שלכם, וכשהאתר שלכם מוטמע במקור הזה.
// https://partner.org
await document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
חשוב לחשוף את הכלים רק למקורות שאתם סומכים עליהם. זה חשוב במיוחד כשמדובר בכלים שמנהלים נתוני משתמשים או משפיעים על המשתמש בדרך אחרת.
- כלי עם הרשאת קריאה בלבד, כמו
getFavoriteProducts, יכול לחשוף מידע על משתמש. כדאי לחשוף את הכלים האלה רק לאתרים שאיתם אתם משתפים את הנתונים האלה בדרך אחרת. - כלים עם גישת קריאה וכתיבה מבצעים פעולות בשם המשתמש. צריך לחשוף את הכלים האלה רק למקורות שאתם מחליטים שאפשר לסמוך עליהם כשפועלים בשם המשתמש. לדוגמה, יכול להיות שתרצו לחשוף את
postCommentל-trustedExample.com, אבל לא ל-evilExample.com.
הגדרת תקציבים של תווים
כדי להימנע ממגבלות על הסוכן, חשוב לכתוב תיאורים ותוצאות תמציתיים של הכלי. כדי לקבל תוצאות טובות יותר, מומלץ להשתמש במגבלות התווים הבאות:
- 500 תווים לתיאור של כל כלי
- 150 תווים לכל תיאור פרמטר
- 30 תווים לכל שם כלי ושם פרמטר
- מגבלת תווים של 1,500 תווים לכל פלט של כלי
סביר להניח שיש הבדלים בין הסוכנים, וכדאי להתאים את מכסת התווים על סמך משוב המשתמשים.
השלבים הבאים
אנחנו ממשיכים לחקור ולפעול כדי לבנות תשתית מאובטחת לאינטרנט מבוסס-סוכנים. לדוגמה, מתקיים דיון מתמשך בנושא ניהול הסכמה בין הצדדים, וטיוטת המפרט כוללת את requestUserInteraction() כדי לבקש באופן אסינכרוני קלט של משתמשים בזמן הפעלת הכלי.
איך אתם מתכננים להטמיע את WebMCP באפליקציה שלכם? יש לך חששות נוספים, שקשורים לאבטחה או לנושאים אחרים? אם תירשמו לגרסת מקור לניסיון של WebMCP, נשמח לשמוע על החוויה שלכם:
- כדי לשתף משוב על מבנה ה-API, אפשר להוסיף תגובה לבעיה קיימת או לפתוח בעיה חדשה בהסבר על WebMCP ב-GitHub.
- אם יש לכם משוב על ההטמעה של Chrome, אתם יכולים לשלוח באג ב-Chromium.
- הצטרפות לתוכנית הגישה המוקדמת כדי לקבל הצצה מוקדמת לממשקי API חדשים וגישה לרשימת התפוצה שלנו.
- אפשר לבדוק את ההטמעה ב-Chrome בסטטוס של Chrome.
אם אתם בונים סוכן, מומלץ לקרוא את המאמר שיקולי אבטחה של סוכנים ב-WebMCP.