Anthropic Claude Code-এর নির্দেশিকা হিসেবে কাজ করা সিস্টেম প্রম্পটের ৮০% বাদ দিয়ে দিয়েছে এবং কোড লেখার ক্ষমতার ক্ষেত্রে কোনো অবনতি লক্ষ্য করেনি বলে জানিয়েছে। এই পরীক্ষাটি দেখায় যে, লার্জ ল্যাঙ্গুয়েজ মডেলগুলো (LLMs) যত বেশি সক্ষম হচ্ছে, ডেভেলপাররা মডেলগুলোকে সঠিক পথে রাখতে ব্যবহৃত অতিরিক্ত কাঠামো (scaffolding) পারফরম্যান্সের ক্ষতি না করেই কমিয়ে আনতে পারছেন।
কেন প্রম্পটটি শুরুতে গুরুত্বপূর্ণ ছিল
যখন Claude Code চালু হয়েছিল, তখন এর সিস্টেম প্রম্পটে ডজন ডজন নিয়ম তালিকাভুক্ত ছিল। ইঞ্জিনিয়াররা যখনই কোনো বাগ (bug) দেখা দিত তখনই নতুন লাইন যোগ করতেন, কিন্তু যা কাজ করছিল তা খুব কমই মুছে ফেলতেন। সময়ের সাথে সাথে প্রম্পটটি একটি জটিল ও স্থবির নথিতে পরিণত হয়েছিল।
মডেলের ব্যবধান কমে আসছে
সেই অতিরিক্ত নিয়মগুলো একটি “model gap” বা মডেলের ব্যবধান লুকিয়ে রেখেছিল – অর্থাৎ মডেলটি কী করতে পারত এবং অ্যাপ্লিকেশনটি কী দাবি করত, তার মধ্যকার পার্থক্য। ২০২৪ সালে ডেভেলপারদের কঠোর সীমাবদ্ধতা উল্লেখ করতে হতো যাতে মডেলটি, উদাহরণস্বরূপ, কোডে অতিরিক্ত কমেন্ট (over-commenting) না করে। আজ একই মডেল একটি মাত্র নির্দেশ যেমন “match the existing code style” থেকে কাঙ্ক্ষিত স্টাইলটি অনুধাবন করতে পারে। নিয়মগুলো এখন সাহায্য করার পরিবর্তে অপ্রয়োজনীয় শব্দ বা 'নয়েজ' (noise) হয়ে দাঁড়িয়েছে।
কনটেক্সট ইঞ্জিনিয়ারিংয়ে কী পরিবর্তন আসছে
Anthropic-এর এই কাটছাঁট ডেভেলপাররা কীভাবে প্রম্পট সাজান তার একটি বৃহত্তর পরিবর্তনের প্রতিফলন ঘটায়:
- একবারই গুরুত্বপূর্ণ নির্দেশ প্রদান করা – একটি নিয়ম একবার বলুন এবং মডেলটিকে তা মনে রাখতে দিন।
- few-shot উদাহরণের পরিবর্তে টুল-চালিত প্যারামিটার – টুল স্কিমার (tool schema) মধ্যে ইনপুট এবং আউটপুট ফরম্যাট বর্ণনা করুন এবং মডেলটিকে তা পূরণ করতে দিন।
- প্রগ্রেসিভ ডিসক্লোজার (ধাপে ধাপে প্রকাশ) – শুধুমাত্র বর্তমান ধাপের জন্য প্রয়োজনীয় কনটেক্সট দিন, প্রয়োজনে পরে আরও যোগ করুন।
- স্থির নির্দেশিকাগুলোকে টুল ডেসক্রিপশনে নিয়ে যাওয়া – যেমন “use camelCase for variables”—এগুলো সিস্টেম প্রম্পটে নয়, বরং টুলের স্পেসিফিকেশনে থাকা উচিত।
- হার্ডকোডেড নিয়মের পরিবর্তে হিউরিস্টিকস (heuristics) ব্যবহার করা – কোনো নিয়ম কখন প্রযোজ্য হবে তা মডেলকে সিদ্ধান্ত নিতে দিন, পরিবর্তে এটি সব সময় জোর করে চাপিয়ে দেবেন না।
এই কৌশলগুলো কাজ করে কারণ মডেলটি ইতিমধ্যে অনেক প্রচলিত নিয়ম (conventions) জানে যা আগে স্পষ্টভাবে বলে দেওয়ার প্রয়োজন হতো।
অতিরিক্ত কাটছাঁটের ঝুঁকি
যে ছাঁটাই পদ্ধতি ফ্রন্টিয়ার মডেলগুলোর জন্য উপকারী, তা ছোট মডেলগুলোর ক্ষেত্রে ক্ষতিকর হতে পারে। Anthropic উল্লেখ করেছে যে Haiku-এর মতো মডেলগুলো এখনও সঠিক পথে থাকার জন্য আরও সমৃদ্ধ প্রম্পটের ওপর নির্ভর করে। কম সক্ষম মডেল থেকে অতিরিক্ত নির্দেশিকা সরিয়ে ফেললে সেই ভুলগুলো আবার ফিরে আসতে পারে যা মূল প্রম্পটটি প্রতিরোধ করার চেষ্টা করেছিল: যেমন অসংলগ্ন নামকরণ (inconsistent naming), অতিরিক্ত কমেন্ট, বা মিস করা এজ কেস (edge cases)।
কীভাবে আপনার নিজস্ব প্রম্পট অডিট করবেন
আপনি যদি একটি কোড-জেনারেট করার পাইপলাইন রক্ষণাবেক্ষণ করেন, তবে একটি প্রম্পট অডিট অপ্রয়োজনীয় অংশগুলো প্রকাশ করতে পারে। একটি ব্যবহারিক চেকলিস্ট দেখতে এমন হতে পারে:
- নির্দেশনার ঘনত্ব পুনরায় সমন্বয় করা – আপনি আসলে যে মডেলটি চালাচ্ছেন তার সাথে নির্দেশনার পরিমাণ সামঞ্জস্যপূর্ণ করুন।
- ডুপ্লিকেট বা পুনরাবৃত্ত নির্দেশাবলী মুছে ফেলুন – যদি একটি নিয়ম সিস্টেম প্রম্পট এবং টুল ডেসক্রিপশন উভয় স্থানেই থাকে, তবে এটি কেবল একবার রাখুন।
- কার্যকর উদাহরণগুলোকে আরও সমৃদ্ধ স্কিমায় রূপান্তর করুন – সুনির্দিষ্ট উদাহরণের পরিবর্তে এনুমারেটেড প্যারামিটার টাইপ (enumerated parameter types) বা এনাম (enums) ব্যবহার করুন।
- পরিস্থিতিগত বিবরণগুলোকে বাহ্যিক করুন – বড় রেফারেন্স ব্লকগুলোকে আলাদা ফাইলে সরিয়ে নিন যা মডেলটি প্রয়োজনে নিজে থেকে সংগ্রহ করতে পারে।
- হারিয়ে যাওয়া আচরণের নিয়মগুলো সরিয়ে ফেলুন – যদি মডেলটি আর অনাকাঙ্ক্ষিত কমেন্ট যোগ না করে, তবে “no-comment” নিয়মটি বাদ দিন।
অনুমানের ওপর নির্ভর করবেন না। একটি সহজ “3-Test Rule” ব্যবহার করুন: পাঁচটি বাস্তবসম্মত কোডিং টাস্ক চালান, প্রতিটি ডিলিট করার আগে ও পরে ফলাফল তুলনা করুন এবং কোনো রিগ্রেশন (regression) বা অবনতি ঘটলে তা নোট করুন।
- Baseline – সম্পূর্ণ প্রম্পট দিয়ে পারফরম্যান্স পরিমাপ করুন।
- Delete – একটি সম্ভাব্য লাইন বা ব্লক সরিয়ে ফেলুন।
- Re-run – একই পাঁচটি টাস্ক পুনরায় চালান।
যদি আউটপুট পরিবর্তিত হয়, তবে আপনি এমন একটি লাইন শনাক্ত করেছেন যা এখনও গুরুত্বপূর্ণ। যদি না হয়, তবে লাইনটি নিরাপদে বাদ দেওয়া যেতে পারে।
ডেভেলপারদের পরবর্তীতে কী খেয়াল রাখা উচিত
আপাতত মূল বিষয়টি পরিষ্কার: একটি সিস্টেম প্রম্পট হলো একটি জীবন্ত নথি। প্রতিটি লাইনকে একটি নির্দিষ্ট মেয়াদের বিষয় হিসেবে বিবেচনা করুন, নিয়মিত অডিট করুন এবং মডেলের ক্রমবর্ধমান সক্ষমতাকে মূল কাজগুলো করার সুযোগ দিন।
Source: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9
