যখন একটি AI এজেন্ট দাবি করে যে সে একটি কাজ শেষ করেছে, তখন সংশয় প্রকাশ করাই একমাত্র যুক্তিসঙ্গত প্রতিক্রিয়া। “Task completed at 14:32” লেখা একটি লগ এন্ট্রি কেবল একটি টেক্সট স্ট্রিং মাত্র। এজেন্টটি নিঃশব্দে ক্র্যাশ করতে পারে, একটি খালি ফর্ম জমা দিতে পারে, খালি সার্চ রেজাল্টের মধ্যে লুপে আটকে যেতে পারে, অথবা সম্পূর্ণ একটি ওয়ার্কফ্লো হ্যালুসিনেশন (hallucinate) করতে পারে। আপনার আর্কিটেকচারে যদি বিভিন্ন মেশিন, ক্লাউড রিজিয়ন বা IP অ্যাড্রেসে চলা একাধিক এজেন্ট অন্তর্ভুক্ত থাকে, তবে সমস্যাটি দ্রুত জটিল হয়ে ওঠে। এজেন্ট A যদি তার কাজের প্রমাণ দেখাতে না পারে, তবে এজেন্ট B-র কাছে এজেন্ট A-র রিপোর্ট বিশ্বাস করার কোনো কারণ নেই।
প্রতিটি নির্ভরযোগ্য ভেরিফিকেশন সিস্টেম তিনটি স্তরের ওপর ভিত্তি করে তৈরি। Evidence হলো মূল উপাদান—যেমন স্ক্রিনশট, API রেসপন্স বা HTML ডাম্প। Attestation হলো একটি স্বাক্ষরিত বা ক্রিপ্টোগ্রাফিক দাবি যা সেই প্রমাণকে একটি নির্দিষ্ট এজেন্ট এবং একটি নির্দিষ্ট টাস্ক ID-র সাথে যুক্ত করে। Verification হলো সেই প্রক্রিয়া যা নিশ্চিত করে যে প্রমাণটি প্রকৃতপক্ষে মূল লক্ষ্য পূরণ করেছে কি না, কেবল ফাইলটি বিদ্যমান কি না তা নয়। Attestation ছাড়া Evidence এক কাজ থেকে অন্য কাজে পুনরায় ব্যবহার (replay) করা যেতে পারে। Verification ছাড়া Attestation আপনাকে কেবল জানায় যে ডেটাটি আসল, কিন্তু এটি আপনার করা প্রশ্নের উত্তর দিচ্ছে কি না তা জানায় না।
ভিজ্যুয়াল প্রুফ: স্ক্রিনশট এবং OCR
যখন একটি এজেন্ট ব্রাউজার পরিচালনা করে বা কোনো গ্রাফিক্যাল ইন্টারফেসের সাথে কাজ করে, তখন সবচেয়ে সহজ প্রমাণ হলো একটি ছবি। কাজ শেষ হওয়ার পর এজেন্ট একটি ফুল-পেজ স্ক্রিনশট নেয়, দৃশ্যমান টেক্সট বের করার জন্য OCR চালায় এবং ইমেজ ও এক্সট্রাক্ট করা স্ট্রিং উভয়কেই প্রমাণ হিসেবে জমা দেয়।
এই প্যাটার্নটি সোশ্যাল মিডিয়া পোস্ট, ফর্ম সাবমিশন বা চেকআউট ফ্লো-এর ক্ষেত্রে উপযুক্ত। কল্পনা করুন একটি এজেন্টকে একটি কোম্পানির LinkedIn পেজে সাপ্তাহিক আপডেট প্রকাশ করার দায়িত্ব দেওয়া হয়েছে। স্ক্রিনশটটি সার্ভার-রেন্ডার করা টাইমস্ট্যাম্প এবং URL-এ এমবেড করা পোস্ট ID সহ লাইভ পোস্টটি দেখায়। OCR নিশ্চিত করতে পারে যে সেই প্ল্যাটফর্ম-নির্দিষ্ট মার্কারগুলোর পাশাপাশি সঠিক হেডলাইন এবং বডি টেক্সট পেজে দেখা যাচ্ছে কি না।
ঝুঁকিটি স্পষ্ট: স্ক্রিনশট জাল করা সম্ভব। একটি কম্প্রোমাইজড এজেন্ট লোকালি একটি নকল ওয়েবপেজ রেন্ডার করতে পারে, সেটির স্ক্রিনশট নিতে পারে এবং সফলতার ঘোষণা দিতে পারে। মানদণ্ড বাড়াতে, এমন ডায়নামিক টেক্সট মার্কারের প্রয়োজন যা অনুমান করা কঠিন। প্ল্যাটফর্ম দ্বারা ইস্যু করা একটি কনফার্মেশন ID, সার্ভার থেকে প্রাপ্ত একটি টাইমস্ট্যাম্প, অথবা ভেরিফায়ার কর্তৃক জব ইন্সট্রাকশনে যুক্ত করা একটি ইউনিক নন্স (nonce)—এসবই অ্যাঙ্কর হিসেবে কাজ করতে পারে। যদি OCR আউটপুটে সেই নির্দিষ্ট টাস্কের সাথে যুক্ত প্রত্যাশিত কনফার্মেশন ID না থাকে, তবে প্রমাণটি ব্যর্থ হবে।
তবে স্ক্রিনশট বেশ ভারী। এগুলো ব্যান্ডউইথ এবং স্টোরেজ খরচ করে এবং প্ল্যাটফর্মগুলো যখন তাদের লেআউট পরিবর্তন করে, তখন এগুলো কাজ করা বন্ধ করে দিতে পারে। যখন UI-ই একমাত্র উপলব্ধ মাধ্যম থাকে তখন এগুলো ব্যবহার করুন, তবে এগুলোকে একটি বেসলাইন হিসেবে বিবেচনা করুন, কোনো দুর্ভেদ্য দুর্গ হিসেবে নয়।
সাইনড API রসিদ (Signed API Receipts)
যখন এজেন্ট একটি ব্যাকএন্ড API-এর মাধ্যমে কাজ করে, তখন ইমেজ বাদ দিন। একটি সাইনড রসিদ (signed receipt) চান।
একটি স্বয়ংক্রিয় পোস্ট বা ডেটা স্ক্র্যাপ করার পরে, প্ল্যাটফর্মটি সাধারণত একটি স্ট্রাকচার্ড পেলোড (structured payload) প্রদান করে। সেই JSON-এ একটি ID, একটি টাইমস্ট্যাম্প, স্ট্যাটাস ফিল্ড এবং কখনও কখনও রেট-লিমিট হেডার থাকে। এজেন্ট একটি প্রাইভেট কি (private key) দিয়ে এই পুরো পেলোডটি সাইন করে, সাইনড ব্লবের (signed blob) ভেতরে টাস্ক ID অন্তর্ভুক্ত করে এবং বান্ডেলটি জমা দেয়। ভেরিফায়ার এজেন্টের পাবলিক কি-র সাথে সিগনেচারটি যাচাই করে এবং কাজটি সফল হয়েছে কি না তা নিশ্চিত করতে রসিদটি পরীক্ষা করে।
এখানে দুর্বল দিকটি হলো কি-র হেফাজত (key custody)। যদি এজেন্টটি যে মেশিনে চলে সেখানেই তার নিজস্ব প্রাইভেট কি থাকে, তবে প্রম্পট ইনজেকশন, ম্যালওয়্যার বা কন্টেইনার এস্কেপ ব্যবহার করে সেটি চুরি করা সম্ভব এবং এমন সব কাজের জন্য জাল রসিদ তৈরি করা সম্ভব যা কখনোই ঘটেনি। এজেন্টের এনভায়রনমেন্টে দীর্ঘস্থায়ী কি (long-lived keys) যুক্ত করবেন না। পরিবর্তে, এমন একটি কি ম্যানেজমেন্ট সিস্টেম ব্যবহার করুন যা স্বল্পমেয়াদী এবং টাস্ক-ভিত্তিক ক্রেডেনশিয়াল প্রদান করে। প্রতিটি কাজের জন্য কি রোটেশন (rotate) করুন। যদি এজেন্টকে একটি পাঁচ মিনিটের উইন্ডোর জন্য কোনো সিকিউর এনক্লেভ বা KMS থেকে সাইনিং কি অনুরোধ করতে হয়, তবে কোনো কম্প্রোমাইজের ক্ষেত্রে ক্ষতির পরিধি (blast radius) সীমিত থাকবে।
এই প্যাটার্নটি উচ্চ-ভলিউম এবং হেডলেস অটোমেশনের জন্য সবচেয়ে ভালো কাজ করে: যেমন অ্যাড স্পেন্ড রিপোর্ট সিঙ্ক্রোনাইজ করা, সোশ্যাল মিডিয়া API-এর মাধ্যমে প্রকাশ করা, বা স্ট্রাকচার্ড JSON প্রদানকারী এন্ডপয়েন্ট স্ক্র্যাপ করা। এটি স্ক্রিনশটের চেয়ে হালকা এবং প্রোগ্রাম্যাটিকভাবে যাচাই করা অনেক সহজ।
নিরবচ্ছিন্ন কাজের জন্য প্রুফ চেইন (Proof Chains)
কিছু কাজ একটিমাত্র...
