শুধুমাত্র রিড-অনলি (Read-Only) যথেষ্ট নয়: AI এজেন্টদের জন্য গার্ডরেল (Guardrails)
AI এজেন্টদের নিরাপদ রাখতে সিনিয়র ইঞ্জিনিয়াররা প্রায়ই একটি কথা বলেন: তাদের শুধুমাত্র রিড-অনলি (read-only) অ্যাক্সেস দিন।
এটি নিরাপদ মনে হয়। এজেন্ট কোনো কিছু নষ্ট না করেই স্লো কুয়েরি (slow queries) তদন্ত করতে পারে বা স্কিমা (schemas) সারসংক্ষেপ করতে পারে।
কিন্তু রিড-অনলি কোনো নিরাপত্তা মডেল নয়। এটি একটি সীমাবদ্ধতা।
যখনই আপনার এজেন্টের কোনো দরকারী কাজ করার প্রয়োজন হবে, রিড-অনলি তাকে থামিয়ে দেবে। যদি কোনো এজেন্ট একটি খারাপ ইনডেক্স (bad index) বা একটি করাপ্টেড রো (corrupted row) খুঁজে পায়, তবে সে সেটি ঠিক করতে পারবে না। এর ফলে আপনি এমন একজন সহকারী পাবেন যে আগুনের দিকে আঙুল দিয়ে দেখাবে কিন্তু পাইপ তুলে আগুন নেভাতে পারবে না।
টিমগুলো প্রায়ই হাল ছেড়ে দেয় এবং এজেন্টকে রাইট (write) অ্যাক্সেস দিয়ে দেয়। তখনই আসল বিপদ শুরু হয়।
আসল প্রশ্নটি "এজেন্টের কি রাইট করা উচিত" তা নয়। আসল প্রশ্ন হলো "আপনি কীভাবে সেই রাইটগুলোকে নিয়ন্ত্রণ (govern) করবেন।"
নির্দেশনার মাধ্যমে রাইট নিয়ন্ত্রণ করার চেষ্টা করবেন না। সিস্টেম প্রম্পটে "কখনও টেবিল ড্রপ (drop a table) করবেন না" এর মতো নিয়ম দেবেন না।
প্রম্পট ইনজেকশন (Prompt injection) এই নিয়মগুলোকে অকেজো করে দেয়। একজন আক্রমণকারী ডেটার একটি রো বা একটি কমেন্ট ব্যবহার করে এজেন্টকে আপনার নিয়মগুলো উপেক্ষা করতে প্ররোচিত করতে পারে। যদি গার্ডরেলটি এজেন্টের একই উইন্ডোতে থাকে, তবে এজেন্ট যুক্তি দিয়ে তা এড়িয়ে যেতে পারে।
আপনার 'আনগভার্নড রাইট' (ungoverned writes) এবং 'মিডিয়েটেড রাইট' (mediated writes)-এর মধ্যে পার্থক্য করা প্রয়োজন।
• আনগভার্নড রাইট (Ungoverned writes): এজেন্ট একটি কমান্ড চালানোর সিদ্ধান্ত নেয় এবং ডাটাবেস সেটি কার্যকর করে। এখানে একমাত্র নিয়ন্ত্রণ হলো এজেন্টের নিজস্ব বিচারবুদ্ধি। • মিডিয়েটেড রাইট (Mediated writes): কমান্ডটি এজেন্টের বাইরে একটি চেকপয়েন্টের মাধ্যমে যায়। এই চেকপয়েন্টটি এজেন্ট এবং ডাটাবেসের মধ্যবর্তী ডেটা পাথে (data path) অবস্থান করে।
একটি মিডিয়েটেড রাইট এভাবে কাজ করে:
- এজেন্ট একটি স্টেটমেন্ট প্রস্তাব করে।
- একটি প্রক্সি (proxy) বা কন্ট্রোল প্লেন (control plane) স্টেটমেন্টটি পার্স (parse) করে।
- প্রক্সি ঝুঁকিটি শ্রেণীবদ্ধ করে।
- প্রক্সি সিদ্ধান্ত নেয় এটি অনুমোদন করবে নাকি মানুষের কাছে অনুমোদনের জন্য অনুরোধ করবে।
এই পদ্ধতিটি আপনাকে প্রম্পট ইনজেকশন থেকে রক্ষা করে। একটি ক্ষতিকারক নির্দেশ এজেন্টকে DROP TABLE কমান্ড লিখতে প্ররোচিত করতে পারে, কিন্তু এটি প্রক্সিকে ধোঁকা দিতে পারবে না। প্রক্সি এজেন্টের উদ্দেশ্য পড়ে না; এটি শুধুমাত্র প্রকৃত SQL কমান্ডটি দেখে।
নিরাপদ থাকতে এই কাঠামোটি ব্যবহার করুন:
- নিরাপদ রিডগুলো স্বয়ংক্রিয়ভাবে অনুমোদন (Auto-allow) করুন। কাজ দ্রুত রাখতে এজেন্টদের অবাধে SELECT কুয়েরি চালাতে দিন।
- ঝুঁকিপূর্ণ রাইটগুলোকে নিয়ন্ত্রণ (Gate) করুন। DELETE, UPDATE বা স্কিমা পরিবর্তনের জন্য মানুষের অনুমোদন প্রয়োজন করুন।
- সবকিছু লগ (Log) করুন। কে পরিবর্তনের প্রস্তাব দিয়েছে এবং কে তা অনুমোদন করেছে তার একটি অপরিবর্তনীয় রেকর্ড রাখুন।
নিরাপত্তার জন্য রিড রেপ্লিকার (read replicas) ওপর নির্ভর করবেন না। রেপ্লিকাগুলো তদন্তে সাহায্য করে, কিন্তু তারা কোনো সমাধান প্রয়োগ করতে পারে না। প্রোডাকশন সমস্যা সমাধানের জন্য আপনাকে অবশ্যই প্রাইমারি ডাটাবেসে (primary database) রাইট করতে হবে।
মিডিয়েশন আপনার ডেটা নিরাপদ রেখে এজেন্টকে দরকারী হতে সাহায্য করে।
Optional learning community: https://t.me/GyaanSetuAi
