ডাউনটাইম ছাড়াই AI এজেন্ট মাইগ্রেশন

আমি দুটি AI এজেন্ট ব্যবহার করতাম: OpenClaw এবং Hermes।

OpenClaw নির্ধারিত কাজের (scheduled tasks) জন্য ভালো কাজ করত। Hermes জটিল যুক্তিনির্ভর কাজের (complex reasoning) জন্য বেশি কার্যকর ছিল। তবে, OpenClaw-এর একটি বড় ত্রুটি ছিল। যখন কাজের চাপ বেড়ে যেত, তখন এটি টাইম-আউট হয়ে যেত এবং কাজ মাঝপথে ছেড়ে দিত। Hermes কখনোই এমনটি করত না। এটি কাজ ধরে রাখত এবং সম্পন্ন করত।

আমি সবকিছু Hermes-এ সরিয়ে নেওয়ার সিদ্ধান্ত নিলাম। আমি হঠাৎ করে পরিবর্তন করতে চাইনি। হঠাৎ পরিবর্তন করা ঝুঁকিপূর্ণ। যদি নতুন সিস্টেমটি ব্যর্থ হয়, তবে আমি আমার নোটিফিকেশনগুলো হারিয়ে ফেলব।

আমি একটি প্যারালাল মাইগ্রেশন কৌশল (parallel migration strategy) বেছে নিলাম।

আমি OpenClaw চালু রাখলাম। আমি Hermes-কে একটি শ্যাডো সিস্টেম (shadow system) হিসেবে যুক্ত করলাম। এটি আমাকে পাশাপাশি উভয় এজেন্টকে তুলনা করার সুযোগ দিল।

আমার নোটিফিকেশন সিস্টেমটি বেশ অগোছালো ছিল। এটি চারটি ভিন্ন পদ্ধতি ব্যবহার করত:

  • Shell scripts
  • Node monitors
  • Bash helpers
  • Python scripts

আমি কোডটি নতুন করে লিখিনি। আমি নতুন ডেলিভারি পদ্ধতিটিকে অতিরিক্ত (additive) হিসেবে যুক্ত করেছি। আমি hermes_mirror.sh নামে একটি স্ক্রিপ্ট তৈরি করেছি। প্রতিটি বিদ্যমান জবে (job) আমি একটি লাইন যোগ করেছি যাতে ব্যাকগ্রাউন্ডে এই স্ক্রিপ্টটি কল করা যায়।

এই পদ্ধতির তিনটি সুবিধা ছিল:

  • নিরাপত্তা: যদি মিররটি ব্যর্থ হয়, তবুও মূল মেসেজটি পাঠানো হবে।
  • সরলতা: একটি স্ক্রিপ্ট দিয়েই সমস্ত মিররিং পরিচালনা করা যায়।
  • নিয়ন্ত্রণ: একটি ভেরিয়েবল পরিবর্তন করেই আমি সমস্ত মিররিং বন্ধ করতে পারি।

তারপর টাইমিং নিয়ে আমি একটি ভুল করলাম।

আমি চাইনি দুটি মেসেজ যেন ঠিক একই সেকেন্ডে পৌঁছায়। আমি ভেবেছিলাম এতে অনেক বেশি বিভ্রান্তি (noise) তৈরি হবে। আমি Hermes মেসেজগুলোর জন্য তিন মিনিটের একটি বিলম্ব (delay) সেট করে দিলাম।

আমি একটি পরীক্ষা চালালাম। OpenClaw মেসেজটি এল। কিন্তু Hermes মেসেজটি এল না। আমি ভাবলাম সিস্টেমটি নষ্ট হয়ে গেছে।

সিস্টেমটি নষ্ট হয়নি। এটি কেবল তিন মিনিটের টাইমারের জন্য অপেক্ষা করছিল। একটি মাইগ্রেশনের ক্ষেত্রে, "দেরি হওয়া" মানেই "ব্যর্থ হওয়া" বলে মনে হতে পারে।

আমি বিলম্ব কমিয়ে ২০ সেকেন্ড করে দিলাম। মেসেজগুলোকে হারিয়ে গেছে বলে মনে না করে আলাদা করার জন্য এটিই যথেষ্ট ছিল।

আমি স্বয়ংক্রিয় কোড পরিবর্তনের (automated code changes) বিপদ সম্পর্কেও জানতে পারলাম। আমি আমার Python ফাইলগুলোতে নতুন লাইনটি যুক্ত করার জন্য একটি স্ক্রিপ্ট ব্যবহার করেছিলাম। এটি প্রায় সবকিছুর জন্যই কাজ করেছিল, কেবল একটি ফাইল ছাড়া। সেই ফাইলটির ইমপোর্ট স্ট্রাকচার (import structure) ভিন্ন ছিল। এর ফলে একটি ক্র্যাশ (crash) ঘটে। সবসময় প্রতিটি ফাইল পরীক্ষা করুন, এমনকি যেগুলোকে আপনি নিরাপদ মনে করেন সেগুলোর ক্ষেত্রেও।

মাইগ্রেশন এখনও শেষ হয়নি। আমি একটি একটি করে জব সরিয়ে নিচ্ছি। আমি কেবল তখনই একটি OpenClaw জব বন্ধ করি যখন আমি দেখি যে Hermes সেটি সফলভাবে সম্পন্ন করেছে।

মাইগ্রেশন কোনো একটি মুহূর্তের ঘটনা হওয়া উচিত নয়। এটি হওয়া উচিত একটি নতুন সিস্টেমের দিকে ধীরস্থির পদযাত্রা।

উৎস: https://dev.to/henry_dan_81513dd35a2f540/migrating-off-openclaw-without-downtime-and-the-offset-that-made-hermes-look-dead-2gic

ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi