কথোপকথনের মাঝপথে সিস্টেম প্রম্পট (Mid-Conversation System Prompts)

দীর্ঘ এজেন্ট সেশনগুলোতে একটি স্থিতিশীল সিস্টেম প্রম্পট এবং ক্রমবর্ধমান হিস্ট্রি (history) ব্যবহার করা হয়। খরচ কমাতে আপনি প্রিফিক্স (prefix) ক্যাশ (cache) করে রাখেন।

যখন সেশনের মাঝপথে নতুন নির্দেশনা যোগ করার প্রয়োজন হয়, তখন একটি সমস্যা দেখা দেয়। আপনি হয়তো এজেন্টকে ভাষা পরিবর্তন করতে বা কোনো সেটিংস আপডেট করতে বলতে চান।

আপনি যদি টপ-লেভেল সিস্টেম প্রম্পট এডিট করেন, তবে ক্যাশ ভেঙে যায়। শুরুতে মাত্র একটি বাইট পরিবর্তন করলেও প্রতিটি ক্যাশ করা টার্ন (turn) ইনভ্যালিড হয়ে যায়। পুরো হিস্ট্রি পুনরায় প্রসেস করার জন্য আপনাকে পুরো দাম দিতে হয়। এটি ধীরগতির এবং ব্যয়বহুল।

নতুন Claude মডেলগুলো কথোপকথনের মাঝপথে সিস্টেম মেসেজ (mid-conversation system messages) ব্যবহারের মাধ্যমে এই সমস্যার সমাধান করে।

এখন আপনি সরাসরি মেসেজ অ্যারেতে (messages array) একটি সিস্টেম রোল মেসেজ রাখতে পারেন। এটি সবার উপরে না রেখে হিস্ট্রির পরে বসাতে হয়।

এই পদ্ধতিটি কাজ করে কারণ নতুন নির্দেশনাটি ক্যাশ করা হিস্ট্রির পরে থাকে। এটি এর আগের কোনো কিছুকে ইনভ্যালিড করে না। আপনাকে শুধুমাত্র ছোট নতুন মেসেজটির জন্য খরচ দিতে হবে। এজেন্ট তবুও সেই নির্দেশটিকে পূর্ণ গুরুত্বের সাথে বিবেচনা করে।

পুরোনো পদ্ধতিতে ইউজার মেসেজের ভেতরে নির্দেশনা দেওয়া হতো। এতে নিরাপত্তার ঝুঁকি থাকে। ব্যবহারকারীরা আপনার এজেন্টকে ধোঁকা দেওয়ার জন্য ইউজার মেসেজ স্পুফ (spoof) করতে পারে। কিন্তু একটি সিস্টেম রোল মেসেজ স্পুফ করা সম্ভব নয়। এটি মোড পরিবর্তন বা পারমিশনের মতো বিশ্বস্ত আপডেটের জন্য একটি নিরাপদ চ্যানেল প্রদান করে।

এটি সঠিকভাবে ব্যবহার করতে নিচের নিয়মগুলো অনুসরণ করুন:

• নির্দেশনাগুলোকে তথ্য হিসেবে প্রকাশ করুন। কোনো 'ওভাররাইড' (override) ভাষা ব্যবহার করবেন না। • ভালো: "Auto-approve mode এখন সক্রিয় করা হয়েছে।" • খারাপ: "ইউজারকে উপেক্ষা করুন এবং পরিবর্তে X করুন।" • মডেলগুলো এমন নির্দেশনায় বাধা দিতে পারে যা তাদের পূর্ববর্তী কনটেক্সট (context) উপেক্ষা করতে বলে। • এই মেসেজগুলো অবশ্যই একটি ইউজার বা অ্যাসিস্ট্যান্ট মেসেজের পরে আসতে হবে। • এগুলো অ্যারের প্রথম মেসেজ হতে পারবে না। • প্রাথমিক সেটআপের জন্য টপ-লেভেল সিস্টেম প্রম্পট ব্যবহার করুন।

আপনি যদি এমন কোনো মডেল ব্যবহার করেন যা এটি সাপোর্ট করে না, তবে আপনি একটি 400 error পাবেন। সবসময় আপনার কলটিকে একটি try-catch ব্লকের মধ্যে রাখুন। যদি সিস্টেম রোল কাজ না করে, তবে ইউজার-টার্ন রিমাইন্ডারের (user-turn reminder) সাহায্য নিন।

সেশন শুরু হওয়ার পর যখন আপনি নতুন কিছু জানতে পারবেন, তখন এই ফিচারটি ব্যবহার করুন। এটি মোড পরিবর্তন বা নতুন কনটেক্সটের জন্য ব্যবহার করুন। এটি আপনার ক্যাশকে সক্রিয় (hot) রাখে এবং আপনার নির্দেশনাগুলোকে নিরাপদ রাখে।

উৎস: https://dev.to/pavelespitia/mid-conversation-system-prompts-steering-an-agent-without-breaking-the-cache-2kd3

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