প্রকাশিত: ৯ জুন, ২০২৬
আপনি ওয়েব মডেল কনটেক্সট প্রোটোকল ( WebMCP ) ব্যবহার করে ব্রাউজারের মধ্যে চলমান এআই এজেন্টদের, যার মধ্যে এক্সটেনশন দ্বারা চালিত এজেন্টও অন্তর্ভুক্ত, তাদের জন্য কাঠামোগত টুল তৈরি ও উপলব্ধ করতে পারেন। একজন এজেন্ট ব্যবহারকারীর পক্ষ থেকে বিভিন্ন কাজ সম্পাদন করার জন্য একটি বৃহৎ ভাষা মডেল (LLM), নিয়মাবলী, মেমরি এবং বিভিন্ন টুল ব্যবহার করে।
যেহেতু এলএলএম (LLM) সমস্ত টেক্সট, নির্দেশাবলী এবং ব্যবহারকারীর ডেটাকে টোকেনের একটি একক অনুক্রম হিসাবে বিবেচনা করে, তাই এগুলি পরোক্ষ প্রম্পট ইনজেকশনের (indirect prompt injection) ঝুঁকিতে থাকে, যা হলো আক্রমণকারীর দ্বারা ক্ষতিকারক নির্দেশাবলী অন্তর্ভুক্ত করার একটি প্রক্রিয়া। আমাদের দল টুলের নিরাপত্তা বিষয়ে এই ডকুমেন্টটি তৈরি করেছে, যা আপনাকে আপনার ওয়েবসাইট এবং ব্যবহারকারীদের দুষ্কৃতকারীদের থেকে সুরক্ষিত রাখতে সাহায্য করবে।
যদিও কিছু মডেলে প্রম্পট ইনজেকশন মোকাবেলার জন্য স্তর থাকে, একটি বৃহৎ ভাষা মডেলের (LLM) অভ্যন্তরে নিরাপত্তা নিশ্চিত করা অসম্ভব। মডেলগুলো প্রকৃতিগতভাবেই সম্ভাবনামূলক। এটা মনে রাখা গুরুত্বপূর্ণ যে, অত্যাধুনিক LLM ব্যবহারকারী এজেন্টিক সিস্টেমগুলোর বিরুদ্ধে বারবার প্রম্পট ইনজেকশন আক্রমণ হয়েছে এবং ওয়েবে এই ধরনের আক্রমণের ব্যাপকতা বেড়েই চলেছে।
এই উদ্বেগগুলো নিরসনের জন্য, আমরা WebMCP ব্যবহার করে টুল নির্মাতাদের জন্য নিরাপত্তাবিষয়ক প্রাথমিক নির্দেশনা প্রদান করেছি।
টীকা ইঙ্গিত ব্যবহার করুন
আপনার টুলগুলো তৈরি করার সময় কয়েকটি বিষয় যোগ করা উচিত:
- প্রয়োজন অনুযায়ী
untrustedContentHintব্যবহার করুন । যদি কোনো টুল ব্যবহারকারী-সৃষ্ট কন্টেন্ট (UGC) বা বাহ্যিকভাবে প্রাপ্ত ডেটা ফেরত দেয়, তবে টুলটিতেuntrustedContentHintযোগ করার কথা বিবেচনা করুন। এই ফিল্ডটি পেলোডকে স্পষ্টভাবে অবিশ্বস্ত হিসেবে চিহ্নিত করে, যা আপনার সাইটের অখণ্ডতা রক্ষা করতে সাহায্য করে এবং এজেন্টকে এই সংকেত দেয় যে এই ডেটার জন্য নিবিড় যাচাই-বাছাই প্রয়োজন। - যেসব টুলের অবস্থা পরিবর্তন হয় না, সেগুলোতে
readOnlyHintব্যবহার করুন। এর ফলে এজেন্ট কখন ব্যবহারকারীর অনুমতি চাইবে, সে বিষয়ে আরও ভালো সিদ্ধান্ত নিতে পারে।
আপনার সরঞ্জামগুলি সাবধানে উন্মোচন করুন।
WebMCP-এর document.modelContext.registerTool API শুধুমাত্র এজেন্টদের কাছে টুলটির কার্যকারিতা প্রকাশ করে। ডিফল্টরূপে, অন্যান্য ওয়েবসাইট বা ক্রস-অরিজিন আইফ্রেম আপনার টুলগুলোকে পর্যবেক্ষণ বা সেগুলোর সাথে ইন্টারঅ্যাক্ট করতে পারে না।
আপনি registerTool এ exposedTo অপশনটি ব্যবহার করে আপনার টুলকে নির্দিষ্ট ও সুরক্ষিত অরিজিনগুলোর একটি অ্যারেতে অ্যাক্সেস দিতে পারেন। এর ফলে, যখন আপনার টুলটি আপনার সাইটে এমবেড করা হয় এবং যখন আপনার সাইটটি সেই অরিজিনে এমবেড করা হয়, তখন এটি সেই অরিজিনগুলোর কাছে উন্মুক্ত হয়।
// https://partner.org
document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
আপনার টুলগুলোকে শুধুমাত্র বিশ্বস্ত উৎসের কাছেই উন্মুক্ত করুন । এটি বিশেষভাবে গুরুত্বপূর্ণ যখন টুলগুলো ব্যবহারকারীর ডেটা পরিচালনা করে বা অন্য কোনোভাবে ব্যবহারকারীকে প্রভাবিত করে।
-
getFavoriteProductsমতো একটি রিড-অনলি টুল একজন ব্যবহারকারীর তথ্য প্রকাশ করতে পারে। আপনার কেবল সেইসব ওয়েবসাইটেই এই টুলগুলো প্রকাশ করা উচিত, যেগুলোর সাথে আপনি অন্যথায় সরাসরি এই ডেটা শেয়ার করতেন। - যেসব টুলের রিড এবং রাইট অ্যাক্সেস আছে, সেগুলো ব্যবহারকারীর পক্ষ থেকে কাজ করে। এই টুলগুলোকে শুধুমাত্র সেইসব অরিজিনের কাছেই উন্মুক্ত করা উচিত, যেগুলোকে আপনি আপনার ব্যবহারকারীর পক্ষ থেকে কাজ করার জন্য বিশ্বাসযোগ্য বলে মনে করেন। উদাহরণস্বরূপ, আপনি হয়তো
postCommenttrustedExample.comএর কাছে উন্মুক্ত করতে চাইতে পারেন, কিন্তু আপনি এটিকেevilExample.comএর কাছে উন্মুক্ত করতে চাইবেন না।
চরিত্রের বাজেট নির্ধারণ করুন
এজেন্ট গার্ডরেলের সাথে সংঘর্ষ এড়াতে, টুলের বিবরণ এবং আউটপুট সংক্ষিপ্তভাবে লিখুন। আরও ভালো ফলাফলের জন্য আমরা নিম্নলিখিত অক্ষর সীমা সুপারিশ করি:
- প্রতিটি টুলের বিবরণের জন্য ৫০০ অক্ষর
- প্রতিটি প্যারামিটারের বিবরণের জন্য ১৫০টি অক্ষর
- টুলের নাম এবং প্যারামিটারের নামের জন্য ৩০টি অক্ষর
- প্রতিটি টুলের আউটপুটে ১.৫ হাজার অক্ষরের সীমা
সম্ভবত এজেন্টদের মধ্যে কিছু ভিন্নতা রয়েছে, এবং ব্যবহারকারীদের মতামতের ভিত্তিতে আপনি আপনার ক্যারেক্টার বাজেট সমন্বয় করতে চাইতে পারেন।
পরবর্তী পদক্ষেপ
আমরা এজেন্টিক ওয়েবের জন্য একটি সুরক্ষিত পরিকাঠামো তৈরির গবেষণা ও কাজ চালিয়ে যাচ্ছি। উদাহরণস্বরূপ, বিভিন্ন পক্ষের মধ্যে সম্মতি ব্যবস্থাপনা নিয়ে একটি আলোচনা চলছে, এবং স্পেক ড্রাফটে টুল এক্সিকিউশনের সময় অ্যাসিঙ্ক্রোনাসভাবে ব্যবহারকারীর ইনপুট অনুরোধ করার জন্য requestUserInteraction() অন্তর্ভুক্ত করা হয়েছে।
আপনি আপনার অ্যাপ্লিকেশনে WebMCP কীভাবে প্রয়োগ করার পরিকল্পনা করছেন? আপনার কি নিরাপত্তা সংক্রান্ত বা অন্য কোনো উদ্বেগ আছে? আপনি যদি WebMCP অরিজিন ট্রায়ালের জন্য সাইন আপ করেন, তাহলে আমরা আপনার অভিজ্ঞতা সম্পর্কে জানতে চাই:
- GitHub-এ WebMCP এক্সপ্লেনার- এ কোনো বিদ্যমান ইস্যুতে মন্তব্য করে অথবা একটি নতুন ইস্যু খুলে API-এর গঠন সম্পর্কে আপনার মতামত জানান।
- ক্রোমের বাস্তবায়ন সম্পর্কে আপনার কোনো মতামত থাকলে, একটি ক্রোমিয়াম বাগ রিপোর্ট করুন।
- নতুন এপিআইগুলো আগে দেখার সুযোগ পেতে এবং আমাদের মেইলিং লিস্টে অ্যাক্সেস পেতে আর্লি প্রিভিউ প্রোগ্রামে যোগ দিন ।
- Chrome Status- এ Chrome-এর জন্য বাস্তবায়নটি পর্যালোচনা করুন।
আপনি যদি কোনো এজেন্ট তৈরি করেন, তাহলে আমরা আপনাকে WebMCP-এর জন্য এজেন্ট নিরাপত্তা সংক্রান্ত বিবেচ্য বিষয়গুলো পড়ার পরামর্শ দিই।