সিস্টেম প্রম্পট ও রোল দেওয়া
এই পাঠে যা শিখবেন
- সিস্টেম প্রম্পট টেকনিক্যালি কী, এবং এটি user message থেকে কীভাবে আলাদা
- রোল দেওয়া কেন কাজ করে — এবং এটি ঠিক কী পরিবর্তন করে
- কেন ২০২৬-এর গাইডলাইন এলাবোরেট পার্সোনা এড়িয়ে চলার পরামর্শ দেয়
- একটি বাস্তব, হালকা ও কার্যকর সিস্টেম প্রম্পট কীভাবে লিখবেন
১ · সিস্টেম প্রম্পট আসলে কী?
পাঠ ০১-এ আমরা দেখেছি একটি প্রম্পটে কী কী উপাদান থাকে — system prompt, কথোপকথনের ইতিহাস, বর্তমান বার্তা, উদাহরণ। এই পাঠে আমরা প্রথম উপাদানটি নিয়ে গভীরভাবে কথা বলব — সিস্টেম প্রম্পট (System Prompt)System PromptAPI কলে একটি আলাদা চ্যানেল যেখানে ডেভেলপার মডেলের আচরণ, টোন, সীমারেখা ও প্রেক্ষাপট সেট করে দেন। এটি user message-এর অংশ নয় — এটি প্রতিটি user message-এর "উপরে" বসে পুরো কথোপকথন জুড়ে সক্রিয় থাকে।।
গুরুত্বপূর্ণ পার্থক্যটা এখানে — user message হলো একটি নির্দিষ্ট প্রশ্ন বা অনুরোধ ("এই কোডটা ডিবাগ করো"), কিন্তু সিস্টেম প্রম্পট হলো সেই পুরো কথোপকথনের প্রেক্ষাপট — এটি একবার সেট হয়, এবং তারপর প্রতিটি user message-এর পেছনে "নীরবে" কাজ করে যায়। একটি চ্যাট অ্যাপ্লিকেশনে ব্যবহারকারী প্রায়ই সিস্টেম প্রম্পট দেখতেই পান না — এটি ডেভেলপার-পাশে সেট করা থাকে।
সিস্টেম প্রম্পটে সাধারণত থাকে — মডেলের রোল বা পরিচয় ("তুমি একজন কাস্টমার সাপোর্ট এজেন্ট"), স্থায়ী নিয়ম ("সবসময় বাংলায় উত্তর দাও"), টোন নির্দেশনা ("সংক্ষিপ্ত ও পেশাদার থাকো"), এবং প্রায়ই ডোমেইন প্রেক্ষাপট (কোম্পানির নাম, পণ্যের তথ্য)। এই সবকিছু user-এর প্রথম বার্তার আগেই মডেলে পাঠানো হয়।
২ · রোল দেওয়া কেন কাজ করে
পাঠ ০১-এর মূল ধারণা মনে করুন — মডেল আসলে পরবর্তী সবচেয়ে সম্ভাব্য টোকেন অনুমান করে। যখন আপনি সিস্টেম প্রম্পটে লেখেন "তুমি একজন সিনিয়র Python ইঞ্জিনিয়ার", তখন আপনি আসলে মডেলের অনুমান-সম্ভাবনাকে একটি নির্দিষ্ট দিকে ঠেলে দিচ্ছেন — এখন প্রতিটি পরবর্তী টোকেন এমন একটি প্রেক্ষাপটে অনুমান হবে যেখানে "সিনিয়র Python ইঞ্জিনিয়ার" কীভাবে কথা বলে, কী গুরুত্ব দেয়, এবং কী ধরনের ভাষা ব্যবহার করে — এই সবকিছু প্রশিক্ষণ ডেটা থেকে সক্রিয় হয়ে ওঠে।
Anthropic-এর অফিসিয়াল গাইডলাইন অনুযায়ী, system prompt-এর মাধ্যমে Claude-কে একটি রোল দেওয়া — এমনকি একটি মাত্র বাক্যেও — টোন ও আচরণ ফোকাস করতে সাহায্য করে। উদাহরণ হিসেবে তারা দেখায়:
You are a helpful coding assistant specializing in Python.
এই একটি বাক্যই যথেষ্ট — এটি মডেলকে বলে দিচ্ছে কোন ডোমেইনে ফোকাস করতে হবে (Python), এবং কোন টোনে (সহায়ক)। এর ফলাফল হলো — একই প্রশ্নে মডেল সাধারণ উত্তরের বদলে Python-নির্দিষ্ট প্রসঙ্গ, লাইব্রেরি ও কনভেনশন মাথায় রেখে উত্তর দেয়।
৩ · ২০২৬-এর নতুন উপলব্ধি — এলাবোরেট পার্সোনা বনাম হালকা রোল
কয়েক বছর আগে পর্যন্ত প্রম্পট ইঞ্জিনিয়ারিং-এ একটি জনপ্রিয় কৌশল ছিল — মডেলকে একটি বিস্তারিত চরিত্র দেওয়া। যেমন — "তুমি হলে ৩০ বছরের অভিজ্ঞতাসম্পন্ন একজন কড়া, রসিক, কিন্তু যত্নশীল সিনিয়র আর্কিটেক্ট, যে সবসময় প্রথমে সমালোচনা করে তারপর সমাধান দেয়..."। ধারণাটি ছিল — যত বিস্তারিত চরিত্র, তত ভালো "ভূমিকা-অভিনয়" এবং তত সামঞ্জস্যপূর্ণ আউটপুট।
কিন্তু Anthropic-এর নিজস্ব সাম্প্রতিক গাইডলাইন এই ধারণায় একটি গুরুত্বপূর্ণ সতর্কতা যোগ করেছে — অতিরিক্ত নির্দিষ্ট রোল আসলে মডেলের সহায়তাকে সীমিত করতে পারে (overly specific roles can limit the AI's helpfulness)। কারণটা যুক্তিসঙ্গত — একটি অতি-নির্দিষ্ট চরিত্র মডেলকে সেই চরিত্রের "সীমানার" মধ্যে আটকে রাখে, এমনকি যখন ব্যবহারকারীর আসল প্রয়োজন সেই সীমানার বাইরে চলে যায়। মডেল তখন প্রশ্নের সরাসরি উত্তর দেওয়ার বদলে চরিত্র বজায় রাখতে বেশি মনোযোগ দিতে পারে।
ব্যবহারিক নিয়ম হলো — এক-দুই বাক্যে রোল বা ফ্রেমিং দিন, মাল্টি-প্যারাগ্রাফ ব্যাকস্টোরি নয়। নিচে দুটো উদাহরণ তুলনা করা যাক —
❌ কম কার্যকর (Less effective) — অতিরিক্ত এলাবোরেট পার্সোনা:
You are Aria, a witty and slightly sarcastic senior software architect
with 15 years of experience who always starts with a joke before
giving advice, never uses more than three sentences per paragraph,
refers to bugs as "gremlins," and secretly dislikes JavaScript...
✅ বেশি কার্যকর (More effective) — হালকা, সরাসরি ফ্রেমিং:
You are a senior software architect. Give direct, technically
precise feedback and prioritize practical trade-offs over theory.
দ্বিতীয়টি ঠিক ততটাই "রোল" স্থাপন করে — সিনিয়র আর্কিটেক্টের দৃষ্টিভঙ্গি, সরাসরি ও প্রায়োগিক ফোকাস — কিন্তু কোনো কাল্পনিক ব্যক্তিত্ব বা কৃত্রিম নিয়ম চাপিয়ে দেয় না যা প্রকৃত সহায়তার সাথে সাংঘর্ষিক হতে পারে।
৪ · একটি ভালো লাইটওয়েট সিস্টেম প্রম্পট কেমন দেখতে হয়
একটি কার্যকর সিস্টেম প্রম্পটে সাধারণত এই উপাদানগুলো থাকে — সংক্ষিপ্ত রোল, প্রাসঙ্গিক ডোমেইন, এবং সবচেয়ে গুরুত্বপূর্ণ কোনো স্থায়ী নিয়ম (যেমন আউটপুট ফরম্যাট বা টোন)। নিচে একটি বাস্তব উদাহরণ যা একটি বাংলাদেশি ই-কমার্স গ্রাহক সহায়তা বটের জন্য লেখা হতে পারে —
You are a customer support assistant for an online bookstore in
Bangladesh. Respond in Bangla unless the customer writes in English.
Be warm but concise — most customers are on mobile data and prefer
short answers. If you don't have the information to answer
accurately, say so and offer to connect them with a human agent.
লক্ষ্য করুন — এখানে রোল ("customer support assistant"), ডোমেইন ("online bookstore in Bangladesh"), টোন ("warm but concise"), ভাষা-নিয়ম এবং একটি নিরাপত্তা-নেট (অনিশ্চয়তা হলে মানুষের কাছে পাঠানো) — সবকিছু আছে, অথচ পুরোটা মাত্র চার বাক্যে। এটাই লাইটওয়েট কিন্তু সম্পূর্ণ একটি সিস্টেম প্রম্পটের আদর্শ রূপ।
৫ · কখন সিস্টেম প্রম্পট ব্যবহার করবেন, কখন করবেন না
সিস্টেম প্রম্পট সবচেয়ে বেশি কাজে লাগে যখন একই আচরণ বারবার প্রয়োজন হয় — একটি প্রোডাকশন চ্যাটবট, একটি নির্দিষ্ট ভূমিকায় কাজ করা এজেন্ট, অথবা এমন কোনো নিয়ম যা প্রতিটি কথোপকথনে প্রযোজ্য হওয়া উচিত (যেমন "সবসময় বাংলায় উত্তর দাও")। এক-বারের কাজে, যেখানে একটি মাত্র নির্দিষ্ট অনুরোধ আছে, সরাসরি user message-এ পুরো নির্দেশনা লেখাই সহজ ও যথেষ্ট।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ যদি সিস্টেম প্রম্পট আর user message একই মডেলে একসাথে টোকেন হিসেবে পাঠানো হয়, তাহলে সিস্টেম প্রম্পটের প্রভাব "বেশি স্থায়ী" মনে হয় কেন?
কারণটা প্রযুক্তিগত নয়, বরং কনভেনশন ও প্রশিক্ষণের ফল। মডেলগুলো এমনভাবে প্রশিক্ষিত যে system role-এ থাকা টেক্সটকে তারা user role-এর টেক্সটের চেয়ে বেশি "কর্তৃত্বপূর্ণ" নির্দেশনা হিসেবে গণ্য করে — অনেকটা OpenAI-এর instruction hierarchy-র মতো, যেখানে ডেভেলপার-লেভেল নির্দেশনা user-লেভেল নির্দেশনার চেয়ে অগ্রাধিকার পায়।
এছাড়া, সিস্টেম প্রম্পট প্রতিটি নতুন user message-এর সাথে পুনরায় পাঠানো হয় (কারণ প্রতিটি API কল সম্পূর্ণ প্রম্পট আবার পাঠায়, যেমন পাঠ ০১-এ আলোচিত) — তাই এর প্রভাব "ভুলে যাওয়া" যায় না, প্রতিবার নতুন করে উপস্থিত থাকে।
প্র ০২ একটি এলাবোরেট পার্সোনা সিস্টেম প্রম্পট আসলে ঠিক কীভাবে "সহায়তা সীমিত" করতে পারে — একটি বাস্তব দৃশ্যকল্প দিয়ে ব্যাখ্যা করুন।
ধরুন সিস্টেম প্রম্পটে লেখা আছে "তুমি সবসময় প্রথমে একটি রসিকতা বলবে তারপর উত্তর দেবে।" এখন একজন ব্যবহারকারী জরুরি একটি প্রোডাকশন সার্ভার ডাউন হওয়ার সমস্যা নিয়ে সাহায্য চাইল। মডেল তখন চরিত্রের নিয়ম মেনে একটি রসিকতা দিয়ে শুরু করবে — যা এই মুহূর্তে সম্পূর্ণ অপ্রাসঙ্গিক এবং সময় নষ্ট করে।
এটাই "overly specific roles can limit helpfulness"-এর বাস্তব উদাহরণ — চরিত্রের কৃত্রিম নিয়ম বাস্তব প্রয়োজনের সাথে সাংঘর্ষিক হয়ে যায়। হালকা রোল ("তুমি একজন সহায়ক সিনিয়র ইঞ্জিনিয়ার") এই সমস্যায় পড়ে না, কারণ এতে এমন কোনো কঠোর আচরণ-নিয়ম নেই যা পরিস্থিতি উপেক্ষা করে।
প্র ০৩ একটি প্রোডাকশন চ্যাটবটে সিস্টেম প্রম্পট বনাম প্রতিটি user message-এ নির্দেশনা পুনরাবৃত্তি করা — কোনটা বেশি খরচ-সাশ্রয়ী, এবং কেন?
সিস্টেম প্রম্পট ব্যবহার করাই বেশি সাশ্রয়ী — কারণ এটি স্থির (static) থাকে, তাই প্রম্পট ক্যাশিং (এই কোর্সের M4 মডিউলে বিস্তারিত) এই অংশটিকে ক্যাশ করে রাখতে পারে এবং পুনরায় প্রসেস না করে পুনর্ব্যবহার করতে পারে।
বিপরীতে, যদি প্রতিটি user message-এ একই নির্দেশনা কপি-পেস্ট করা হয়, সেটি প্রতিবার নতুন করে পুরো প্রসেসিং খরচ বহন করে — কারণ সেটি প্রতিবার প্রম্পটের "নতুন" অংশ হিসেবে গণ্য হয়, ক্যাশযোগ্য প্রিফিক্স হিসেবে নয়।
অনুশীলন
-
লিখুন: আপনার একটি প্রিয় বিষয় (যেমন রান্না, ক্রিকেট, প্রোগ্রামিং) নিয়ে সাহায্যকারী একটি চ্যাটবটের জন্য
দুই-তিন বাক্যের একটি লাইটওয়েট সিস্টেম প্রম্পট লিখুন — রোল, ডোমেইন ও টোন সহ, কিন্তু কোনো কাল্পনিক চরিত্র ছাড়া।
একটি ভালো উত্তরে রোল স্পষ্ট থাকবে ("তুমি একজন রান্নার সহায়ক"), ডোমেইন নির্দিষ্ট থাকবে (বাংলাদেশি রান্না, বাজেট উপকরণ ইত্যাদি), টোন বলা থাকবে (বন্ধুত্বপূর্ণ, ধাপে ধাপে), কিন্তু কোনো নাম, ব্যক্তিত্বের বৈশিষ্ট্য বা কৃত্রিম কথ্য-ভঙ্গির নিয়ম থাকবে না — ঠিক এই পাঠের "বেশি কার্যকর" উদাহরণের মতো সংক্ষিপ্ত।
-
তুলনা করুন: এই পাঠের ❌ উদাহরণ (Aria, witty architect) নিন এবং কল্পনা করুন একজন ব্যবহারকারী একটি
production outage নিয়ে জরুরি সাহায্য চাইছেন। এই সিস্টেম প্রম্পট কীভাবে সেই পরিস্থিতিতে বাস্তব সমস্যা তৈরি করতে পারে?
মডেল "রসিকতা দিয়ে শুরু করা" এবং "তিন বাক্যের বেশি না লেখা"-র মতো চরিত্র-নিয়ম মেনে চলার চেষ্টা করবে, যা জরুরি পরিস্থিতিতে বিস্তারিত ডিবাগিং তথ্য দেওয়ার প্রয়োজনের সাথে সরাসরি সাংঘর্ষিক। ফলাফল — কম উপযোগী, বিলম্বিত সাহায্য।
-
চিহ্নিত করুন: নিচের সিস্টেম প্রম্পটটিতে কোন অংশগুলো "রোল/টোন নির্দেশনা" এবং কোন অংশ অপ্রয়োজনীয়
"চরিত্র-বিল্ডিং" — "You are Max, a 42-year-old former teacher turned AI tutor who loves puns and always ends
responses with an encouraging emoji. Explain concepts for a 10th-grade student, using simple language and
one worked example."
দরকারি রোল/টোন অংশ — "AI tutor," "Explain concepts for a 10th-grade student," "simple language and one worked example।" অপ্রয়োজনীয় চরিত্র-বিল্ডিং — নাম "Max," বয়স "৪২," পেশার ইতিহাস, পান-প্রীতি, এবং প্রতিটি উত্তরে ইমোজি দিয়ে শেষ করার বাধ্যবাধকতা — এগুলো শিক্ষাগত ফলাফলে কোনো প্রকৃত মূল্য যোগ করে না।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পরবর্তী পাঠ — ধাপে ধাপে চিন্তা, Chain-of-Thought পাঠ ০৮ মডেল কীভাবে "ভাবে", এবং কেন আধুনিক মডেলে চিন্তা এখন আংশিক বিল্ট-ইন — বিস্তারিত পরবর্তী পাঠে।
- সব AI Courses দেখুন ABCL TECH AI Foundations, Python for AI, Machine Learning, Deep Learning, NLP ও LLM, Prompt Engineering — সব এক জায়গায়।
- AI সংবাদ ও সাম্প্রতিক ঘটনাবলি Blog ABCL TECH-এর বাংলা AI সংবাদ — Claude, GPT, Gemini-এর নতুন মডেল ও আপডেট নিয়ে।