منتشر شده: ۹ ژوئن ۲۰۲۶
شما میتوانید از پروتکل زمینه مدل وب (Web Model Context Protocol) یا به اختصار WebMCP برای ساخت و ارائه ابزارهای ساختاریافته به عاملهای هوش مصنوعی که در مرورگر اجرا میشوند، از جمله عاملهایی که توسط افزونهها پشتیبانی میشوند، استفاده کنید. یک عامل از یک مدل زبان بزرگ (LLM)، قوانین، حافظه و ابزارها برای اجرای اقدامات از طرف کاربر استفاده میکند.
از آنجایی که LLMها با تمام متن، دستورالعملها و دادههای کاربر به عنوان یک توالی واحد از توکنها رفتار میکنند، مستعد تزریق غیرمستقیم سریع ، یعنی گنجاندن دستورالعملهای مخرب توسط یک مهاجم، هستند. تیم ما این سند را در مورد امنیت ابزار نوشته است تا به شما در محافظت از وبسایت و کاربرانتان در برابر عوامل مخرب کمک کند.
در حالی که برخی مدلها دارای لایههایی هستند که تزریق سریع را مدیریت میکنند، تضمین ایمنی درون یک مدل زبان بزرگ (LLM) غیرممکن است. مدلها ماهیت احتمالی دارند. مهم است به یاد داشته باشید که حملات تزریق سریع قابل تکرار علیه سیستمهای عامل که از LLM های پیشرفته استفاده میکنند، وجود داشته است و شیوع حملات در وب رو به افزایش است.
برای رفع این نگرانیها، ما راهنماییهای اولیهای در مورد امنیت برای آن دسته از ابزارهایی که با WebMCP ساخته میشوند، ارائه دادهایم.
از نکات حاشیهنویسی استفاده کنید
چند نکته وجود دارد که باید هنگام ساخت ابزارهای خود اضافه کنید:
- در صورت لزوم
untrustedContentHintاستفاده کنید . اگر ابزاری محتوای تولید شده توسط کاربر (UGC) یا دادههای با منبع خارجی را برمیگرداند، افزودنuntrustedContentHintبه ابزار را در نظر بگیرید. این فیلد صراحتاً محتوای داده را به عنوان غیرقابل اعتماد برچسبگذاری میکند تا به محافظت از یکپارچگی سایت شما کمک کند و در عین حال به عامل سیگنالی ارائه دهد که این دادهها نیاز به بررسی دقیقتری دارند. - از
readOnlyHintروی ابزارهایی که وضعیتشان تغییر نمیکند استفاده کنید. این به عامل اجازه میدهد تا در مورد زمان درخواست تأیید کاربر، تصمیمات بهتری بگیرد.
ابزارهای خود را با دقت در معرض دید قرار دهید
API مربوط به WebMCP document.modelContext.registerTool فقط عملکرد ابزار را در اختیار عاملها قرار میدهد. به طور پیشفرض، سایر وبسایتها یا 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قرار دهید.
بودجه شخصیتها را تعیین کنید
برای جلوگیری از مواجهه با موانع امنیتی، توضیحات و خروجیهای ابزار را مختصر بنویسید. برای نتایج بهتر، محدودیت کاراکتر زیر را توصیه میکنیم:
- ۵۰۰ کاراکتر برای هر توضیح ابزار
- ۱۵۰ کاراکتر برای هر توضیح پارامتر
- 30 کاراکتر برای هر نام ابزار و نام پارامتر
- محدودیت ۱.۵ هزار کاراکتر برای هر خروجی ابزار
احتمالاً بین عوامل مختلف تفاوتهایی وجود دارد و شاید بخواهید بودجه شخصیتهای خود را با بازخورد کاربران تنظیم کنید.
مراحل بعدی
ما همچنان به تحقیق و کار بر روی ایجاد زیرساختی امن برای وب عاملی ادامه میدهیم. به عنوان مثال، بحثی مداوم در مورد مدیریت رضایت بین طرفین وجود دارد و پیشنویس مشخصات شامل requestUserInteraction() برای درخواست ناهمزمان ورودی کاربر در هنگام اجرای ابزار است.
چگونه قصد دارید WebMCP را در برنامه خود پیادهسازی کنید؟ آیا نگرانیهای دیگری، امنیتی یا موارد دیگر دارید؟ اگر در نسخه آزمایشی WebMCP ثبت نام میکنید، میخواهیم از تجربیات شما بدانیم:
- با نظر دادن در مورد یک مشکل موجود یا باز کردن یک مشکل جدید در توضیح WebMCP در GitHub ، بازخورد خود را در مورد شکل API به اشتراک بگذارید.
- اگر در مورد پیادهسازی کروم بازخوردی دارید، یک گزارش اشکال کرومیوم ثبت کنید.
- برای مشاهدهی زودهنگام APIهای جدید و دسترسی به فهرست ایمیل ما ، به برنامهی پیشنمایش اولیه بپیوندید .
- پیادهسازی کروم را در Chrome Status بررسی کنید.
اگر در حال ساخت یک عامل هستید، توصیه میکنیم ملاحظات امنیتی عامل برای WebMCP را مطالعه کنید.