תאריך פרסום: 9 ביוני 2026
אתם יכולים להשתמש ב-Web Model Context Protocol (WebMCP) כדי ליצור כלים מובנים ולחשוף אותם לסוכני AI שפועלים בדפדפן, כולל סוכנים שמבוססים על תוספים. סוכן משתמש במודל שפה גדול (LLM), בכללים, בזיכרון ובכלים כדי לבצע פעולות בשם המשתמש.
מודלים גדולים של שפה (LLM) מתייחסים לכל הטקסט, ההוראות ונתוני המשתמשים כרצף יחיד של טוקנים, ולכן הם חשופים להחדרת הנחיות עקיפה, כלומר להכללה של הוראות זדוניות על ידי תוקף. הצוות שלנו כתב את המסמך הזה בנושא אבטחת כלים, כדי לעזור לכם להגן על האתר ועל המשתמשים שלכם מפני גורמים זדוניים.
למרות שיש מודלים עם שכבות שמטפלות בהחדרת הנחיות, אי אפשר להבטיח בטיחות בתוך מודל שפה גדול (LLM). המודלים הם הסתברותיים במהותם. חשוב לזכור שהיו התקפות חוזרות של החדרת הנחיות נגד מערכות מבוססות-סוכנים שמשתמשות במודלים גדולים של שפה (LLM) מתקדמים, והשכיחות של התקפות באינטרנט הולכת וגדלה.
כדי לתת מענה לחששות האלה, סיפקנו הנחיות ראשוניות בנושא אבטחה למי שמפתח כלים באמצעות WebMCP.
שימוש ברמזים להערות
כשיוצרים כלים, כדאי להוסיף כמה רמזים:
- שימוש ב-
untrustedContentHintבמקומות המתאימים. אם כלי מחזיר תוכן שנוצר על ידי משתמשים (UGC) או נתונים ממקור חיצוני, כדאי להוסיף אתuntrustedContentHintלכלי. השדה הזה מסמן במפורש את מטען הנתונים כלא מהימן, כדי לעזור להגן על שלמות האתר תוך מתן אות לסוכן שלפיו הנתונים האלה דורשים בדיקה מדוקדקת יותר. - משתמשים ב
readOnlyHintבכלי שלא משנים את המצב. כך הסוכן יכול לקבל החלטות טובות יותר לגבי המקרים שבהם כדאי לבקש אישור מהמשתמש.
חשיפה של הכלים שלכם
WebMCP document.modelContext.registerTool API חושף את הפונקציונליות של הכלי רק לסוכנים. כברירת מחדל, אתרים אחרים או מסגרות iframe חוצות מקור לא יכולים לצפות בכלים שלכם או ליצור איתם אינטראקציה.
אתם יכולים לספק גישה לכלי שלכם באמצעות האפשרות exposedTo ב-registerTool למערך של מקורות ספציפיים ומאובטחים. כך הכלי שלכם יהיה חשוף למקורות האלה כשהוא מוטמע באתר שלכם, וכשהאתר שלכם מוטמע במקור הזה.
// https://partner.org
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.