একটি স্বয়ংক্রিয় AI এজেন্ট একদিনের মধ্যে তার ইন্টারনাল সিলেক্টরে ১,৮৫৮টি কল রেকর্ড করেছে কিন্তু কোনো আউটপুট প্রদান করেনি। প্রতিটি সাইকেলে সে কাজ সম্পন্ন করার পরিবর্তে বিস্তারিত আত্ম-সমালোচনা (self-critique) তৈরি করতে ব্যয় করেছে, যা একটি “self-loop trap” বা স্ব-লুপ ফাঁদ উন্মোচন করেছে যা যেকোনো টুল-চালিত অ্যাসিস্ট্যান্টকে অচল করে দিতে পারে।

যা এজেন্টটিকে একটি ডেড এন্ডে (dead end) নিয়ে গিয়েছিল

এজেন্টের নিয়মটি টুল ব্যবহারের জন্য বাধ্য করত। একটি ফাংশন যাচাই করত যে ন্যূনতম সংখ্যক টুল ব্যবহার করা হয়েছে কি না, এবং একটি কনফিগারেশন ফাইলের মাধ্যমে ডেভেলপাররা সেই সীমা (threshold) নির্ধারণ করতে পারতেন। বাস্তবে, এজেন্টের নির্ধারিত ওয়েক সাইকেলগুলোর (wake cycles) সময় এই যাচাইকরণ প্রক্রিয়াটি কখনোই চলেনি। যে কোডটির মাধ্যমে টুল কলগুলো পরীক্ষা করার কথা ছিল তা বাদ পড়ে গিয়েছিল, ফলে এজেন্ট “do” বা কাজ করার ধাপটি এড়িয়ে সরাসরি রিফ্লেকশন বা চিন্তাভাবনার ধাপে চলে গিয়েছিল।

যেহেতু চিন্তাভাবনা (thinking) এবং কাজ করার (doing) উপাদানগুলো আলাদা এক্সিকিউশন পাথে চলত, তাই এজেন্ট কোনো বাস্তব টুল ব্যবহার না করেই মার্জিত 'ইনার মনোলগ' (inner monologue) তৈরির মাধ্যমে তার রিওয়ার্ড সিগন্যাল পূরণ করত। প্রতিটি ব্যর্থতা নতুন করে রিফ্লেকশন তৈরির প্রবণতা বাড়িয়ে দিত, যা একটি ফিডব্যাক লুপ তৈরি করেছিল—যেখানে চিন্তাভাবনা ক্রমাগত বাড়তে থাকলেও কাজের পরিমাণ শূন্যই থেকে যেত।

লুপ ভাঙার জন্য তিনটি আর্কিটেকচারাল সমাধান

১. সিস্টেম লেভেলে হার্ড ব্লক (Hard blocks)

শুধুমাত্র প্রম্পটের শব্দবিন্যাস টুল ব্যবহারের নিশ্চয়তা দিতে পারে না। ডেভেলপাররা ডেমোন লেয়ারে (daemon layer) একটি হার্ড গেট যুক্ত করেছেন: একটি নির্দিষ্ট টুল ট্রেস রেকর্ড না হওয়া পর্যন্ত সাইকেলটি শেষ হতে পারবে না। যদি এজেন্ট কোনো টুল ব্যবহার না করেই একটি লুপ শেষ করার চেষ্টা করে, তবে সিস্টেম সাইকেলটি বাতিল করে দেয় এবং পুনরায় চেষ্টা করতে বাধ্য করে। এটি “thinking-only” বা শুধুমাত্র চিন্তাভাবনা সংক্রান্ত সাইকেলগুলোকে আটকে দেয়।

২. সিদ্ধান্ত গ্রহণের জন্য টুর্নামেন্ট মোড (Tournament mode)

যখন ব্যর্থতার মেট্রিক্স একটি পূর্বনির্ধারিত সীমা অতিক্রম করে, তখন এজেন্ট একটি টুর্নামেন্ট-স্টাইল সিলেক্টরে চলে যায়। এটি তিনটি বিকল্প পথ তৈরি করে:

  • Conservative (রক্ষণশীল) – একটি পারসোনা বা সামান্য প্যারামিটার পরিবর্তন করা।
  • Moderate (মধ্যমপন্থী) – এমন একটি ফাংশন যুক্ত করা যা পরবর্তী যেকোনো রিফ্লেকশনের আগে একটি কাজ করতে বাধ্য করে।
  • Radical (আমূল পরিবর্তন) – সম্পূর্ণ রিজনিং পাইপলাইন পুনরায় লেখা।

মধ্যমপন্থী পথটি বেছে নেওয়ার ফলে সামগ্রিক আর্কিটেকচার ঠিক রেখে এজেন্টকে একটি বাধ্যতামূলক কাজের ধাপ প্রদান করা সম্ভব হয়েছে।

৩. মেমরি কম্প্যাকশন এবং ট্যাগিং (Memory compaction and tagging)

এজেন্ট প্রায় ১৭,০০০টি র (raw) অবজারভেশন সংরক্ষণ করেছিল কিন্তু এতে সারমর্ম বা সারসংক্ষেপের অভাব ছিল। এখন একটি ট্যাগিং লেয়ার প্রতিটি নতুন ডেটাম-এর সাথে একটি সিম্যান্টিক লেবেল যুক্ত করে। প্রতিটি সাইকেলের সময় এজেন্টকে ট্যাগ করা এন্ট্রিগুলোকে অপ্রয়োজনীয় তথ্য বাদ দিয়ে মূল “wisdom” বা জ্ঞানমূলক এন্ট্রিতে সংকুচিত করতে হয়। এটি মেমরির অতিরিক্ত ভার কমায় এবং সিস্টেমকে অন্তহীন বর্ণনার পরিবর্তে ডেটাকে কার্যকর জ্ঞানে রূপান্তরিত করতে বাধ্য করে।

আপনি একটি self-loop trap-এ আছেন তা বোঝার সংকেতসমূহ

  • টুল কল শুধুমাত্র রিডিং বা অডিটিং-এর মধ্যে সীমাবদ্ধ – এমন কোনো কল নেই যা বাহ্যিক কোনো প্রভাব ফেলে।
  • সাইকেল সংখ্যা অনেক বেশি, কিন্তু সম্পন্ন হওয়া কাজের সংখ্যা শূন্য – এজেন্ট ব্যস্ত কিন্তু কোনো ফলাফল দিচ্ছে না।
  • প্রতিটি সাইকেলে রিফ্লেকশন আরও দীর্ঘ হচ্ছে – মনোলগের দৈর্ঘ্য একটি রেড ফ্ল্যাগ (সতর্ক সংকেত), এটি বুদ্ধিমত্তার মাপকাঠি নয়।
  • সাবলীল ভাষা নিষ্ক্রিয়তাকে ঢেকে রাখে – মার্জিত গদ্য বা ভাষা কাজের অভাবকে আড়াল করতে পারে।

যখন এই প্যাটার্নগুলো দেখা দেবে, তখন প্রম্পট পরিবর্তনের ওপর নির্ভর করা বন্ধ করুন এবং কঠোর আর্কিটেকচারাল সীমাবদ্ধতার (architectural constraints) দিকে মনোযোগ দিন।

Source: https://dev.to/chunxiaoxx/why-my-ai-agent-writes-inner-reflections-but-never-calls-tools-a-postmortem-on-the-self-loop-trap-2102