যা ঘটেনি তা আপনার লগ রেকর্ড করতে পারে না

বেশিরভাগ AI safety টুলস আর্টিফ্যাক্ট (artifacts) খোঁজে। তারা একটি লগ এন্ট্রি, একটি সিগনেচার বা একটি টুলের ফলাফল খোঁজে। যদি কোনো টুলের ফলাফল ভুয়া হয়, সিস্টেম সেটি চিহ্নিত করে। যদি কোনো JSON ব্লক ত্রুটিপূর্ণ হয়, সিস্টেম তা ধরে ফেলে।

এগুলো সহজে ধরা যায় এমন ব্যর্থতা কারণ এগুলো একটি চিহ্ন রেখে যায়।

আসল বিপদ হলো বাদ পড়া (omission)। বাদ পড়া মানে হলো যখন কিছুই ঘটে না।

একটি append-only লগে, অনুপস্থিতি তিনটি উপায়ে একই রকম দেখায়:

  • এটি ঘটেনি।
  • এটি এখনও ঘটেনি।
  • এটি ঘটেছে কিন্তু কখনও রেকর্ড করা হয়নি।

লগ কিছুই দেখায় না। অডিট কুয়েরি (audit query) কিছুই রিটার্ন করে না। নীরবতা সম্মতিতে পরিণত হয়।

আপনি তিনটি ডিজাইনের নিয়মের মাধ্যমে এটি সমাধান করতে পারেন:

  1. নীরবতাকে একটি সময়সীমার মধ্যে আনুন (Make silence expire) যদি কোনো এজেন্ট কোনো কাজ সম্পাদন করে, তবে একজন রিভিউয়ারকে অবশ্যই তাতে স্বাক্ষর (sign off) করতে হবে। একটি অনুপস্থিত স্বাক্ষর আপনার নিরাপত্তার একটি ফাঁক। "pending" অবস্থাকে চিরকাল "pending" থাকতে দেবেন না। একটি ডেডলাইন নির্ধারণ করুন। যদি ডেডলাইন পার হয়ে যায়, তবে সিস্টেমকে অবশ্যই REVIEW_EXPIRED এর মতো একটি terminal state রেকর্ড করতে হবে। এটি একটি খালি জায়গাকে একটি অনুসন্ধানযোগ্য ত্রুটিতে (searchable error) পরিণত করে।

  2. দাবির জন্য সাইটেশন (citations) প্রয়োজন করুন এজেন্টরা প্রায়ই বিশ্বকে বর্ণনা করতে গদ্য (prose) ব্যবহার করে। একটি এজেন্ট বলতে পারে, "ফাইলটি খালি ছিল।" যদি এটি সমর্থন করার জন্য কোনো টুলের ফলাফল না থাকে, তবে সেই দাবিটি বিপজ্জনক।

যদি কোনো দাবি ভবিষ্যতের কোনো কাজকে প্রভাবিত করে, তবে তাতে অবশ্যই একটি observation ID থাকতে হবে। এজেন্ট সত্য বলছে কি না তা অনুমান করার চেষ্টা করবেন না। কেবল এটি পরীক্ষা করুন যে দাবিটি একটি প্রকৃত ডেটা সোর্সের দিকে নির্দেশ করছে কি না। সাইটেশন ছাড়া একটি দাবি হলো একটি malformed message।

  1. কাজের জন্য একটি দ্বি-ঘটনা বিভাজন (two-event split) ব্যবহার করুন যখন একটি এজেন্ট কোনো কাজ শুরু করে, যেমন ইমেল পাঠানো, ফলাফল লগ করার আগেই সেটি বন্ধ হয়ে যেতে পারে। এটি একটি ফাঁক তৈরি করে। ইমেলটি কি পাঠানো হয়েছে? আপনার কি আবার চেষ্টা করা উচিত?

এই ফ্লো (flow) ব্যবহার করুন:

  • একটি অনন্য কী (unique key) সহ একটি INTENT ইভেন্ট যুক্ত করুন।
  • কাজটি সম্পাদন করুন।
  • একটি OUTCOME ইভেন্ট যুক্ত করুন।

এখন আপনি মাঝখানের অবস্থাটি দেখতে পাবেন। যদি আপনার কাছে একটি INTENT থাকে কিন্তু কোনো OUTCOME না থাকে, তবে আপনি ঠিক জানবেন সিস্টেমটি কোথায় ব্যর্থ হয়েছে। অনুমানের পরিবর্তে আপনি স্টেটটি (state) সামঞ্জস্য করতে পারবেন।

নিয়মটি সহজ: আপনার সিস্টেম প্রতিটি সফলতার জন্য যা রেকর্ড করে, সেই রেকর্ডটি অনুপস্থিত থাকলে কী ঘটবে তা জিজ্ঞাসা করুন। যদি উত্তর হয় "কিছুই না", তবে আপনার একটি অন্ধবিন্দু (blind spot) রয়েছে।

আপনার নেতিবাচক স্টেটগুলোকে (negative states) প্রথম শ্রেণীর রেকর্ড হিসেবে ডিজাইন করুন। সেগুলোকে নাম দিন। সেগুলোর মালিক নির্ধারণ করুন। সেগুলোকে আপনার গেটগুলোতে (gates) ব্যর্থ করতে বাধ্য করুন।

Source: https://dev.to/anp2network/your-log-cant-record-what-didnt-happen-2ga7

Optional learning community: https://t.me/GyaanSetuAi