আপনার এজেন্ট যখন ভুল আচরণ করে, আপনি কি জানেন কোনটি এটি করেছে?

একটি এজেন্ট এমন একটি রেকর্ড মুছে ফেলে যা তার স্পর্শ করা উচিত নয়। এটি ভুল টেন্যান্টের (tenant) কাছে একটি মেসেজ পাঠায়। এটি লুপে একটি API কল করে এবং আপনার বিল বাড়িয়ে দেয়।

একটি ঘটনার দশ মিনিট পর, আপনি একটি প্রশ্ন করেন: কোন এজেন্ট এটি করেছে?

আপনি যদি না জানেন, তবে আপনি এটি ঠিক করতে পারবেন না। আপনি বিল্ড (build) থামাতে পারবেন না। আপনি ত্রুটিটি অডিট (audit) করতে পারবেন না। আপনি ভুল থেকে শিখতে পারবেন না।

এটি একটি আইডেন্টিটি (identity) বা পরিচয়ের সমস্যা।

বেশিরভাগ টিম এমন তিনটি প্যাটার্নের সম্মুখীন হয় যা এজেন্টের কাজগুলোকে লুকিয়ে রাখে:

  • শেয়ার্ড সার্ভিস অ্যাকাউন্ট (Shared service accounts): দশটি এজেন্ট এক সেট ক্রেডেনশিয়াল (credentials) ব্যবহার করে। আপনার লগে প্রতিটি কাজ দেখতে একই রকম মনে হয়।
  • হিউম্যান ক্রেডেনশিয়াল (Human credentials): এজেন্ট আপনার লগইন ব্যবহার করে। লগে আপনার নাম দেখায়, এজেন্টের নাম নয়। এটি একটি বিশাল নিরাপত্তা ঝুঁকি তৈরি করে।
  • সাইলেন্ট ড্রিফট (Silent drift): দুটি ভিন্ন বিল্ড একই নাম ব্যবহার করে। একটি নতুন মডেল বা নতুন প্রম্পট ব্যবহার করে, কিন্তু লগে একই আইডেন্টিটি দেখায়।

এটি সমাধান করতে, এই ধাপগুলো অনুসরণ করুন:

  1. প্রতিটি এজেন্টকে তার নিজস্ব আইডেন্টিটি দিন। মানুষের ক্রেডেনশিয়াল ব্যবহার করবেন না। শেয়ার্ড অ্যাকাউন্ট ব্যবহার করবেন না। এজেন্টকে অবশ্যই নিজের নামে অথেন্টিকেট (authenticate) করতে হবে।

  2. প্রতিটি কাজের ওপর ছয়টি নির্দিষ্ট ফিল্ড যুক্ত করুন:

  • Accountable party: এই এজেন্টের জন্য কে দায়ী?
  • Operational owner: প্রতিদিন এটি কে রক্ষণাবেক্ষণ করে?
  • Tenant: এটি কোন গ্রাহকের জন্য?
  • Agent-type-id: এটি কোন নির্দিষ্ট বিল্ড?
  • Agent-instance-id: এটি কোন নির্দিষ্ট রান (run)?
  • Trace context: কল চেইনে (call chain) এটি কোথায়?
  1. ভার্সনিংয়ের (versioning) জন্য হ্যাশ (hash) ব্যবহার করুন। আপনার এজেন্টের নাম "support-agent-v2" রাখবেন না। আপনি যদি সিস্টেম প্রম্পট পরিবর্তন করেন, তবে নাম একই থাকে কিন্তু আচরণ বদলে যায়। পরিবর্তে, একটি কন্টেন্ট হ্যাশ ব্যবহার করুন। কন্টেইনার ইমেজ, প্রম্পট, মডেল এবং কনফিগ-এর ওপর ভিত্তি করে একটি হ্যাশ তৈরি করুন। আপনি যদি কোডের একটি লাইনও পরিবর্তন করেন, তবে আইডি বদলে যাবে। এটি সাইলেন্ট ড্রিফটকে দৃশ্যমান করে তোলে।

  2. লিনিয়েজ (lineage) রেকর্ড করুন। এজেন্টরা সাব-এজেন্ট (sub-agents) তৈরি করে। কোন প্যারেন্ট এজেন্ট সাব-এজেন্টটি শুরু করেছে তা আপনাকে অবশ্যই রেকর্ড করতে হবে। প্যারেন্ট এজেন্ট সাব-এজেন্টকে কী প্রম্পট দিয়েছে তাও আপনাকে রেকর্ড করতে হবে। ইনজেক্ট করা ইনস্ট্রাকশন বা পয়জন্ড ডেটা (poisoned data) খুঁজে বের করার এটাই একমাত্র উপায়।

আইডেন্টিটি হলো আপনার রিকভারি সারফেস (recovery surface)। এটি আপনাকে একটি কিল সুইচ (kill switch) ব্যবহার করতে এবং একটি অডিট ট্রেইল (audit trail) তৈরি করতে সাহায্য করে। কোনো ঘটনা ঘটার আগেই আপনাকে এটি সেটআপ করতে হবে। সংকটের সময় আইডেন্টিটি যোগ করা অনেক দেরি হয়ে যাওয়ার মতো।

এখনই আপনার লগ চেক করুন। এক ঘণ্টা আগের একটি কাজ দেখুন। আপনি কি সেই নির্দিষ্ট বিল্ডটির নাম বলতে পারবেন যা ওই কাজটি করেছে? যদি না পারেন, তবে আপনার একটি ঘাটতি রয়েছে যা পূরণ করা প্রয়োজন।

Source: https://dev.to/brennhill/when-your-agent-does-something-bad-can-you-tell-which-agent-did-it-37a2

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