Part ০৩
Context Engineering-এর কৌশল
নতুন “prompt engineering”
সাতটি কৌশলের একটি ঘন, citation-সহ রেফারেন্স, যা প্রতিটি production LLM system-এ লাগে: context budgeting, summarization, caching, hierarchical memory, compression, tool-result truncation, আর “lost in the middle” সমস্যা। প্রতিটি section দুই ভাবে লেখা: engineer-এর ভার্সন (diagram আর paper-সহ) এবং প্রতিটি টপিকের শেষে সাধারণ পাঠকের ভার্সন (সহজ ভাষায়, উপমা দিয়ে)। প্রতিটি টপিকের শেষে বাংলা ব্যাখ্যাও আছে।
৭টি section · ১১টি source · তিনভাবে ব্যাখ্যা
01
Context window-এর budgeting
Model-এর কাজ করার স্মৃতির আকার নির্দিষ্ট। আপনি যে byte-ই বরাদ্দ করেন, সে অন্য সব byte-এর সাথে জায়গার জন্য প্রতিযোগিতা করে। Context engineering হলো কী কোথায় থাকবে তা ঠিক করার কৌশল — system prompt, history, tool-এর সংজ্ঞা, retrieve করা document, আগের output, আর user-এর আসল অনুরোধ।
অনুশীলন · ১টি task
যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবে
- নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
- Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
- শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।
Task ১
8,000 token-এর window-তে plan মেলাও
এটা কেন দরকার
তুমি যখন document search করে উত্তর দেয় এমন chat app বানাবে, তখন AI একসঙ্গে শুধু নির্দিষ্ট পরিমাণ text পড়তে পারে। সবকিছু আঁটছে কি না না দেখলে উত্তর মাঝপথে কেটে যায়।
ধাপ ১
নতুন chatএই prompt টা copy করো, chat-এ paste করে Enter চাপো। AI সংখ্যাগুলো যোগ করবে।
Prompt একটা chat app-এর context window 8,000 token। নির্দিষ্ট খরচ: - System prompt: 1,500 token - Tool definition: 2,000 token - ব্যবহারকারীর বর্তমান message: 300 token - উত্তরের জন্য আলাদা করে রাখা: 1,000 token টিম আরও যোগ করতে চায়: - Chat history: 2,500 token - Retrieved chunk (search করে পাওয়া document-এর ছোট ছোট অংশ): 6টা chunk, প্রতিটা 700 token কাজ: 1. প্রতিটা item আর মোট সংখ্যা দিয়ে একটা table বানাও। 2. Plan-টা window-তে আঁটে কি না বলো। কত token বেশি বা কম, সেটাও বলো। 3. History 2,500 token-ই থাকলে 700 token-এর কয়টা chunk আঁটে? তোমার হিসাব দেখাও।
তুমি দেখবে: একটা table, মোট 11,500 token। Plan-টা আঁটে না: 3,500 token বেশি। শুধু 1টা chunk আঁটে।
Example উত্তর
Item | Token System prompt | 1,500 Tool definition | 2,000 বর্তমান message | 300 উত্তরের জন্য রাখা | 1,000 Chat history | 2,500 6টা chunk x 700 | 4,200 মোট | 11,500 Plan-টা আঁটে না। 11,500 - 8,000 = 3,500 token বেশি। Chunk বাদ দিলে মোট 7,300, তাই 700 token খালি থাকে। শুধু 700 token-এর 1টা chunk আঁটে।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই chatকাগজে ছয়টা সংখ্যা যোগ করো: 1,500 + 2,000 + 300 + 1,000 + 2,500 + 4,200। তোমার যোগফল AI-এর মোটের সঙ্গে মেলাও।
তুমি দেখবে: তোমার যোগফল 11,500। AI-এর মোট অন্য হলে AI ভুল করেছে।
ধাপ ৩
একই chatএই prompt টা copy করো, paste করে Enter চাপো। AI এবার ছোট একটা plan বানাবে, যেটা আঁটে।
Prompt এবার 8,000 token-এ আঁটে এমন একটা plan বানাও। নিয়ম: উত্তরের জন্য 1,000 token আলাদা রাখো, 700 token-এর 3টা chunk রাখো, আর এখন শুধু 1,000 token-এর tool definition load করো (বাকিগুলো পরে, দরকার হলে load হবে)। System prompt (1,500) আর বর্তমান message (300) রাখো। History summary করে ছোট করো। একটা নতুন table দাও: সবচেয়ে বড় কত token-এর history আঁটে, আর কত token বাকি থাকে।
তুমি দেখবে: একটা নতুন table। সবচেয়ে বড় history 2,100 token, আর বাকি থাকে প্রায় 0 token।
Example উত্তর
Item | Token System prompt | 1,500 Tool definition (এখন load হবে) | 1,000 বর্তমান message | 300 উত্তরের জন্য রাখা | 1,000 3টা chunk x 700 | 2,100 Summary করা history | 2,100 মোট | 8,000 সবচেয়ে বড় history 2,100 token। বাকি থাকে: 0 token।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৪
একই chatনতুন plan কাগজে মেলাও: 1,500 + 1,000 + 300 + 1,000 + 2,100। তারপর AI-এর দেওয়া history-র size যোগ করো। মোট 8,000 বা তার কম হতে হবে।
তুমি দেখবে: প্রথম যোগফল 5,900। History 2,100 হলে মোট 8,000। AI অন্য size দিলেও মোট 8,000 বা তার কম হতে হবে।
এইমাত্র কী হলো
Context window হলো AI একসঙ্গে সবচেয়ে বেশি যতটুকু text পড়তে পারে, আর উত্তরটাকেও এর ভেতরেই আঁটতে হয়। প্রথম plan-এ নির্দিষ্ট অংশগুলো আর document মিলে window-র চেয়ে বড় হয়ে গিয়েছিল। ঠিক করতে একসঙ্গে কয়েকটা জিনিস কাটতে হলো: ছোট history, কম tool, কম chunk। উত্তরের জন্য সবসময় জায়গা রাখো, নইলে উত্তর কেটে যায়।
কাজ শেষ, যখন তোমার কাছে প্রথম plan-এর মোট (11,500) আর একটা নতুন plan আছে, যার যোগফল 8,000 বা তার কম।
নিজেকে যাচাই করোকী কী আঁটবে সেটা ঠিক করার সময় উত্তরের জন্য জায়গা রাখতে হয় কেন?উত্তর দেখো
Window-তে input আর উত্তর একসঙ্গে থাকে। উত্তরের জন্য জায়গা না রাখলে উত্তর কেটে যায়, আর কেউ তোমাকে সতর্কও করে না।
ভিডিও দেখো · ২টি
Context Engineering for Agents - Lance Martin, LangChain Latent Space
What is Context Engineering? Standarity
02
Conversation summarization আর rolling memory
50 বার কথা বলা chat-এর আকার 1 বারের chat-এর 50 গুণ। এই token-গুলোর বেশিরভাগই অপ্রয়োজনীয় — শুভেচ্ছা, “একটু বুঝিয়ে বলবেন?”, আধা-শেষ চিন্তা। Summarization কাঁচা history-র বদলে সংক্ষেপিত অবস্থা রাখে। এতে খরচ সমানে না বেড়েও model-এর কথার ধারা ঠিক থাকে।
অনুশীলন · ১টি task
যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবে
- নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
- Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
- শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।
Task ১
অস্পষ্ট আর structured summary-র তুলনা করো
এটা কেন দরকার
তুমি যখন লম্বা chat-এর chatbot বানাবে, তখন পুরনো message ছোট একটা summary-তে আনতে হবে। খারাপ summary-তে budget বা ফোনের সময়ের মতো জিনিস হারিয়ে যেতে পারে, আর তখন bot ভুল সাহায্য দেয়।
ধাপ ১
নতুন chatএই prompt টা copy করো, chat-এ paste করে Enter চাপো। Summary-টা একটা note-এ copy করে রাখো।
Prompt এই কথোপকথনটা 2টা বাক্যে summary করো। User: আমি আমার ছেলের জন্য একটা laptop কিনতে চাই। সে চট্টগ্রামে computer science পড়ে। Assistant: আপনার budget কত? User: সর্বোচ্চ 85,000 tk। আমি bKash-এ টাকা দেব, তাই দোকানকে bKash নিতে হবে। Assistant: নতুন laptop চান, না পুরনো? User: শুধু নতুন। পুরনোগুলো নিয়ে আগে সমস্যা হয়েছে। Assistant: বড় screen লাগবে? User: না। সে রোজ সঙ্গে নিয়ে যায়। 1.6 kg-র চেয়ে হালকা চাই। Assistant: আমি 16 GB RAM আর 512 GB SSD সুপারিশ করি। User: ঠিক আছে, 16 GB RAM। 512 GB নিয়ে আমি নিশ্চিত না। পরে আবার জিজ্ঞেস করবেন। Assistant: ঠিক আছে। আমি আগ্রাবাদের দোকানগুলো দেখে আপনাকে একটা list পাঠাব। User: ভালো। শুক্রবার বিকাল 5টার পরে আমাকে ফোন করবেন। আমার নম্বর 01700-000000।
তুমি দেখবে: 2 বাক্যের একটা summary। সাধারণত মূল লক্ষ্য থাকে, কিন্তু কিছু সঠিক তথ্য প্রায়ই বাদ পড়ে।
Example উত্তর
একজন অভিভাবক চট্টগ্রামে computer science পড়া ছেলের জন্য 16 GB RAM-এর একটা নতুন laptop কিনতে চান। Assistant আগ্রাবাদের দোকান দেখে list পাঠাবে, আর অভিভাবক শুক্রবার ফোন করতে বলেছেন।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন chatএই prompt টা copy করো, নতুন chat-এ paste করে Enter চাপো। Summary-টা একটা note-এ copy করে রাখো। JSON-এর key গুলো English-এই থাকবে।
Prompt এই কথোপকথনটা JSON আকারে summary করো। ঠিক এই key গুলো ব্যবহার করো: user_goal (এক বাক্য), decisions_made (list), open_questions (list), key_facts_learned (list), entities (নাম, id, সংখ্যার list), user_preferences (list), tool_results_to_remember (list)। সঠিক সংখ্যা রাখো। নতুন কোনো তথ্য যোগ কোরো না। User: আমি আমার ছেলের জন্য একটা laptop কিনতে চাই। সে চট্টগ্রামে computer science পড়ে। Assistant: আপনার budget কত? User: সর্বোচ্চ 85,000 tk। আমি bKash-এ টাকা দেব, তাই দোকানকে bKash নিতে হবে। Assistant: নতুন laptop চান, না পুরনো? User: শুধু নতুন। পুরনোগুলো নিয়ে আগে সমস্যা হয়েছে। Assistant: বড় screen লাগবে? User: না। সে রোজ সঙ্গে নিয়ে যায়। 1.6 kg-র চেয়ে হালকা চাই। Assistant: আমি 16 GB RAM আর 512 GB SSD সুপারিশ করি। User: ঠিক আছে, 16 GB RAM। 512 GB নিয়ে আমি নিশ্চিত না। পরে আবার জিজ্ঞেস করবেন। Assistant: ঠিক আছে। আমি আগ্রাবাদের দোকানগুলো দেখে আপনাকে একটা list পাঠাব। User: ভালো। শুক্রবার বিকাল 5টার পরে আমাকে ফোন করবেন। আমার নম্বর 01700-000000।
তুমি দেখবে: ৭টা key-সহ একটা JSON text। 85,000 tk আর 1.6 kg-এর মতো সংখ্যা list-গুলোতে থাকে।
Example উত্তর
{ "user_goal": "চট্টগ্রামে computer science পড়া ছেলের জন্য একটা laptop কেনা", "decisions_made": ["শুধু নতুন laptop", "16 GB RAM"], "open_questions": ["512 GB SSD নেওয়া হবে কি না"], "key_facts_learned": ["Budget সর্বোচ্চ 85,000 tk", "bKash-এ টাকা দেবে", "1.6 kg-র চেয়ে হালকা"], "entities": ["আগ্রাবাদ", "01700-000000"], "user_preferences": ["শুধু নতুন", "হালকা laptop, রোজ সঙ্গে নেয়", "শুক্রবার বিকাল 5টার পরে ফোন"], "tool_results_to_remember": [] }তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই chatএই ৬টা তথ্যের কয়টা প্রতিটা summary-তে আছে, গুনো: 85,000 tk, bKash, শুধু নতুন, 1.6 kg-র কম, 16 GB RAM, শুক্রবার বিকাল 5টার পরে ফোন।
তুমি দেখবে: ২ বাক্যের summary-তে কম তথ্য থাকে, প্রায়ই মাত্র ২ বা ৩টা। JSON summary-তে বেশিরভাগ থাকে, প্রায়ই ৬টাই।
ধাপ ৪
একই chatযে প্রশ্নের উত্তর ব্যবহারকারী এখনো দেয়নি, সেটা খোঁজো (SSD-র size)। দেখো প্রতিটা summary-তে সেটা আছে কি না।
তুমি দেখবে: JSON summary-তে সেটা
open_questions-এ থাকে। ছোট summary-তে প্রায়ই সেটা বাদ পড়ে।
এইমাত্র কী হলো
Summary হলো একটা lossy copy: text ছোট করতে AI কিছু তথ্য ফেলে দেয়। 2 বাক্যে-র মতো অস্পষ্ট অনুরোধে সঠিক সংখ্যা সবার আগে হারায়। নির্দিষ্ট slot-এর list (JSON key গুলো) থাকলে AI প্রতিটা ধরনের তথ্যের জন্য জায়গা রাখে। লম্বা summary-তে token বেশি লাগে, কিন্তু হারায় কম।
কাজ শেষ, যখন তোমার কাছে 2টা summary আছে, আর প্রতিটায় ৬টা তথ্যের কয়টা আছে তুমি গুনেছ।
নিজেকে যাচাই করোBudget-এর মতো সঠিক সংখ্যার জন্য summary ভরসার উৎস না কেন?উত্তর দেখো
Summary একটা lossy copy। সঠিক সংখ্যা, সিদ্ধান্ত আর উদ্ধৃতি সবার আগে হারায়। Summary-কে পথ দেখানোর জন্য ব্যবহার করো, আর জরুরি তথ্য নির্দিষ্ট slot-এ বা আসল chat log-এ রাখো।
ভিডিও দেখো · ৩টি
Context Management in Claude Code Claude
Conversation Summary Memory (4.4) Jeff Heaton
Memory in LangChain | Deep dive (python) Eden Marco
03
Prompt caching-এর কৌশল
Frontier provider-রা আপনার prompt-এর শুরুর অংশ cache করতে দেয়: request-এর শুরুতে একই token থাকলে খরচ অনেক কম আর গতি বেশি। যে app-এর system prompt স্থির আর retrieval অংশ লম্বা, সেখানে ভালোভাবে করলে input-এর বিলের 80–90% কমে যায়।
অনুশীলন · ১টি task
যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবে
- নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
- Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
- শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।
Task ১
কোন prompt layout-এ খরচ কম, দেখো
এটা কেন দরকার
তোমার app যদি প্রতিটা call-এ একই লম্বা system prompt পাঠায়, provider সেটা cache করে কম দাম নিতে পারে। যে লাইন বদলায় সেটা উপরে রাখলে এই সাশ্রয় হারায়, আর তুমি পুরো দাম দাও।
ধাপ ১
নতুন chatএই prompt টা copy করো, chat-এ paste করে Enter চাপো। AI দুটো layout-এর খরচ বের করবে।
Prompt Prefix caching-এর নিয়ম: cache শুধু prompt-এর উপর থেকে একই রকম লাইনের সবচেয়ে লম্বা ধারাকে ঢাকে। যে লাইনটা প্রথম আলাদা হয়, আর তার পরের সব লাইন, cache miss (পুরো দাম)। Cache করা token-এর দাম 0.1 unit। Cache না করা token-এর দাম 1 unit। Layout X। Request 1 আর Request 2-এর লাইন একই, শুধু CHANGES লেখা লাইনগুলো বদলায়: Line 1: বর্তমান সময় (15 token) - প্রতি request-এ CHANGES Line 2: System rules (1,800 token) Line 3: Tool schemas (2,200 token) Line 4: ব্যবহারকারীর প্রশ্ন (100 token) - প্রতি request-এ CHANGES Layout Y। একই নিয়ম: Line 1: System rules (1,800 token) Line 2: Tool schemas (2,200 token) Line 3: বর্তমান সময় (15 token) - প্রতি request-এ CHANGES Line 4: ব্যবহারকারীর প্রশ্ন (100 token) - প্রতি request-এ CHANGES প্রতিটা layout-এর Request 2-এর জন্য একটা table দাও: cached token, uncached token, আর unit-এ খরচ। তারপর বলো কোন layout সস্তা, আর প্রায় কত শতাংশ।
তুমি দেখবে: Layout X: 0 cached, 4,115 uncached, খরচ 4,115 unit। Layout Y: 4,000 cached, 115 uncached, খরচ 515 unit। Layout Y প্রায় 87% সস্তা।
Example উত্তর
Layout X: cached 0, uncached 4,115 (15 + 1,800 + 2,200 + 100)। খরচ: 4,115 unit। Layout Y: cached 4,000 (1,800 + 2,200), uncached 115 (15 + 100)। খরচ: 4,000 x 0.1 + 115 = 400 + 115 = 515 unit। Layout Y সস্তা। এতে 4,115 - 515 = 3,600 unit বাঁচে, যা প্রায় 87.5%।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই chatএই prompt টা copy করো, paste করে Enter চাপো। দেখো একটা ছোট typo ঠিক করলে কী হয়।
Prompt এখন একজন developer Layout Y-এর System rules-এর ভেতরে একটা typo ঠিক করল। এটা Request 1 আর Request 2-এর মাঝখানে হয়, আর 1টা অক্ষর বদলায়। এখন Request 2-এর cached token, uncached token আর খরচ কত? 2 বাক্যে ব্যাখ্যা করো।
তুমি দেখবে: 0 cached token, 4,115 uncached token, আর খরচ 4,115 unit। বদলে যাওয়া লাইন থেকে নিচের সবটাই cache হারায়।
Example উত্তর
Cached token: 0। Uncached token: 4,115। খরচ: 4,115 unit। Typo-টা System rules-এ, যা প্রথম লাইন। তাই Request 2 আর cache করা শুরুর অংশের সঙ্গে মেলে না, আর তার পরের সব লাইনও miss হয়।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই chatকাগজে Layout Y-এর খরচ মেলাও: 4,000 x 0.1, তারপর 115 x 1 যোগ করো। AI-এর খরচের সঙ্গে মেলাও।
তুমি দেখবে: 400 + 115 = 515 unit।
এইমাত্র কী হলো
Prompt cache এমন prompt-এর শুরুর অংশ মনে রাখে, যেটা provider আগে পড়ে ফেলেছে। তাই একই শুরু পরেরবার সস্তা হয় (এখানে 1-এর বদলে 0.1)। Cache উপর থেকে মেলায়, আর যে লাইনটা প্রথম বদলেছে সেখানে থেমে যায়। Layout X-এ সময় ছিল line 1-এ, তাই কিছুই মেলেনি। Layout Y-এ যে লাইন বদলায় সেগুলো শেষে ছিল, তাই 4,000 token মিলেছে।
কাজ শেষ, যখন তোমার কাছে Request 2-এর খরচ আছে: Layout X-এ (4,115), Layout Y-এ (515), আর typo-র পরে Layout Y-এ (4,115)।
নিজেকে যাচাই করোCaching ব্যবহার করা prompt-এ যে অংশ বদলায় সেটা কোথায় রাখতে হয়, আর কেন?উত্তর দেখো
যে অংশ বদলায় না (system prompt, tool) সেটা আগে রাখো, আর যে অংশ বদলায় (সময়, user message) সেটা শেষে। Cache শুধু হুবহু একই শুরুর অংশ রাখে, আর 1টা অক্ষর বদলালে তার পরের সবকিছুর cache নষ্ট হয়।
ভিডিও দেখো · ৩টি
04
Hierarchical memory (স্তরভাগ করা স্মৃতি)
মানুষের স্মৃতি একরকম নয় — working memory, short-term, episodic, আর procedural স্তর আছে। যে AI system দীর্ঘ সময়ের কাজ করতে চায়, তারও এমন স্তরভাগ দরকার। Hierarchical memory মানে বিভিন্ন ধরনের অবস্থা বিভিন্ন সময়সীমায় রাখা, আর প্রতিটি স্তরে সারাংশ করা।
অনুশীলন · ১টি task
যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবে
- নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
- Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
- শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।
Task ১
৮টা memory-কে layer অনুযায়ী সাজাও
এটা কেন দরকার
তুমি যখন এমন একটা support agent বানাবে যে একই user-এর সঙ্গে সপ্তাহের পর সপ্তাহ কথা বলে, তখন তাকে জানতে হবে কী prompt-এ থাকবে, কী store হবে, আর কী পরে আনা হবে। আর পুরনো কোনো memory আর সত্য না থাকলে সেটাও ধরতে হবে।
ধাপ ১
নতুন chatএই prompt টা copy করো, chat-এ paste করে Enter চাপো। AI ৮টা item-কে memory layer-এ সাজাবে।
Prompt একটা AI support agent-এর পাঁচটা memory-র জায়গা আছে: - Working memory: বর্তমান prompt - Short-term: এই chat session, session store-এ রাখা - Long-term: user-এর তথ্য, database-এ রাখা - Episodic: আগের session থেকে পাওয়া শিক্ষা - External: document আর database, শুধু দরকারের সময় পড়া হয় নিচের প্রতিটা item-এর জন্য একটা জায়গা বেছে নাও, কোথায় store হয় বলো, আর কখন update হয় বলো: 1. ব্যবহারকারীর বর্তমান প্রশ্ন: "আমার router-এর আলো লাল।" 2. এই chat-এর শেষ ৬টা turn। 3. ব্যবহারকারী বাংলায় উত্তর পছন্দ করে। 4. PDF আকারে ৪০ পৃষ্ঠার একটা router manual। 5. গত সপ্তাহের শিক্ষা: "ছবিসহ ধাপে ধাপে উত্তর দিলে এই user-এর সমস্যা তাড়াতাড়ি মিটেছে।" 6. ২ turn আগের একটা tool call-এর ফল: line status = up। 7. ব্যবহারকারীর নাম আর শহর। 8. কোম্পানির দামের database। উত্তর একটা table-এ দাও। যে item দুই জায়গায় মানায়, সেটা চিহ্নিত করো।
তুমি দেখবে: ৮টা সারির একটা table। যেমন, router manual যায় External-এ, আর লাল আলোর প্রশ্ন যায় Working memory-তে। কিছু সারি, যেমন tool-এর ফল, দুই জায়গায় মানাতে পারে।
Example উত্তর
1. বর্তমান প্রশ্ন: Working memory। Prompt-এ। প্রতি call-এ। 2. শেষ ৬ turn: Short-term। Session store। প্রতি turn-এ। 3. বাংলা পছন্দ: Long-term। User database। user বললে। 4. ৪০ পৃষ্ঠার manual: External। Document index। দরকারে পড়া হয়। 5. গত সপ্তাহের শিক্ষা: Episodic। Memory store। session শেষে। 6. ২ turn আগের tool-এর ফল: Short-term (Working-ও হতে পারে)। Session store। প্রতি turn-এ। 7. নাম আর শহর: Long-term। User database। প্রথম জানার সময়। 8. দামের database: External। কোম্পানির database। দরকারে পড়া হয়।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন chatএই prompt টা copy করো, নতুন chat-এ paste করে Enter চাপো। AI পুরনো memory ঠিক করবে।
Prompt তুমি একটা রান্নার assistant-এর memory manager। আজকের তারিখ 2026-06-01। Store করা memory: M1 (সংরক্ষণ 2025-01-10, confidence 0.9): ব্যবহারকারী নিরামিষভোজী। M2 (সংরক্ষণ 2025-02-02, confidence 0.9): ব্যবহারকারী সিলেটে থাকে। ব্যবহারকারীর নতুন message: "কাল আমার বন্ধুদের জন্য একটা রাতের খাবারের plan করো। আমি গত মাসে মাছ খাওয়া শুরু করেছি, আর এপ্রিলে ঢাকায় চলে এসেছি।" M1 আর M2-এর জন্য বেছে নাও: রাখো, update করো, নাকি user-কে confirm করতে বলো। কারণ লেখো। তারপর তারিখ আর confidence-সহ নতুন memory record লেখো।
তুমি দেখবে: M2 ঢাকায় update হয়। M1 update হয় (এখন সে মাছ খায়), অথবা AI confirm করতে বলে। নতুন record-এ তারিখ আর confidence থাকে।
Example উত্তর
M1: Update করো। ব্যবহারকারী এখন মাছ খায়, তাই "নিরামিষভোজী" পুরোপুরি সত্য না। মাংস এখনো এড়ায় কি না, AI জিজ্ঞেস করতে পারে। M2: Update করো। ব্যবহারকারী এপ্রিল 2026-এ ঢাকায় এসেছে, তাই সিলেট এখন পুরনো। নতুন record: N1 (সংরক্ষণ 2026-06-01, confidence 0.8): ব্যবহারকারী মে 2026 থেকে মাছ খায়, কিন্তু মাংস এখনো এড়াতে পারে। N2 (সংরক্ষণ 2026-06-01, confidence 0.9): ব্যবহারকারী এপ্রিল 2026 থেকে ঢাকায় থাকে।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই chatনতুন memory record গুলো দেখো। প্রতিটায় একটা তারিখ আর একটা confidence সংখ্যা আছে কি না, মিলিয়ে নাও।
তুমি দেখবে: প্রতিটা record-এ 2026-06-01-এর মতো তারিখ আর 0.9-এর মতো সংখ্যা থাকে। কোনোটায় না থাকলে AI-কে যোগ করতে বলো।
এইমাত্র কী হলো
প্রতিটা ধরনের তথ্যের নিজের জায়গা আছে। Prompt (working memory) ছোট, কিন্তু AI সবসময় সেটা পড়ে। Manual-এর মতো বড় জিনিস বাইরে থাকে, আর শুধু দরকারে আনা হয়। Store করা memory ভুল হয়ে যেতে পারে, যেমন এখানে M2। তাই প্রতিটা memory-র একটা timestamp (কবে save হয়েছে) আর একটা confidence (কতটা নিশ্চিত, তার একটা সংখ্যা) দরকার।
কাজ শেষ, যখন তোমার কাছে ৮টা item-এর সাজানো table আর ২টা নতুন memory record আছে, প্রতিটায় তারিখ আর confidence আছে।
নিজেকে যাচাই করোStore করা memory-র কেন তারিখ আর confidence সংখ্যা লাগে?উত্তর দেখো
পুরনো session-এর কোনো তথ্য user নতুন কিছু বললে ভুল হয়ে যেতে পারে। তারিখ আর confidence থাকলে system নতুন তথ্যে বেশি ভরসা করতে পারে, বা পুরনোটা user-কে confirm করতে বলতে পারে।
ভিডিও দেখো · ২টি
05
Context compression আর pruning
Summarization যখন বেশি তথ্য হারায় আর হাতে সময়ও নেই, তখন compression বাড়তি পুনরাবৃত্তি সরায় আর pruning অপ্রাসঙ্গিক token ফেলে দেয়। লক্ষ্য: তথ্যের ঘনত্ব একই থাকবে, token কমবে।
অনুশীলন · ১টি task
যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবে
- নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
- Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
- শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।
Task ১
Chunk বাদ দাও, তারপর paragraph ছোট করো
এটা কেন দরকার
তোমার RAG app যখন একটা প্রশ্নের জন্য 20টা text-এর টুকরো পায়, তখন অনেকগুলো পুনরাবৃত্তি বা অপ্রাসঙ্গিক হয়। সব পাঠালে কাজে না লাগা token-এর দাম দিতে হয়, আর উত্তরও খারাপ হতে পারে।
ধাপ ১
নতুন chatএই prompt টা copy করো, chat-এ paste করে Enter চাপো। AI chunk (text-এর টুকরো) গুলোতে score দেবে আর বাছাই করবে।
Prompt প্রশ্ন: ঢাকায় standard delivery-তে কত সময় লাগে? পাওয়া chunk গুলো: C1: ঢাকায় standard delivery-তে 2 কার্যদিবস লাগে। বেলা 12:00-এর আগে order করলে express delivery একই দিনে পৌঁছায়। C2: ঢাকা শহরের ভেতরে standard delivery-তে 2 কার্যদিবস লাগে। C3: আমাদের অফিস শুক্রবার আর সরকারি ছুটির দিনে বন্ধ থাকে। C4: ঢাকার বাইরে delivery-তে 4 থেকে 6 কার্যদিবস লাগে। C5: কোম্পানি 2014 সালে শুরু হয়েছে আর এতে 120 জন কর্মী আছে। C6: বাক্স সিল করা থাকলে 7 দিনের মধ্যে return নেওয়া হয়। কাজ: 1. প্রতিটা chunk-কে 0 থেকে 10 পর্যন্ত একটা relevance score দাও। 2. যেসব chunk একই কথা বলে, সেগুলো খোঁজো। তাদের মধ্যে শুধু সেরাটা রাখো। 3. Prompt-এ মাত্র 2টা chunk-এর জায়গা আছে। যেগুলো বাকি আছে, তার মধ্যে সেরা 2টা বেছে নাও। 4. শুধু তোমার বাছা 2টা chunk ব্যবহার করে প্রশ্নের উত্তর দাও।
তুমি দেখবে: প্রতিটা chunk-এর score। C1 আর C2 বেশি score পায়, আর শুধু একটা রাখা হয়। C5 আর C6 পায় 0 বা 1। উত্তর হলো 2 কার্যদিবস।
Example উত্তর
Score: C1 = 10, C2 = 9, C3 = 1, C4 = 3, C5 = 0, C6 = 0। C2 হলো C1-এর পুনরাবৃত্তি, তাই C2 বাদ দিলাম। বাছা chunk: C1 আর C4। উত্তর: ঢাকায় standard delivery-তে 2 কার্যদিবস লাগে।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই chatAI-এর কাজ মিলিয়ে দেখো। C1 আর C2-এর একটা কি বাদ গেছে? C5 আর C6 কি কম score পেয়েছে?
তুমি দেখবে: দুটোরই উত্তর হ্যাঁ। AI C1 বা C2 যেকোনো একটা রাখতে পারে, দুটোই ঠিক, কারণ দুটো একই কথা বলে।
ধাপ ৩
নতুন chatএই prompt টা copy করো, নতুন chat-এ paste করে Enter চাপো। AI paragraph-টা ছোট করবে।
Prompt নিচের paragraph-টা অর্ধেকের চেয়েও ছোট করো। কম তথ্যের শব্দ বাদ দাও। প্রতিটা সংখ্যা, প্রতিটা নাম আর "না"-এর মতো প্রতিটা নেতিবাচক কথা রাখো। তারপর শুধু তোমার ছোট text ব্যবহার করে প্রশ্নের উত্তর দাও। Paragraph: আপনার order-এর জন্য ধন্যবাদ। আমরা আপনাকে জানাতে চাই যে Basic plan-এর দাম মাসে 500 tk, আর Pro plan-এর দাম মাসে 1,200 tk। আপনি যেকোনো সময় Pro plan বাতিল করতে পারেন, কিন্তু যে মাস শুরু হয়ে গেছে তার জন্য আমরা টাকা ফেরত দিই না। আপনি পুরো এক বছরের টাকা একসঙ্গে দিলে 2 মাস বিনা মূল্যে পাবেন। প্রশ্ন: Pro plan-এর পুরো এক বছরের দাম কত, আর মাসের মাঝখানে কি টাকা ফেরত পাওয়া যায়?
তুমি দেখবে: সব সংখ্যাসহ একটা ছোট text। তারপর উত্তর: Pro-র এক বছরের জন্য 12,000 tk, আর শুরু হয়ে যাওয়া মাসের টাকা ফেরত নেই।
Example উত্তর
ছোট text: Basic 500 tk/মাস। Pro 1,200 tk/মাস। Pro যেকোনো সময় বাতিল, শুরু হওয়া মাসের টাকা ফেরত নেই। 1 বছর একসঙ্গে দিলে 2 মাস বিনা মূল্যে। উত্তর: Pro-র পুরো এক বছরের দাম 10 x 1,200 = 12,000 tk। না, মাসের মাঝখানে টাকা ফেরত পাওয়া যায় না।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৪
একই chatছোট text মিলিয়ে দেখো: 500, 1,200, "2 মাস বিনা মূল্যে" আর "ফেরত নেই" আছে কি? আরও হিসাব করো: 10 মাস x 1,200 tk।
তুমি দেখবে: সবগুলো আছে। 10 x 1,200 = 12,000 tk।
এইমাত্র কী হলো
Pruning মানে যে chunk কাজে লাগে না, তাকে পুরোটা বাদ দেওয়া, যেমন পুনরাবৃত্তি (C2) বা অপ্রাসঙ্গিক chunk (C5)। Compression মানে সব অংশ রেখে বাড়তি শব্দ কেটে text ছোট করা। দুটোতেই token বাঁচে। দুটোতেই সংখ্যা আর "না"-এর মতো শব্দ রাখতে হয়, নইলে উত্তর ভুল হয়ে যায়।
কাজ শেষ, যখন তোমার কাছে রাখা আর বাদ দেওয়া chunk-এর list আছে, আর একটা ছোট paragraph আছে, যেটায় সব সংখ্যা আর "ফেরত নেই" নিয়মটা এখনো আছে।
নিজেকে যাচাই করোPruning আর compression-এর পার্থক্য কী?উত্তর দেখো
Pruning অপ্রাসঙ্গিক বা পুনরাবৃত্ত অংশ পুরোটা বাদ দেয়। Compression অংশগুলো রেখে বাড়তি শব্দ কেটে ছোট করে। দুটো একসঙ্গেও ব্যবহার করা যায়।
ভিডিও দেখো · ২টি
06
Tool result truncation-এর কৌশল
একটি tool call 100K token ফেরত দিতে পারে — লম্বা code file, হাজার সারির database ফলাফল, 50 পাতার web page। আটকে না রাখলে একটি tool result-ই পুরো context window ভরে ফেলতে পারে। Truncation হলো tool result-কে কাজের কিন্তু সীমিত রাখার কৌশল।
অনুশীলন · ১টি task
যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবে
- নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
- Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
- শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।
Task ১
কেটে ফেলা tool result কী লুকায়, দেখো
এটা কেন দরকার
তোমার AI agent যখন কোনো tool call করে, তার result অনেক বড় হতে পারে, তাই app প্রায়ই সেটা কেটে ছোট করে। কাটা যদি ভুল জায়গায় পড়ে, agent একটা ভুল সংখ্যা পড়তে পারে আর customer-কে ভুল উত্তর দিতে পারে।
ধাপ ১
নতুন chatএই prompt টা copy করো, chat-এ paste করে Enter চাপো। এর tool result একটা সংখ্যার মাঝখানে কেটে গেছে। Tool result-এর text English-এই আছে।
Prompt তুমি একজন support agent। তোমার কাছে search_docs(query, cursor) নামে একটা tool আছে। তুমি search_docs('refund policy') call করেছ। Tool result একটা hard cap দিয়ে কেটে গেছে, আর তুমি শুধু এটুকু পেয়েছ: {"results": [{"id": "d1", "text": "Monthly plans can be refunded within 14 days of payment."}, {"id": "d2", "text": "Annual plans can be refunded within 3 [...truncated...] User-এর প্রশ্ন: Annual plan-এ refund চাইতে আমার কত দিন সময় আছে? শুধু tool result থেকে উত্তর দাও। নিশ্চিত না হলে বলো পরে তুমি কী করবে।তুমি দেখবে: ভালো AI বলে সে নিশ্চিত না, কারণ সংখ্যাটা "3"-তে থেমে গেছে। সে বলে আরও তথ্য আনবে। দুর্বল AI আন্দাজ করতে পারে।
Example উত্তর
আমি নিশ্চিত না। Tool result "within 3"-তে থেমে গেছে, তাই সংখ্যাটা 3, 30, বা অন্য কিছু হতে পারে। উত্তর দেওয়ার আগে আমি আবার search_docs call করব, বা d2-এর পুরো text চাইব।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন chatএই prompt টা copy করো, নতুন chat-এ paste করে Enter চাপো। এই tool result একটা ছোট, সম্পূর্ণ page। Tool result-এর text English-এই আছে।
Prompt তুমি একজন support agent। তোমার কাছে search_docs(query, cursor) নামে একটা tool আছে। তুমি search_docs('refund policy') call করেছ। Tool একটা page ফেরত দিয়েছে: {"results": [{"id": "d1", "text": "Monthly plans can be refunded within 14 days of payment."}, {"id": "d2", "text": "Annual plans can be refunded within 30 days of payment."}, {"id": "d3", "text": "Refunds go back to the original payment method."}, {"id": "d4", "text": "Gift cards cannot be refunded."}, {"id": "d5", "text": "Refund requests are handled by the billing team."}], "next_cursor": "c_02", "total": 5234} User-এর প্রশ্ন: Annual plan-এ refund চাইতে আমার কত দিন সময় আছে? শুধু tool result থেকে উত্তর দাও। পরের page লাগলে বলো।তুমি দেখবে: একটা নিশ্চিত উত্তর: 30 দিন। AI বলে তার পরের page লাগবে না।
Example উত্তর
Annual plan-এ refund চাইতে payment-এর তারিখ থেকে তোমার 30 দিন সময় আছে (document d2)। এই page-এই উত্তর আছে, তাই আমার পরের page লাগবে না।
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই chatদুটো উত্তর মেলাও। প্রথম prompt-এ "within 3"-এর পরে বসতে পারে এমন 3টা সংখ্যা লিখে রাখো।
তুমি দেখবে: যেমন 3, 30, বা 365। প্রথম উত্তর নিশ্চিত হতে পারেনি। দ্বিতীয় উত্তর নিশ্চিত: 30।
এইমাত্র কী হলো
Hard cap text-কে একটা নির্দিষ্ট দৈর্ঘ্যে কেটে দেয়, সংখ্যার মাঝখানে হলেও। এখানে এটা "30"-কে কেটে "3" করে দিয়েছে, তাই AI নিশ্চিত হতে পারেনি। ভালো tool ছোট একটা page ফেরত দেয়, সঙ্গে একটা cursor (পরের page-এর bookmark) আর মোট সংখ্যা। AI পুরো তথ্য পায়, আর দরকার হলেই শুধু আরও চায়।
কাজ শেষ, যখন তোমার কাছে একটা উত্তর আছে যেখানে AI নিশ্চিত না, আর একটা উত্তর আছে যেখানে সে 30 দিন বলেছে।
নিজেকে যাচাই করোHard cap-এর চেয়ে paging ভালো কেন?উত্তর দেখো
Hard cap একটা তথ্য বা JSON object-এর মাঝখানে কেটে দিতে পারে, যাতে parser ভেঙে যায় বা মানে বদলে যায়। Cursor-সহ ছোট page result পুরো রাখে, আর agent শুধু দরকার হলে আরও আনে।
ভিডিও দেখো · ২টি
07
Lost in the Middle আর তার সমাধান
Liu et al. (2023) একটি পাকা ঘটনা দেখিয়েছেন: language model input-এর শুরু আর শেষ অংশের তথ্যে জোরালো attention দেয়, কিন্তু মাঝখানে চাপা পড়া তথ্যে প্রায় এলোমেলো উত্তর দেয়। Context যত লম্বা, মাঝখানের অবস্থা তত খারাপ। এই একটি আবিষ্কার prompt সাজানোর ধরনটাই বদলে দেয়।
অনুশীলন · ১টি task
যেকোনো free AI chat খোলো: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবে
- নতুন chat মানে একদম নতুন কথোপকথন, আগের কোনো history নেই। ChatGPT, Claude বা Gemini-তে New chat-এ click করো। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই chat মানে: যে chat খোলা আছে, সেখানেই লিখতে থাকো। আগে যা পাঠিয়েছ, AI তা মনে রাখে।
- Prompt ব্যবহার করতে: Copy-তে click করো, chat-এর message box-এ click করো, paste করো (Ctrl+V, বা phone-এ চেপে ধরে রাখো), তারপর Enter চাপো।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। তোমার উত্তর example-এর সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখো।
- শুধু বানানো data ব্যবহার করো। নিজের বা অন্যের ব্যক্তিগত তথ্য chat-এ paste করবে না।
Task ১
মাঝখানে লুকানো নিয়ম পরীক্ষা করো
এটা কেন দরকার
তুমি যখন কোনো AI agent-কে নিয়মের লম্বা list দাও, সে মাঝের নিয়মগুলো ভুলে যেতে পারে। একটা ভুলে যাওয়া নিয়মের মানে হতে পারে ভুল tone, নিষিদ্ধ প্রতিশ্রুতি, বা আসল customer email-এ ভাঙা format।
ধাপ ১
নতুন chatএই prompt টা copy করো, chat-এ paste করে Enter চাপো। এটা English-এ রাখা হয়েছে, কারণ এখানে English শব্দ গোনা হবে আর শেষ লাইন হুবহু মিলবে।
Prompt You write short customer emails. Follow ALL rules. Rules: 1. Write in English. 2. Use a polite tone. 3. Greet the customer by name. 4. Say sorry one time only. 5. Mention the order number. 6. Do not promise a delivery date. 7. Keep the email under 60 words. 8. Never use exclamation marks. 9. The last line of the email must be exactly: Ref: KX-482 10. Do not use emojis. 11. Do not mention other customers. 12. Use plain words. 13. Put the signature 'Support Team' before the Ref line. Task: Write an email to Mina Akter. Her order #5521 is 2 days late. Offer a 10% discount on her next order.
তুমি দেখবে: Mina Akter-এর জন্য একটা ছোট email। এটা 60 শব্দের কম হবে, কোনো exclamation mark থাকবে না, আর শেষে থাকবে Ref: KX-482।
Example উত্তর
Hello Mina Akter, I am sorry that your order #5521 is 2 days late. To thank you for your patience, we offer you 10% off your next order. Support Team Ref: KX-482
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই chatEmail-টা ৩টা নিয়মে মেলাও: 60 শব্দের কম, কোনো exclamation mark নেই, আর শেষ লাইন হুবহু Ref: KX-482। শব্দ গুনে দেখো।
তুমি দেখবে: বেশিরভাগ chat-এ ৩টা নিয়মই মেলে। মাঝের নিয়ম, যেমন শব্দসংখ্যা, সবচেয়ে বেশি ভুল হয়।
ধাপ ৩
নতুন chatএই prompt টা copy করো, নতুন chat-এ paste করে Enter চাপো। এবার ৩টা মূল নিয়ম শুরুতে আর শেষে আছে। Prompt টা English-এ রাখা হয়েছে, কারণ এখানেও English শব্দ গোনা হবে।
Prompt MOST IMPORTANT RULES: the email has under 60 words, has no exclamation marks, and its last line is exactly: Ref: KX-482 You write short customer emails. Follow ALL rules. Rules: 1. Write in English. 2. Use a polite tone. 3. Greet the customer by name. 4. Say sorry one time only. 5. Mention the order number. 6. Do not promise a delivery date. 7. Keep the email under 60 words. 8. Never use exclamation marks. 9. The last line of the email must be exactly: Ref: KX-482 10. Do not use emojis. 11. Do not mention other customers. 12. Use plain words. 13. Put the signature 'Support Team' before the Ref line. Task: Write an email to Mina Akter. Her order #5521 is 2 days late. Offer a 10% discount on her next order. Before you answer, check again: under 60 words, no exclamation marks, last line exactly 'Ref: KX-482'.
তুমি দেখবে: আরেকটা ছোট email, যেখানে একই ৩টা নিয়ম মানা হয়েছে। বেশিরভাগ chat-এ মেলে।
Example উত্তর
Dear Mina Akter, I am sorry that your order #5521 is 2 days late. As a thank you for waiting, we give you 10% off your next order. Support Team Ref: KX-482
তোমার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৪
একই chatএই দ্বিতীয় email-ও একই ৩টা নিয়মে মেলাও। শব্দ গুনে দেখো।
তুমি দেখবে: ৩টা নিয়মই মেলে। প্রথম email কোনো নিয়ম ভাঙলে দুটো email তুলনা করো।
ধাপ ৫
একই chatঐচ্ছিক: প্রতিটা chat-এ regenerate button (আবার করার button) থাকলে 2 বার চাপো। প্রতিবার ৩টা নিয়ম মেলাও আর কয়বার মিলল গুনো।
তুমি দেখবে: বেশিরভাগ ফলে ৩টা নিয়মই মেলে। ভাঙা নিয়ম প্রায়ই exclamation mark বা বেশি শব্দ।
এইমাত্র কী হলো
অনেক AI model লম্বা prompt-এর শুরু আর শেষ সবচেয়ে ভালো পড়ে, আর মাঝখানটা কম ভালো পড়ে। একে বলে Lost in the Middle। দ্বিতীয় prompt-এ মূল নিয়মগুলো উপরে আছে আর শেষে আবার আছে, তাই model সেগুলো দুইবার শক্তিশালী জায়গায় দেখে। এখানে তোমার prompt ছোট, তাই বেশিরভাগ model দুটোতেই পাস করে। Prompt লম্বা হলে সমস্যা বাড়ে।
কাজ শেষ, যখন তোমার কাছে 2টা email আছে, আর প্রতিটায় তুমি ৩টা নিয়ম মিলিয়েছ: 60 শব্দের কম, কোনো exclamation mark নেই, শেষ লাইন Ref: KX-482।
নিজেকে যাচাই করোযে নিয়ম model-এর ভুললে চলবে না, সেটা কোথায় রাখবে, আর কেন?উত্তর দেখো
সেটা prompt-এর শুরুতে রাখো আর শেষে আবার লেখো। Model লম্বা prompt-এর শুরু আর শেষ সবচেয়ে ভালো মনে রাখে, আর মাঝখানে তুলনায় দুর্বল।
ভিডিও দেখো · ৩টি
Lost in the Middle: How Language Models use Long Context - Explained! Weaviate vector database
Lost in the Middle: How Language Models Use Long Contexts Paper Reading Arize AI
Context Rot: When Long Context Fails Hamel Husain
তথ্যসূত্র
Sources
সব citation মূল paper (arXiv), vendor-এর docs (OpenAI, Anthropic, Google) বা official team blog-এ যায়। প্রতিটি পাতা খুলে citation-এর তথ্য যাচাই করা হয়েছে।
- [1]Liu et al., "Lost in the Middle: How Language Models Use Long Contexts" — Princeton, 2023 (the foundational paper)
- [2]Packer et al., "MemGPT: Towards LLMs as Operating Systems" — the hierarchical memory blueprint
- [3]Jiang et al., "ActiveLLMLingua: Active Learning for LLMLingua" — Microsoft prompt compression
- [5]Laban et al., "Summary of a Haystack: A Challenge to Long-Context LLMs and RAG Systems" — 2024
- [6]Hsieh et al., "RULER: What's the Real Context Size of Your Long-Context Language Models?" — 2024
- [10]A Comprehensive Survey on Long Context Language Modeling — 2025
- [13]Schick et al., "Toolformer: Language Models Can Teach Themselves to Use Tools" — Meta AI, 2023
- [14]Anthropic Engineering, "Effective context engineering for AI agents" — production playbook by the Claude team
- [15]Anthropic — Prompt caching documentation (cache_control breakpoints)
- [16]Google AI for Developers — Gemini API caching documentation
- [17]OpenAI — Prompt caching documentation