স্লাইডিং উইন্ডো (Sliding Window) এবং কোল্ড ওয়েভ (Vague Froide): যখন এজেন্ট কনটেক্সট বিস্ফোরণ ঘটে এবং তথ্য না হারিয়ে আর্কাইভ করা প্রয়োজন হয়
প্রকাশিত: 26 April 2026
সারাংশ
একটি প্রকল্পে 48 সেশন এবং মোটে 150+ পর্যন্ত, আমি যত্নে নির্মিত Eager/Lazy শাসন তত্ত্ব দৃঢ়ভাবে বাঁধে উঠল। এজেন্ট ফাইলগুলি, যাকে হালকা হওয়া উচিত, মোটে ৫২০০ লাইনের ওজন বদল দিল। স্বয়ংচালিতভাবে লোড হওয়া কনটেক্স্ত আমার নিয়ন্ত্রণক্ষমতার চেয়ে দ্রুত বাড়ত। এই নিবন্ধে বলা হয়েছে যে আমি কিভাবে একটি বেকআপ মেকানিজম ধারণা করি — স্লাইন্ডিং উইন্ডো এবং সমান শীতল লহারের মধ্যে — যাতে এক্টিভ কনটেক্স্ত হালকা রাখা যায় এবং কখনো কщих না হারিয়ে যাওয়া হয়।
সিগনাল : 5200 লাইন
আমি সেশন ০৪৮-এর মাঝখানে আছি পর`magic-stick`, আমার লাইভ্স Linux ISO তৈরি করার প্রকল্প। Opencode আমাকে দেখছে। সব সময়ের মতো, এটি স্বয়ংক্রিয়ভাবে আমার Eager ফাইলগুলি সেশনের শুরুতে লোড করেছে —AGENT.adoc, PROMPT_REPRISE.adoc, .agents/INDEX.adoc. কোন অসাভাবিক নেই।
কিন্তু কোনো জিনিস ভুলে গেছে। উত্তরগুলো ধীর হয়ে গেছে। যুক্তি দিলুত হয়েছে। এজেন্টটি দুটি বার্তা আগে দেখていた বিবরণগুলো ভুলে যাচ্ছে।
আমি একটি টার্মিনাল খুলি এবং টাইপ করি:
wc -l .agents/INDEX.adoc .agents/SESSIONS_HISTORY.adoc \
.agents/archives/COMPLETED_TASKS_ARCHIVE_2026-04.adoc
260 লাইন INDEX-এর জন্য। 55 SESSIONS_HISTORY-এর জন্য।1756 COMPLETED_TASKS_ARCHIVE এর জন্য.
ফাইল`sessions/`এছাড়াও ~3200 লাইন যোগ করে। মোট :5200 লাইনপ্রসঙ্গ যারা লোড হচ্ছে, কেনেকোনোভাবে, অজেন্টের তৎক্ষণিক মוחে
আমি পূর্বের নিবন্ধে তত্ত্বগত করেছি Eager/Lazy কৌশলটি কাজ করছে — কিন্তু এর একটি জন্মজত দুর্বলতা আছে যা আমি পূর্বে আশা করেনি: এতে নেইবয়স বাড়ারের মেকানিজাম না. প্রতিটি সেশন এক লাইন যোগ করে INDEX‑এ, একটি অনুচ্ছেদ যোগ করে COMPLETED_TASKS‑এ, এবং sessions/‑এ একটি ফাইল। কখনো কিছু বের হয় না। প্রেক্ষापট হল একটি বফল বরফের গোল, যা প্রতিটি নতুন সেশনের সাথে বৃদ্ধি পায়।
@startuml skinparam backgroundColor #FEFEFE skinparam handwritten false title এজেন্ট কনটেক্সট গ্রোথ — সেশন ১ থেকে ৪৮ rectangle "সেশন ১-১০" as S10 #E8F5E9 rectangle "সেশন ১১-২০" as S20 #C8E6C9 rectangle "সেশন ২১-৩০" as S30 #A5D6A7 rectangle "সেশন ৩১-৪০" as S40 #81C784 rectangle "সেশন ৪১-৪৮" as S48 #66BB6A note right of S10 ইনডেক্স : ~৫০ লাইন সেশন : ~১০ লাইন আর্কাইভ : ~১০০ লাইন **মোট : ~৩০০ লাইন** end note note right of S20 ইনডেক্স (INDEX) : ~১০০ লাইন সেশন (SESSIONS) : ~২০ লাইন আর্কাইভ (ARCHIVE) : ~৪০০ লাইন **মোট : ~৮০০ লাইন** end note note right of S30 ইনডেক্স (INDEX) : ~১৬০ লাইন সেশন (SESSIONS) : ~৩০ লাইন আর্কাইভ (ARCHIVE) : ~৯০০ লাইন **মোট : ~১৮০০ লাইন** end note note right of S40 ইনডেক্স : ~২২০ লাইন সেশন : ~৪৫ লাইন আর্কাইভ : ~১৪০০ লাইন **মোট : ~৩২০০ লাইন** end note note right of S48 ইনডেক্স : **২৬০ লাইন** সেশন : **৫৫ লাইন** আর্কাইভ : **১৭৫৬ লাইন** **মোট : ৫২০০ লাইন** ⚠️ end note S10 -[#green]-> S20 S20 -[#green]-> S30 S30 -[#FF9800]-> S40 S40 -[#red]-> S48 @enduml
এটি একটি বাগ নয়; এটি সেশন শেষ প্রক্রিয়ার সরাসরি ফলাফল, যা প্রতিটি বিবরণকে মেটিকুলিভাবে সংরক্ষণ করে। সিস্টেম নিজের সাফল্যের শিকার।
ডায়াগনস্টিক : ট্রিপল রিডান্ড্যান্স
আমি এজেন্টকে সমস্যা নিরুপণ করার জন্য অনুরোধ করি। তার প্রতিক্রিয়া তৎক্ষণিক এবং সঠিক।
ফাইল |
রেখাগুলি |
ভুমিকা |
সমস্যা |
|
260+ |
EAGER (স্বয়ংচালিত) |
001 থেকে সব সেশনের টেবিল —+1 লাইন প্রতি সেশন |
|
55 |
উৎসাহী |
সারসংক্ষেপী টেবিল —INDEX সঙ্গে অতি পুনরাবৃত্তি |
|
1756 |
উত্সাহিত (অব্যাক্ত) |
অপ্রিলের সমস্ত সেশনের সম্পূর্ণ বিবরণ |
|
(empty) |
LAZY (অনুমানিত) |
ব্যক্তিগত আর্কাইভ, কিন্তুব্য�্যবহৃত হয়নিকারণ সবকিছু ইতিমধ্যে COMPLETED_TASKS-এ আছে |
এজেন্ট চারটি মূল কারণ চিহ্নিত করা:
-
COMPLETED_TASKS_ARCHIVE সব东西 শোষণ করে— আর্কাইভগুলোকে নির্দেশ করার পরিবর্তে`.sessions/`, তিনি প্রতিটি সেশনকে সম্পূর্ণরূপে কপি করে নেন।
-
INDEX.adoc` একটি সম্পূর্ণ ইতিহাসের ভূমিকা পালন করে— টেবিল "Sessions Récentes" ৩০+ এন্ট্রি আছে।
-
SESSIONS_HISTORY.adoc অতিরিক্ত— INDEX‑এ একই তথ্য, কিন্তু বিন্যাসটি ভিন্ন।
-
LAZY নিয়মটি মেনে নেওয়া হয়নি— COMPLETED_TASKS অনুমানিত EAGER কারণ এটি সব ধারণ করে।
তার প্রস্তাবটি র্যাডিকাল: INDEX কে ১০ সেশনে সীমাবদ্ধ করা, COMPLETED_TASKS খালি করা, SESSIONS_HISTORYকে pure LAZY-এ স্থানান্তর করা। তৎক্ষণীয় লাভ :~1900 লাইন সংরক্ষিত.
এটা পরিষ্কার, কার্যকর, যুক্তি-বাচক। কিন্তু আমার এই পদ্ধতির সাথে একটি সমস্যা আছে।
কেন আমি স্পষ্ট সমাধানটি প্রত্যাখ্যান করেছি?
এজেন্টের সমাধান হলো একটি ইঞ্জিনিয়ারের যিনি একটি ক্যাশ অপ্টিমাইজ করেন। সীমাবদ্ধ করুন। কাটে দিন। অপ্রয়োজনীয় পুনরাবৃত্তি সরিয়ে ফেলুন।
কিন্তু এই "বাজিমাত"গুলো বাজিমাত নয়। প্রতিটি শাসন ফাইল একটিবিভিন্ন কোণএকই বাস্তবে:
-
INDEX= দৃষ্টি ম্যাক্রো, একজিকিউটিভ ড্যাশবোর্ড
-
SESSIONS_HISTORY= রৈখিক কালক্রমবদ্ধ টেবিল, স্কোর করা
-
COMPLETED_TASKS_ARCHIVE= বিস্তারিত কাহিনি মেট্রিক্স সহ
-
sessions/.adoc* = ব্যক্তিগত আর্কাইভ, সম্পূর্ণ প্রসঙ্গ
এটি বোকা ডুপ্লিকেশন নয়। এটি এরবহু গঠিত দৃষ্টিভঙ্গি. এটি distillation‑এর প্রয়োজনীয়তা—যাতে ভবিষ্যে একজন মানুষ (বা ভালোভাবে প্রশিক্ষিত একটি ভবिष্যৎ LLM) কোণগুলোকে সমন্বয় করে প্যাটার্নগুলো.extract করতে পারে।
একটি ডেটা সায়েন্টিস্ট আপনাকে বলে: “৬ কলামের মধ্যে ৩টি কলাম সরিয়ে ফেলি, তারা সংযুক্ত।” আপনি তাকে কী উত্তর দেন? করেলেশনটি রিডান্ডেন্সি নয়, যখন প্রতিটি কলাম একই ঘটনার ভিন্ন একটি ধারণ ধারণ করে। এই মাত্রিক সমৃদ্ধিই ডেটাসেটকে ব্যবহারযোগ্য করে তোলে।
এটি আমার বোধ। এবং আমি এটিকে এজেন্টের শীতল যৌক্তিকতার বিরুদ্ধে রক্ষা করি।
__ আমার ধারণায় কোনো নীরব মিশ্রণ নেই। সবকিছু ফেলে দেওয়া হয় না; বরং, সেশন শেষ হওয়ার প্রক্রিয়ার সনকাঠিত ফলাফলকে সরানো হয় — প্রতিটি ফাইল তার কোণ এবং সত্যিই একটি উন্নয়নের আকারে থাকা পুনরাবৃত্তি সহ। এই বহুমাত্রিক উপকরণই distillation‑এর জন্য ভালো হবে। (empty)
এজেন্ট আঘাত খায়। এবং নিজেকে সংশোধন করে।
প্রস্তাব : একই শীতল তোফান
এজেন্টটি তারপর একটি আরও সূক্ষ্ম প্রক্রিয়া প্রস্তাব করে, যা আমার সমৃদ্ধ ডেটাসেটের অনুভূতিকে সম্মান করে এবং একই সাথে পরিসরের বিস্ফোরক সমস্যাটির টেকনিক্যাল দিকটিও সমাধান করে।
সিদ্ধান্তটি সরল এবং প্যাটার্ন থেকে সরাসরি অনুপ্রাণিতগরম/মধ্যম/ঠাণ্ডা স্টোরেজআর্কাইভ ব্যাবস্থাপনে প্রয়োগ করা :
-
গরম (আগ্রহী)= শেষ ১০ সেশন INDEX, PROMPT_REPRISE-তে (N+1) নম্বর সেশনের, শেষ ২টি সেশন ফাইল
-
গরম (LAZY)= SESSIONS_HISTORY সাম্প্রতিক, SCRIPT_VERIFICATION, সমস্ত রেফারেন্স ডকুমেন্টেশন
-
Cold (backup/)= বাকি সব, স্থানান্তরিতঅক্ষুণ্ণ, রূপান্তর ছাড়াই, পুন: ইন্ডেক্সিং ছাড়αι
----
----
----
.agents/
├── INDEX.adoc → Sessions N-9 à N (10 dernières)
├── SESSIONS_HISTORY.adoc → Sessions N-9 à N
├── SCRIPT_VERIFICATION.adoc → Dernière vérif (pas d'historique)
├── PROMPT_REPRISE.adoc → Session N+1 uniquement
├── sessions/ → Sessions N-1 à N uniquement
└── backup/
└── Y2026-sessions-001-039/ ← Vague froide, COPIE INTÉGRALE
├── INDEX.adoc → Sessions 001 à 039 (complet)
├── SESSIONS_HISTORY.adoc → Sessions 001 à 039 (complet)
├── COMPLETED_TASKS_ARCHIVE.adoc → Sessions 001 à 039 (complet)
└── sessions/ → 001.adoc, 002.adoc...
----
মেকানিজমের চাবি :**ব্যাকআপটি একটি কেন্দ্রীয় ইন্ডেক্স নয়, এটি গত লহরের একটি সঠিক অনুকরণ।**. 10টি সক্রিয় সেশনের সীমা অতিক্রম করলে, কюсьও মুছে না. কюсьও পুনঃ ইন্ডেক্স করা না. কюсьও মার্জ করা না. আমরা N-10 সেশনের মতো এজেন্ট ফাইলগুলোর প্যাকেট নেই. এবং আমরা এটা -এ স্থানান্তরিত করি`backup/`.
সক্রিয় ফাইলগুলো, তারা,截단 করা হয়েছে:
* INDEX : শুধুমাত্র 10টি সর্বশেষ লাইন (sliding window)
* SESSIONS_HISTORY : একই
* COMPLETED_TASKS_ARCHIVE : নতুন ফাইল বর্তমান সময়ের জন্য
* সেশন/ : শুধুমাত্র 2টি শেষের সেশন
[plantuml, format=svg, id=diag-hot-warm-cold, alt="Architecture Hot/Warm/Cold du contexte agent — EAGER/LAZY/backup"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 200
title এজেন্ট কন্টেক্সটের হট / ওয়ার্ম / কোল্ড আর্কিটেকচার
package "HOT (EAGER)\nস্বয়ংক্রিয়ভাবে শুল্কপ্রদত্ত\n~300 লাইন" as HOT #FFCDD2 {
file "INDEX.adoc\n(10 সেশন)" as IDX_HOT
file "PROMPT_REPRISE\n(session N+1)" as PRO_HOT
file "AGENT.adoc\n(নির্বদ্ধ নিয়ম)" as AG_HOT
}
package "WARM (LAZY)\nঅন-ডিম্যান্ডে লোড\n~500 লাইন" as WARM #FFF9C4 {
file "SESSIONS_HISTORY\n(10টি শেষ)" as HIS_WARM
file "SCRIPT_VERIFICATION\n(শেষ)" as VER_WARM
file "PROCEDURES.adoc\n(টেমপ্লেট)" as PRO_WARM
file "*_REFERENCE.adoc\n(প্রযুক্তিগত নথি)" as REF_WARM
}
package "COLD (backup/)\nকখনো চার্জ করা হয়নি\nশুধুমাত্র মানব পাঠ" as COLD #BBDEFB {
folder "Y2026-001-039/" as WAVE {
file "সম্পূর্ণ সূচী" as IDX_COLD
file "SESSIONS_HISTORY\n(সম্পূর্ণ)" as HIS_COLD
file "COMPLETED_TASKS\n(সম্পূর্ণ)" as ARCH_COLD
folder "সেশন/ (001-039)" as SESS_COLD
}
folder "Y2026-040-???\n(ভবিষ্যৎ)" as FUTURE
}
HOT --> WARM : "এজেন্ট উঠে যায়\nযদি প্রয়োজন হয়"
WARM --> COLD : "কখনো স্বয়ংক্রিয় নয়\nব্যক্তি সেখানে একা যায়"
note bottom of COLD
Règle : COPIE INTÉGRALE
Pas de transformation
Pas de réindexation
Read-only après archivage
end note
@enduml
----
তাৎপর্যপূর্ণ lợiBisাল : EAGER প্রসঙ্গ থেকে যায়**~5200 লাইন থেকে ~300 লাইন**. ১৭ দিয়ে ভাগ। এককটি ঐতিহাসিক ডেটা লাইন হারাবেন না.
== এটি কেন একটি সমগ্র ব্যাগ নয়?
এজেন্ট, তার প্রথম পুনরাবৃত্তিতে, ভয় করত যে`backup/`ব্ল্যাকবক্স হোক — একটি ফোল্ডার যেখানে কেউ ফাইল ফেলে যা কখনো পড়বে না। এটি একটি বৈধ ভয়। কিন্তু এটি একটি ভুলধারণা উপর ভিত্তি করা।
একটি জামাবরুশ হলো কখনো ফাইল ফেলে দেওয়া**কোন গঠন নেই, কোন প্রথা নেই, কোন গোষ্ঠীকরণ যুক্তি নেই**. এইভাবে, ব্যাকআপটি সময়ের মোতাবেক (Y2026-001-039) গঠিত, এবং প্রতিটি ব্যাকআপ ফোল্ডার ধারণ করে**একই গঠন**যে ফাইল`.agents/`actif : INDEX, SESSIONS_HISTORY, COMPLETED_TASKS_ARCHIVE, sessions/.
এটি একটি জামা-জুড়ে নয়। এটা একটি**টাইমস্ট্যাম্প করা স্ন্যাপশট**.একটু আরও বলা যায় যে এটি একটি সরলীকৃত সংস্করণকরণ পদ্ধতি — একটি ব্যতিক্রম যে, এটি ফাইলগুলোকে স্বয়ংক্রিয়ভাবে সংস্করণ করে না, বরং শাসনের পুরো প্যাকেজকে একটি নির্দিষ্ট সময় T-এ সংস্করণ করে।
আপনি পুরনো একটি তথ্য খুঁজে বের করতে চান যখন, আপনাকে একটি কেন্দ্রীয় সূচীর দরকার নেই। আপনার দুটি বিকল্প আছে:
1. **grep` লক্ষ্যিত**:`grep -r "zsh" backup/Y2026-001-039/`— এবং আপনি সেই সময়ের zsh-er যেকোনো উল্লেখ খুঁজে পাবেন, যে কোনো কোণ থেকে না হোক (INDEX, SESSIONS_HISTORY, সেশন আর্কাইভ)।
2. **ম্যানুয়াল পুন:সংযোজন**: আপনি অস্থায়ীভাবে ব্যাকআপ ফোল্ডারটি সক্রিয় संदर्भে কপি করেন, এবং আপনি এজেন্টকে এই নির্দিষ্ট সময়কে বিশ্লেষণ করতে বলেন।
সূচি নিহিত। এটি ফাইলগুলো নিজের গঠনের মধ্যেই — প্রতিটি ইতিমধ্যে নিজেদের দৃষ্টিভঙ্গি থেকে একটি সূচি।
== শেলফের উপমা
যান্ত্রিকটি সহজবোঝ্য করতে, আমি এটি তিনটি শেলফ হিসাবে ধারণা
* **শেলফ ১ (EAGER)**— কাজের পরিকল্পনা. যা আমি দরকার *এখন*. হালনাগাদ INDEX, PROMPT_REPRISE, অব্যাহতি নিয়ম. হালকা, তৎক্ষণিক, গুরুত্বপূর্ণ.
* **শেলফ ২ (LAZY)**— পরামর্শ গ্রন্থাগার. আমি অনুরোধে খোঁজে পেতে পারি। প্রযুক্তিগত রেফারেন্স, সাম্প্রতিক ইতিহাস, প্রক্রিয়া। ব্যাপক, কিন্তু মেমোরি তে লোড করা হয়নি।
* **গুহা (backup/)**— ঠান্ডা আর্কাইভ। সেই সব যা অতীতে গিয়েছে, কিন্তু আমি ফেলে দিতে চাই না। এজেন্ট সেখানে কখনো প্রবেশ করে না। মানुष সেখানে নেমে যায় যখন তিনি দ্রবণ করতে চান।
প্রথমে এজেন্টটি একটি চতুর্থ শেলফ — একটি`index-backup.adoc`যেটি LAZY হত এবং সম্পূর্ণ ব্যাকআপের একটি বিষয়সূচি ধারণ করত। আমি প্রত্যাখ্যান করলাম। এটি একটি বর্ধিত পুনরাবৃত্তি হবে এমন একটি সিস্টেমে যা ইতিমধ্যে রেখাযবদ্ধ বৃদ্ধির কারণে কষ্টে আছে। আর্কাইভ করা ফাইলদের কাঠামো ইতিমধ্যে একটি সূচী।
== দুই ট্রিগার সেন্সর
অব ধারণা গঠন দৃঢ় ছিল, কিন্তু একটি অদৃশ্য বিন্দু বাকি ছিল :**সঠিকভাবে ঘূর্ণন কখন শুরু করা উচিত?**প্রারంభ নিবন্ধটি এটি একটি খোলা প্রশ্ন হিসেবে চিহ্নিত ছিল। দুইদিন পরে, উত্তরটি ছয় প্রকল্পের শাসন ফাইলগুলোতে কোড করা হয়েছে: দুটো ট্রিগার সহ সেন্সর।
=== অটোমেটিক ট্রিগার — `N % 10 == 0
প্রথম ট্রিগার গাণিতিক। যখন সেশনের সংখ্যা ১০ এর গুণিতক হয় — সেশন ১০, ২০, ৩০, ৪০ — ব্যাকাপ রোটেশন স্বয়ংক্রিয়ভাবে সেশনের শেষ প্রক্রিয়ার অংশে, ধাপ ৬-এর পরে চলা চালিয়ে যায়।
10 কেন? এটা দুটি বিপরীত বলের মধ্যে একটি সমন্বয়: খুব ছোট উইন্ডো (5 সেশন) ধারাবাহিকতার জন্য প্রয়োজনীয় contexte হারায়; খুব দীর্ও উইন্ডো (20 সেশন) contexto‑এর অতিরিক্ত বড় সমস্যা সমাধান করে না। দশ সেশন, প্রতি দিন এক‑দুই সেশনের গতিতে, প্রায় একটি সপ্তাহের কাজ কভার করে — যথেষ্ট, যাতে এজেন্ট সাম্প্রতিক সিদ্ধান্তগুলো মনে রাখতে পারে, কিন্তু যত নয় যে contexte বিস্ফোরিত হয়।
=== সীমা-ভিত্তিক ট্রিগার — ৫০০ লাইন EAGER
দ্বিতীয় ট্রিগার ডাইনামিক। সেশনের নম্বর নির্বিশেষে, যদি সংচিত EAGER ফাইলগুলি অতিক্রম করে**500 লাইন**, ঘূর্ণন শুরু হয়।
এই সীমা সেশনের অত্যুক্ত উত্পাদনশীল পরিস্থিতি থেকে রক্ষা করে — খুব কম সেশনে প্রচুর সামগ্রী লেখা। একটি সেশন যা ১২০ লাইন সম্পাদকীয় সামগ্রী তৈরি করে, `COMPLETED_TASKS_ARCHIVE`-কে অনেক দ্রুত বাড়ায় — দুটি লাইন সংশোধনের ডিবাগ সেশনের চেয়ে। 500 লাইনের সীমা, যা মাধ্যমে মাপা হয়`wc -l .agents/INDEX.adoc .agents/archives/COMPLETED_TASKS_ARCHIVE_*.adoc PROMPT_REPRISE.adoc`, এই অসমমিতি গ্রহণ করে।
=== মানুয়াল ট্রিগার — "রোটেশন ব্যাকআপ
অবশেষে, মানুষ নিয়ন্ত্রণ বজায় রাখে। কীওয়ার্ডগুলো`rotation backup`, `backup rotation` ou `lance la rotation backup`অনুরোধে প্রক্রিয়া চালু করে, সেশনের শেষের বিনায়। যখন মনে হয় যে প্রেক্ষপট ভারী হচ্ছে কিন্তু এখনও ১০ের গুণোফল নয়, বা যখন একটি কাজের পর্যায় সংরক্ষণ করতে চান একটি নতুনটি শুরু করার পূর্বে।
[plantuml, format=svg, id=diag-capteur-trigger, alt="Les trois déclencheurs du capteur de rotation backup — automatique, seuil, manuel"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 200
title রোটেশন ব্যাকআপ সেন্সর — তিনটি ট্রিগার
start
:Procédure de fin de session;
note right: Mots-clés "সেশন শেষ"\nou "এখ থামাই"
:Étapes 1 à 6\n(archivage standard);
note right
1. Archive sessions/N.adoc
2. MAJ PROMPT_REPRISE
3. MAJ SESSIONS_HISTORY
4. MAJ INDEX.adoc
5. MAJ TEST_COVERAGE
6. MAJ COMPLETED_TASKS
end note
if (N % 10 == 0\nOU\nEAGER cumulé > 500 lignes ?) then (oui)
:⚙️ Rotation Backup\n(étape 7);
note right
1. Créer backup/Y20XX-sessions-X-Y/
2. Copier intégrale INDEX + HISTORY
+ COMPLETED_TASKS + sessions/
3. Tronquer actifs à 10 sessions
4. Ajouter _Localisation active_
end note
else (non)
:Pas de rotation;
endif
:Checklist [✅] x 7\n(si applicable);
stop
@enduml
----
এই ডায়াগ্রামটি সেশান শেষ করার প্রক্রিয়ার মধ্যে সেন্সরের সঠিক স্থাপন দেখায়। স্টেপ 7 ঐচ্ছিক — এটি শুধু তখনই চালু হয় যখন দুটি শর্তের যেকোনটি সত্য হয় — তবে এটি নিয়মিত *যাচাইকৃত* করা হয়। শেষ চেকলিস্টে অন্তর্ভুক্ত`[✅] 7. Backup roté (si applicable)`.
=== বন্ধ লুপ
এই সেন্সরটি পূর্ববর্তী অনুচ্ছেদ দ্বারা খোলা লুপটি বন্ধ করে।
Eager/Lazy গভর্নেন্স দুটি সেশনের মধ্যে এজেন্ট মেমোরির সমস্যা সমাধान ছিল।
Hot/Warm/Cold মেকানিজম মেমোরি বাড়ার সমস্যা সমাধান করেছে।
দুটি ট্রিগার সহ সেন্সর *quand* সমস্যা সমাধান করে — মানবের থেকে প্রসঙ্গ আকার নিরীক্ষণের মানসিক ভার বাদ দিয়ে।
[plantuml, format=svg, id=diag-boucle-fermee, alt="Les trois couches de la gouvernance agent — Eager/Lazy, Hot/Warm/Cold, Capteur"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
title এজেন্ট গভর্নেন্সের তিন স্তর
left to right direction
package "स्तर 1 — स्मृति\n(अनुच्छेद 0108)" as C1 #E8F5E9 {
rectangle "**EAGER**\nড্যাশবোর্ড\nঅটো চার্জড" as EAG
rectangle "**LAZY**\nমালিকের ম্যানুয়াল\nঅনুরোধে চার্জ" as LAZ
EAG -[hidden]right-> LAZ
}
package "তলা ২ — বয়স বাড়িয়ে যাওয়া\n(অনুচ্ছেদ ০১১০)" as C2 #FFF9C4 {
rectangle "**HOT**\n10 সক্রিয় সেশন\n~300 লাইন" as HOT
rectangle "**WARM**\nউল্লেখ\nপ্রক্রিয়া" as WRM
rectangle "**COLD**\nbackup/\nশীতল তরঙ্গ" as CLD
HOT -[hidden]right-> WRM
WRM -[hidden]right-> CLD
}
package "স্তর 3 — 트리거\n(আজ)" as C3 #BBDEFB {
rectangle "**অটো**\nN % 10 == 0" as AUTO
rectangle "**সীমা**\n> 500 লাইন" as SEUIL
rectangle "ম্যানুয়াল\nরোটেশন ব্যাকআপ" as MAN
AUTO -[hidden]right-> SEUIL
SEUIL -[hidden]right-> MAN
}
C1 --> C2 : "স্মৃতি বাড়ছে\n→ একটি মেকানিজম প্রয়োজন\nবোঢ়াইয়ের জন্য"
C2 --> C3 : "বয়স্কতা\n→ একটি ট্রিগার দরকার\nএটি চালু করার জন্য"
note bottom of C3
✅ Déployé sur 6 projets
magic-stick · bakery-gradle
plantuml-gradle · cheroliv.com
jhipster-gradle-plugins
quizz-benchmark-gradle
end note
@enduml
----
তিনটি লেয়ার logiqueভাবে স্ট্যাক করা হয়। প্রথমটি এজেন্টকে একটি মেমরি দেয়। দ্বিতীয়টি এই মেমরিকে এজেন্টকে দমিত না হওয়া দেয়। তৃতীয়টি এই মেমরির রক্ষণাবেক্ষণকে অটোমেট করে, যাতে মানবকে এতে চিন্তা করতে হয় না।
=== প্রভাবশালী মাইগ্রেশন cheroliv.com-এ
প্রয়োগটি শুধু সিদ্ধান্তাত্মক নয়। উপর`cheroliv.com`, প্রথম বেকআপ রোটেশন ২৯ এপ্রিল ২০২৬-এ চালানো`.agents/backup/Y2026-sessions-neg6-a-002/`:
|===
|ফাইল |ঘূর্ণনের আগে |ঘোরানোর পর |লাভ |`.agents/INDEX.adoc` |19 সেশন তালিকাভুক্ত |১০ সেশন (৩-১২) |-9 entrées |`.agents/SESSIONS_HISTORY.adoc` |18 সেশন |১০ সেশন |-8 প্রবেশ |`COMPLETED_TASKS_ARCHIVE` |161 লাইন (সেশন ১-১২) |135 লাইন (সেশন ৩-১২) |-26 লাইন |`sessions/` |20 ফাইল |১০ ফাইল |-10 ফাইল |**ব্যাকআপ/** |অমৌजूद |১ শীত ঢেউ (১০ সংরক্ষিত সেশন) |+1 শীতল প্যাকেট
|===
লাইনের গাইন হালকা ছিল — প্রকল্পটি যুবক, ১২ সেশন — কিন্তু গুরুত্বপূর্ণ তা যে le**প্রণালী স্থাপন করা হয়েছে**. আগামী স্বয়ংক্রিয় ঘূর্ণন সেশন ২০-এ চালু হবে, অথবা ৫০০ ইগার লাইন পূর্ণ হলে আরও দ্রুত হবে।
== মানুস-এজেন্ট পाठ
এই সেশন ০৪৮ আমাকে একটি AI এজেন্টের সাথে সহযোগীত্ব নিয়ে একটি মৌলিক বিষয় শেখিয়েছে।
এজেন্টটির একটি проাকৃতিক পক্ষপात আছে : সে চেষ্ট_done?**অপ্টিমাইজ করা**, à **সরল করা**, à **অনাবশ্যক পুনরাবৃত্তি অপসারণ করুন**. এটি একটি প্রশিক্ষিত সিস্টেমের পক্ষপাত যা স্বচ্ছ এবং সংক্ষিপ্ত উত্তর তৈরি করতে প্রশিক্ষিত। একটি ধনকর এবং বহুমাত্রিক ডেটাসেটের সম্মুখে, এর প্রথম প্রতিক্রিয়া হল তাকে তার সবসাধারন রূপে সংকুচিত করা।
মানুষ, তার, একটি ভিন্ন অনুভূতি আছে: ও মনে করে যে গঠিত অতিরিক্ততা একটি**সুবিধা**," কোনো ত্রুটি নয়। একই বাস্তবতায় কোণের বৈচিত্র্যি হলো সঠিকভাবে যে পরে গুণমানযুক্ত আপসারণের সুযোগ তৈরি করবে।
একজনের এজেন্টটি ভুল না। বরং, তার "অপ্টিমাম" আমার মতো নয়। এজেন্টটি অপ্টিমাইজ করে ___ .**বর্তমান**— অবিলম্বী পরিস্থিতি, প্রশ্নের দ্রুত জবাব. মানব অপ্টিমাইজ করে**ভবিষ্যৎ**— পুনরুদ্ধার, মিশ্রণ, দ্রবীভূত করার ক্ষমতা তিন মাস বা তিন বছর মধ্যে।
____ যা আমি চাই, সেটি হল কাঁচা দ্রব্য। তোমার চিন্তাবলি, তোমার অনিশ্চয়তা, তোমার আমার প্রশ্নগুলোর উত্তর। তোমার সংশ্লেষণ নয়। সংশ্লেষণ, আমি তা তোমার চেয়ে ভালভাবে করতে পারি। আমি মৌলিক দ্রব্য চাই। ____
এই বাক্য — যা আমি সেশনের শেষে তাকে বলেছিলাম — সকলের সারাংশ। এজেন্টটি উত্পাদের একটি সরঞ্জাম।มนुष্যটি শোধনের একটি সরঞ্জাম। শাসন ব্যবস্থা এজেন্টটিকে সবকিছু নিজে বুঝতে দেওয়ার জন্য নয় — তা তৈরি করা হয়েছে যাতে মানুষ পরবর্তীতে উৎপাদিত উপাদানে কাজ করতে পারে।
একই শীতল তরঙ্গ এই দর্শনের বাস্তুশিল্পীয় অনুবাদ: আমরা কিছুও ফেলি না, কিছুও মিশ্রণ করি না, কিছুও পুনরায় ইন্ডেক্স করি না। আমরা অক্ষত প্যাকেটকে স্থানান্তর করি। ডিসটিলেশন পরে হাতে, মানুষ দ্বারা হবে।
== পূর্ব নিবন্ধের যুক্তিগত অনুসরণ
আপনি যদি পড়েছেনlink:/blog/2026/0108_gouvernance_agent_opencode_eager_lazy_post.html[Eager/Lazy কৌশলের উপর লেখ], আপনি স্বাভাবিক ক্রমবর্ধমান গতিশীলতা চেনাবুকে পাবেন :
1. **অনুচ্ছেদ ০১০৮**— Eager/Lazy শাসন : *কীভাবে* এজেন্টের কনটেক্সটকে দুটি উপলব্ধি স্তরে কীভাবে গঠন করা যায়
2. **এই অনুচ্ছেদ 0110**— ব্যাকআপের মেকানিজম: *comment* এই প্রেক্ষাপটকে বয়স্ক করার উপায়, এটি অতিরিক্ত বড় হয়ে গেলে কখনও হারিয়ে না ফেলে
প্রথম আর্টিকেলটি প্রশ্নের উত্তর দিয়েছিল: « এজেন্ট দুটি সেশনের মধ্যে কিছুই মনে রাখে না, আমরা কীভাবে তারে একটি মেমরি দিতে পারি?
এটি প্রথম থেকে অবশ্য উঠে আসা প্রশ্নের উত্তর দেয়: « মেমরি প্রতিটি সেশনে বাড়ে, কীভাবে এজেন্টকে বাঁধা ছাড়া এটিকে বাঁধা থেকে রক্ষা করা যায় ?
উত্তরটি একটি প্যাটার্নে আছে:**গরম/উষ্ণ/ঠান্ডা**, শাসন ফাইলে প্রয়োগ করা। এবং একটি নীতিরূপে :**কখনো কিছুই হারাবেন না, সবসময় সব জায়গায় পুনঃস্থাপন করুন**.
== লিংক
* পূর্ববর্তী অনুচ্ছেদ :link:/blog/2026/0108_gouvernance_agent_opencode_eager_lazy_post.html[কৃত্রিম বুদ্ধিমত্তা এজেন্টকে AsciiDoc ব্যবহার করে পরিচালনা করা]
* আমার ওয়েবসাইট : https://cheroliv.com
* প্রজেক্টটি`magic-stick`: https://github.com/cheroliv/magic-stick
---
*একটি ভালশাসন পদ্ধতি কোনো ডেটা কখনো মুছে ফেলে না। এটি ডেটাগুলো সংরক্ষণ করে।*
----
----
মেকানিজমের চাবিকাঠি:**ব্যাকআপ কোনো কেন্দ্রীয় ইনডেক্স নয়, এটি গত করা ঢেউয়ের একটি হুবহু প্রতিলিপি**। যখন ১০টি সক্রিয় সেশনের দিগন্ত অতিক্রম করা হয়, তখন কিছুই মুছে ফেলা হয় না। কিছুই পুনরায় ইনডেক্স করা হয় না। কিছুই মার্জ করা হয় না। আমরা এজেন্ট ফাইলের প্যাকেটটি ঠিক তেমনভাবে নিই যেমনটি এটি সেশন N-10-এ ছিল, এবং এটিকে সরিয়ে নেওয়া হয়-`backup/`অনুগ্রহ করে আপনার অনুবাদ করার জন্য টেক্সটটি প্রদান করুন।
সক্রিয় ফাইলগুলো তবে সংক্ষেপিত করা হয়েছে:
* ইনডেক্স: শুধুমাত্র শেষ ১০টি লাইন (স্লাইডিং উইন্ডো)
* SESSIONS_HISTORY : একই
* COMPLETED_TASKS_ARCHIVE : বর্তমান সময়ের জন্য নতুন ফাইল
* sessions/ : শুধুমাত্র শেষ ২ টি সেশন
[plantuml, format=svg, id=diag-hot-warm-cold, alt="Architecture Hot/Warm/Cold du contexte agent — EAGER/LAZY/backup"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 200
title এজেন্ট কনটেক্সটের Hot / Warm / Cold আর্কিটেকচার
package "HOT (EAGER)\nস্বয়ংক্রিয়ভাবে লোড হয়\n~৩০০ লাইন" as HOT #FFCDD2 {
file "INDEX.adoc\n(১০টি সেশন)" as IDX_HOT
file "PROMPT_REPRISE\n(সেশন N+1)" as PRO_HOT
file "AGENT.adoc\n(চূড়ান্ত নিয়মাবলী)" as AG_HOT
}
package "WARM (LAZY)\nঅনুরোধ অনুযায়ী লোড হয়\n~৫০০ লাইন" as WARM #FFF9C4 {
file "SESSIONS_HISTORY\n(শেষ ১০টি)" as HIS_WARM
file "SCRIPT_VERIFICATION\n(সর্বশেষ)" as VER_WARM
file "PROCEDURES.adoc\n(টেমপ্লেট)" as PRO_WARM
file "*_REFERENCE.adoc\n(প্রযুক্তিগত ডকুমেন্ট)" as REF_WARM
}
package "COLD (backup/)\nকখনো লোড হয় না\nশুধুমাত্র মানুষের পড়ার জন্য" as COLD #BBDEFB {
folder "Y2026-001-039/" as WAVE {
file "INDEX (সম্পূর্ণ)" as IDX_COLD
file "SESSIONS_HISTORY\n(সম্পূর্ণ)" as HIS_COLD
file "COMPLETED_TASKS\n(সম্পূর্ণ)" as ARCH_COLD
folder "sessions/ (001-039)" as SESS_COLD
}
folder "Y2026-040-???\n(ভবিষ্যৎ)" as FUTURE
}
HOT --> WARM : "প্রয়োজন হলে\nএজেন্ট পুনরায় নিয়ে আসে"
WARM --> COLD : "কখনো স্বয়ংক্রিয় নয়\nমানুষ নিজে সেখানে যায়"
note bottom of COLD
নিয়ম: পূর্ণ প্রতিলিপি
কোনো রূপান্তর নয়
কোনো পুনঃইনডেক্সিং নয়
আর্কাইভ করার পর রিড-অনলি (Read-only)
end note
@enduml
----
তাত্ক্ষণিক লাভ ব্যাপক: EAGER কনটেক্সট পরিবর্তিত হয়ে হয়**~৫২০০ লাইন থেকে ~৩০০ লাইন**১৭ দিয়ে একটি বিভাজন। ঐতিহাসিক ডেটার একটি লাইনও না হারিয়ে।
== কেন এটি কোনো সবকিছু ধরে রাখা পাত্র (Fourre-Tout) নয়
এজেন্টটি, তার প্রথম ইটারেশনে, আশঙ্কা করেছিল যে`backup/`একটি ব্ল্যাক বক্সে পরিণত হয় — এমন একটি ফোল্ডার যেখানে ফাইলগুলো ফেলে রাখা হয় যা আর কখনোই পড়া হবে না। এটি একটি যুক্তিসঙ্গত ভয়। কিন্তু এটি একটি বিভ্রান্তির উপর ভিত্তি করে।
একটি `fourre-tout` হলো যখন আমরা ফাইলগুলো যত্রতত্র ফেলে রাখি**কাঠামোহীন, নিয়মহীন, কোনো গ্রুপিং লজিক ছাড়া**. এখানে, ব্যাকআপটি পিরিয়ড অনুযায়ী (Y2026-001-039) বিন্যস্ত, এবং প্রতিটি ব্যাকআপ ফোল্ডারে রয়েছে**একই গঠন বিন্যাস**যে ফাইলটি`.agents/`সক্রিয়: `INDEX`, `SESSIONS_HISTORY`, `COMPLETED_TASKS_ARCHIVE`, `sessions/`।
এটি কোনো সবকিছুর সংমিশ্রণ নয়। এটি একটি**টাইমস্ট্যাম্পড স্ন্যাপশট (snapshot horodaté)**এমনকি বলা যেতে পারে যে এটি একটি সরলীকৃত ভার্সনিং মেকানিজম — তবে পার্থক্যটি হলো এটি ব্যক্তিগতভাবে ফাইলগুলোর ভার্সনিং করে না, বরং একটি নির্দিষ্ট সময়ে (T) গভর্ন্যান্সের সম্পূর্ণ প্যাকেজটির ভার্সনিং করে।
যখন আপনি পুরনো কোনো তথ্য খুঁজে পেতে চান, তখন আপনার কোনো কেন্দ্রীয় ইনডেক্সের প্রয়োজন নেই। আপনার কাছে দুটি বিকল্প রয়েছে:
1. **টার্গেটেড `grep**অনুগ্রহ করে অনুবাদ করার জন্য পাঠ্য প্রদান করুন।`grep -r "zsh" backup/Y2026-001-039/`— এবং আপনি ওই সময়ের মধ্যে zsh সম্পর্কিত সবকিছু খুঁজে পাবেন, তা যে কোনো দিক থেকেই হোক (INDEX, SESSIONS_HISTORY, সেশন আর্কাইভ)।
2. **ম্যানুয়াল রিইনটিগ্রেশন**: আপনি সাময়িকভাবে ব্যাকআপ ফোল্ডারটি সক্রিয় কন্টেক্সটে কপি করেন এবং এজেন্টকে এই নির্দিষ্ট সময়কালটি বিশ্লেষণ করতে বলেন।
ইনডেক্সটি অন্তর্নিহিত। এটি ফাইলের কাঠামোর মধ্যেই রয়েছে — যার প্রতিটি ফাইল তার নিজস্ব দৃষ্টিকোণ থেকে ইতিমধ্যেই একটি ইনডেক্স।
== শেলফের রূপক (La Métaphore des Étagères)
মেকানিজমটিকে সহজবোধ্য করার জন্য, আমি এটিকে তিনটি শেলফ হিসেবে কল্পনা করেছি:
* **শেলফ ১ (EAGER)**— কাজের পরিকল্পনা। যা আমার *এখন* প্রয়োজন। সাম্প্রতিক INDEX, PROMPT_REPRISE, চূড়ান্ত নিয়মাবলী। হালকা, তাৎক্ষণিক, গুরুত্বপূর্ণ।
* **শেলফ ২ (LAZY)**— রেফারেন্স লাইব্রেরি। যা আমি অনুরোধের ভিত্তিতে খুঁজে আনতে পারি। টেকনিক্যাল রেফারেন্স, সাম্প্রতিক ইতিহাস, কার্যপ্রণালী। আকারে বড়, তবে মেমোরিতে লোড করা নেই।
* **Cave (backup/)**— কোল্ড আর্কাইভস (cold archives)। যা কিছু অতীত কিন্তু আমি ফেলে দিতে চাই না। এজেন্ট সেখানে কখনোই প্রবেশ করে না। মানুষ যখন পাতন করতে চায়, তখন সেখানে নেমে যায়।
এজেন্টটি প্রাথমিকভাবে একটি চতুর্থ তাক প্রস্তাব করেছিল — একটি`index-backup.adoc`যা হবে `LAZY` এবং যাতে সমস্ত ব্যাকআপের একটি সূচিপত্র থাকবে। আমি তা প্রত্যাখ্যান করেছি। এটি এমন একটি সিস্টেমে আরও একটি রিডানডেন্সি হবে যা ইতিমধ্যেই লিনিয়ার গ্রোথের সমস্যায় ভুগছে। আর্কাইভ করা ফাইলগুলোর গঠনটি নিজেই একটি ইনডেক্স।
== টু-ট্রিগার সেন্সর
ধারণায়নটি মজবুত ছিল, কিন্তু একটি অন্ধবিন্দু রয়ে গিয়েছিল:**ঠিক কখন রোটেশন শুরু করতে হবে?**প্রাথমিক নিবন্ধটিতে এটিকে একটি খোলা প্রশ্ন হিসেবে চিহ্নিত করা হয়েছিল। দুই দিন পরে, উত্তরটি ছয়টি প্রকল্পের গভর্ন্যান্স ফাইলে সংহিত করা হয়: একটি দুই-ট্রিগার সেন্সর।
=== স্বয়ংক্রিয় ট্রিগার — `N % 10 == 0
প্রথম ট্রিগারটি গাণিতিক। যখন সেশনের নম্বর ১০-এর গুণিতক হয় — সেশন ১০, ২০, ৩০, ৪০ — তখন সেশন সমাপ্তির প্রক্রিয়ার মধ্যে, ধাপ ৬-এর ঠিক পরেই ব্যাকআপ রোটেশন স্বয়ংক্রিয়ভাবে কার্যকর হয়।
কেন ১০? এটি দুটি বিপরীত শক্তির মধ্যে একটি আপস: খুব ছোট উইন্ডো (৫টি সেশন) ধারাবাহিকতার জন্য প্রয়োজনীয় প্রসঙ্গ বা কন্টেক্সট হারিয়ে ফেলে; খুব বড় উইন্ডো (২০টি সেশন) কন্টেক্সট অতিরিক্ত হয়ে যাওয়ার সমস্যাটি সমাধান করে না। প্রতিদিন এক থেকে দুটি সেশনের গতিতে দশটি সেশন প্রায় এক সপ্তাহের কাজ কভার করে — যা এজেন্টের জন্য সাম্প্রতিক সিদ্ধান্তগুলো মনে রাখার জন্য যথেষ্ট, কিন্তু কন্টেক্সট বিস্ফোরণ হওয়ার জন্য যথেষ্ট নয়।
=== থ্রেশহোল্ড ট্রিগার — ৫০০ লাইন EAGER
দ্বিতীয় ট্রিগারটি ডাইনামিক। সেশন নম্বর নির্বিশেষে, যদি মোট EAGER ফাইলগুলোর পরিমাণ অতিক্রম করে**৫০০ লাইন**, রোটেশন শুরু হয়।
এই সীমাটি সেই পরিস্থিতির বিরুদ্ধে সুরক্ষা প্রদান করে যেখানে সেশনগুলো ব্যতিক্রমীভাবে ফলপ্রসূ হয় — অল্প সেশনে প্রচুর কন্টেন্ট লেখা হয়। একটি সেশন যা ১২০ লাইনের সম্পাদকীয় কন্টেন্ট তৈরি করে, তা একটি ডিবাগ সেশনের তুলনায় `COMPLETED_TASKS_ARCHIVE`-কে অনেক দ্রুত বৃদ্ধি করে যা মাত্র দুই লাইন সংশোধন করে। ৫০০ লাইনের এই সীমাটি, যা পরিমাপ করা হয় এর মাধ্যমে`wc -l .agents/INDEX.adoc .agents/archives/COMPLETED_TASKS_ARCHIVE_*.adoc PROMPT_REPRISE.adoc`, এই অসমতাকে ধরে রাখে।
=== ম্যানুয়াল ট্রিগার — "rotation backup
পরিশেষে, মানুষের নিয়ন্ত্রণ থাকে। কি-ওয়ার্ডগুলো`rotation backup`, `backup rotation` ou `lance la rotation backup`অনুরোধের ভিত্তিতে প্রসিডিউরটি ট্রিগার করে, যা সেশনের সমাপ্তির ওপর নির্ভর করে না। এটি তখন কার্যকর যখন মনে হয় যে কনটেক্সট অনেক ভারী হয়ে যাচ্ছে কিন্তু এখনও ১০-এর গুণিতক পৌঁছায়নি, অথবা যখন নতুন কোনো কাজ শুরু করার আগে বর্তমান কাজের ধাপটি আর্কাইভ করতে চাওয়া হয়।
[plantuml, format=svg, id=diag-capteur-trigger, alt="Les trois déclencheurs du capteur de rotation backup — automatique, seuil, manuel"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 200
title ব্যাকআপ রোটেশন সেন্সর — তিনটি ট্রিগার
start
:Procédure de fin de session;
note right: Mots-clés "সেশন শেষ"\nou "আমরা এখানেই থামছি"
:Étapes 1 à 6\n(archivage standard);
note right
1. Archive sessions/N.adoc
2. PROMPT_REPRISE আপডেট
3. SESSIONS_HISTORY আপডেট
4. INDEX.adoc আপডেট
5. TEST_COVERAGE আপডেট
6. COMPLETED_TASKS আপডেট
end note
if (N % 10 == 0\nOU\nEAGER cumulé > 500 lignes ?) then (oui)
:⚙️ Rotation Backup\n(étape 7);
note right
১. `backup/Y20XX-sessions-X-Y/` তৈরি করুন
২. সম্পূর্ণ `INDEX` + `HISTORY`
+ `COMPLETED_TASKS` + `sessions/` কপি করুন
৩. সক্রিয় সেশনগুলো ১০টিতে সীমাবদ্ধ (Truncate) করুন
৪. _সক্রিয় অবস্থান (Localisation active)_ যোগ করুন
end note
else (non)
:Pas de rotation;
endif
:Checklist [✅] x 7\n(si applicable);
stop
@enduml
----
এই ডায়াগ্রামটি সেশন শেষ করার প্রক্রিয়ায় সেন্সরের সঠিক ইনসার্ট দেখায়। ধাপ ৭ ঐচ্ছিক — এটি কেবল তখনই কার্যকর হয় যখন দুটি শর্তের মধ্যে যেকোনো একটি সত্য হয় — তবে এটি ধারাবাহিকভাবে *যাচাই* করা হয়। চূড়ান্ত চেকলিস্টে অন্তর্ভুক্ত রয়েছে`[✅] 7. Backup roté (si applicable)`অনুগ্রহ করে আপনার টেক্সটটি প্রদান করুন যা আপনি অনুবাদ করতে চান।
=== ক্লোজড লুপ (La Boucle Fermée)
এই সেন্সরটি পূর্ববর্তী নিবন্ধের খোলা লুপটি বন্ধ করে। Eager/Lazy গভর্ন্যান্স দুটি সেশনের মধ্যবর্তী এজেন্ট মেমরি সমস্যাটি সমাধান করেছিল। Hot/Warm/Cold মেকানিজম মেমরি বৃদ্ধি পাওয়ার সমস্যাটি সমাধান করেছে। দুই-ট্রিগার সেন্সরটি *কখন* এর সমস্যাটি সমাধান করে — যা কনটেক্সট সাইজ মনিটর করার মানসিক চাপ থেকে মানুষকে মুক্তি দেয়।
[plantuml, format=svg, id=diag-boucle-fermee, alt="Les trois couches de la gouvernance agent — Eager/Lazy, Hot/Warm/Cold, Capteur"]
----
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
title এজেন্ট গভর্ন্যান্সের তিনটি স্তর
left to right direction
package "স্তর ১ — মেমোরি\n(আর্টিকেল 0108)" as C1 #E8F5E9 {
rectangle "**EAGER**\nড্যাশবোর্ড\nঅটো লোডেড" as EAG
rectangle "**LAZY**\nমালিকানা ম্যানুয়াল\nঅনুরোধ অনুযায়ী লোড করা হয়" as LAZ
EAG -[hidden]right-> LAZ
}
package "স্তর ২ — এজিং\n(আর্টিকেল 0110)" as C2 #FFF9C4 {
rectangle "**HOT**\n১০টি সক্রিয় সেশন\n~৩০০ লাইন" as HOT
rectangle "**WARM**\nরেফারেন্স\nপ্রসিডিউর" as WRM
rectangle "**COLD**\nbackup/\nকোল্ড ওয়েভ" as CLD
HOT -[hidden]right-> WRM
WRM -[hidden]right-> CLD
}
package "স্তর ৩ — ট্রিগার\n(আজ)" as C3 #BBDEFB {
rectangle "**Auto**\n`N % 10 == 0`" as AUTO
rectangle "**Seuil**\n> ৫০০ লাইন" as SEUIL
rectangle "**Manuel**\nব্যাকআপ রোটেশন" as MAN
AUTO -[hidden]right-> SEUIL
SEUIL -[hidden]right-> MAN
}
C1 --> C2 : "মেমোরি বৃদ্ধি পাচ্ছে\n→ একটি এজিং\nমেকানিজম প্রয়োজন"
C2 --> C3 : "এজিং\n→ এটি চালানোর জন্য\nএকটি ট্রিগার প্রয়োজন"
note bottom of C3
✅ ৬টি প্রজেক্টে ডেপ্লয় করা হয়েছে
`magic-stick` · `bakery-gradle`
`plantuml-gradle` · `cheroliv.com`
`jhipster-gradle-plugins`
`quizz-benchmark-gradle
end note
@enduml
----
তিনটি লেয়ার যৌক্তিকভাবে একের ওপর এক স্তরে সাজানো। প্রথমটি এজেন্টকে একটি মেমরি প্রদান করে। দ্বিতীয়টি এই মেমরিকে এজেন্টকে অভিভূত করা থেকে বিরত রাখে। তৃতীয়টি এই মেমরির রক্ষণাবেক্ষণকে স্বয়ংক্রিয় করে যাতে মানুষকে এটি নিয়ে ভাবতে না হয়।
=== cheroliv.com-এ কার্যকর মাইগ্রেশন
এই প্রক্রিয়াটি কেবল তাত্ত্বিক হিসেবে সীমাবদ্ধ থাকেনি।`cheroliv.com`, প্রথম ব্যাকআপ রোটেশনটি ২৯ এপ্রিল ২০২৬ তারিখে চালানো হয়েছিল — সেশন -6 থেকে 2 পর্যন্ত মাইগ্রেট করা হয়েছে`.agents/backup/Y2026-sessions-neg6-a-002/`অনুগ্রহ করে আপনার ইনপুট প্রদান করুন।
|===
|ফাইল |ঘূর্ণনের আগে |ঘূর্ণনের পরে |লাভ |`.agents/INDEX.adoc` |১৯টি সেশনের তালিকাভুক্ত |১০টি সেশন (৩-১২) |-৯টি এন্ট্রি |`.agents/SESSIONS_HISTORY.adoc` |১৮টি সেশন |১০টি সেশন |-৮টি এন্ট্রি |`COMPLETED_TASKS_ARCHIVE` |১৬১টি লাইন (সেশন ১-১২) |১৩৫ লাইন (সেশন ৩-১২) |-২৬ লাইন |`sessions/` |২০টি ফাইল |১০টি ফাইল |-১০টি ফাইল |**ব্যাকআপ/** |অস্তিত্বহীন |১টি কোল্ড ওয়েভ (১০টি সেশন আর্কাইভ করা হয়েছে) |+১টি কোল্ড প্যাক
|===
লাইনের লাভ ছিল সামান্য — প্রকল্পটি নতুন, ১২টি সেশন — তবে গুরুত্বপূর্ণ বিষয় হলো যে the**কৌশলটি কার্যকর আছে**পরবর্তী স্বয়ংক্রিয় রোটেশন সেশন ২০-এ শুরু হবে, অথবা ৫০০টি EAGER লাইন পূর্ণ হলে তার আগেই শুরু হবে।
== মানুষ-এজেন্ট পাঠ (La Leçon Humain-Agent)
এই সেশন 048 আমাকে একজন এআই এজেন্টের সাথে সহযোগিতার বিষয়ে মৌলিক কিছু শিখিয়েছে।
এজেন্টটির একটি স্বাভাবিক পক্ষপাত রয়েছে: এটি খোঁজে যে**অপ্টিমাইজ করা**, à **সরল করা**, à **পুনরাবৃত্তি দূর করা**. এটি একটি সিস্টেমের পক্ষপাত যা পরিচ্ছন্ন এবং সংক্ষিপ্ত উত্তর তৈরি করার জন্য প্রশিক্ষিত। একটি সমৃদ্ধ এবং বহুমাত্রিক ডেটাসেটের সামনে, এর প্রথম প্রবণতা হলো এটিকে তার সবচেয়ে সরল প্রকাশে সংকুচিত করা।
মানুষের ক্ষেত্রে ভিন্ন এক অন্তর্দৃষ্টি রয়েছে: সে অনুভব করে যে কাঠামোগত পুনরাবৃত্তি হলো একটি**সুবিধা**, কোনো ত্রুটি নয়। বরং একই বাস্তবতার বিভিন্ন দৃষ্টিভঙ্গির বৈচিত্র্যই হলো সেটি, যা পরবর্তীতে একটি গুণগত পাতন (distillation) সম্ভব করবে।
এমন নয় যে এজেন্ট ভুল করছে। আসলে তার "optimum" আমারটি নয়। এজেন্ট অপ্টিমাইজ করছে এই—**বর্তমান**— তাৎক্ষণিক প্রেক্ষাপট, জিজ্ঞাসিত প্রশ্নের দ্রুত উত্তর। মানুষ অপ্টিমাইজ করে তার জন্য**ভবিষ্যৎ**— তিন মাস বা তিন বছর পর খুঁজে পাওয়া, মিলিয়ে দেখা এবং নিসৃত করার ক্ষমতা।
অনুগ্রহ করে আপনার অনুবাদযোগ্য টেক্সটটি প্রদান করুন। আমি যা চাই তা হলো কাঁচা উপাদান। তোমার চিন্তা, তোমার দ্বিধা, আমার প্রশ্নের তোমার উত্তরগুলো। তোমার সংশ্লেষণ নয়। সংশ্লেষণ আমি তোমার চেয়ে ভালো করতে পারি। আমি চাই কাঁচামাল। অনুগ্রহ করে আপনার ইনপুট টেক্সটটি প্রদান করুন।
সেশনের শেষে আমি তাকে যে কথাটি বলেছিলাম তা সবকিছুর সারসংক্ষেপ। এজেন্ট হলো একটি প্রোডাকশন টুল। মানুষ হলো ডিস্টিলেশনের টুল। গভর্ন্যান্স এই জন্য নয় যে এজেন্ট একা একাই সবকিছু বুঝে যাবে — এটি এই জন্য যাতে মানুষ পরবর্তীতে উৎপাদিত উপাদানটি নিয়ে কাজ করতে পারে।
একই রকম শীতল ঢেউটি হলো এই দর্শনের স্থাপত্যিক অনুবাদ: কিছু ফেলে দেওয়া হবে না, কিছু একত্রিত করা হবে না, কোনো কিছুর রি-ইনডেক্সিং করা হবে না। প্যাকেটটি অক্ষত অবস্থায় স্থানান্তরিত করা হয়। পাতন প্রক্রিয়াটি পরে আসবে, হাতে কলমে, মানুষের দ্বারা।
== পূর্ববর্তী নিবন্ধটির যৌক্তিক ধারাবাহিকতা
যদি আপনি পড়ে থাকেনlink:/blog/2026/0108_gouvernance_agent_opencode_eager_lazy_post.html[Eager/Lazy কৌশল সংক্রান্ত নিবন্ধটি], আপনি স্বাভাবিক অগ্রগতিটি চিনতে পারবেন:
1. **অনুচ্ছেদ 0108**— Eager/Lazy গভর্ন্যান্স: এজেন্ট কনটেক্সটকে উপলব্ধতার দুটি স্তরে *কিভাবে* গঠন করা যায়
2. **এই নিবন্ধ 0110**— ব্যাকআপ মেকানিজম: এই কনটেক্সটটি যখন খুব বেশি বড় হয়ে যায়, তখন এটি হারিয়ে না ফেলে *কীভাবে* একে পুরনো করা যায়
প্রথম নিবন্ধটি এই প্রশ্নের উত্তর দিয়েছিল: «দুটি সেশনের মাঝে এজেন্ট কিছুই মনে রাখতে পারে না, তাকে কীভাবে স্মৃতি প্রদান করা যায়?
এটি সেই প্রশ্নটির উত্তর দেয় যা প্রথমটির পর অনিবার্যভাবে আসে: «মেমরি প্রতি সেশনে বৃদ্ধি পায়, মেমরি মুছে না ফেলে কীভাবে একে এজেন্টকে শ্বাসরুদ্ধ করা থেকে আটকানো যায়?
উত্তরটি একটি প্যাটার্নের মধ্যে সীমাবদ্ধ:**গরম/কুসুম গরম/ঠাণ্ডা**, গভর্ন্যান্স ফাইলগুলোর ক্ষেত্রে প্রযোজ্য। এবং একটি নীতি হিসেবে:**কখনো কিছুই হারাবেন না, সর্বদা সবকিছু পুনরায় খুঁজে নিন**Please provide the text you would like me to translate.
== লিঙ্কসমূহ
* পূর্ববর্তী নিবন্ধ:link:/blog/2026/0108_gouvernance_agent_opencode_eager_lazy_post.html[AsciiDoc-এর মাধ্যমে একটি AI Agent পরিচালনা করা]
* আমার সাইট: https://cheroliv.com
* প্রকল্পটি`magic-stick`: https://github.com/cheroliv/magic-stick
---
একটি ভালো শাসন ব্যবস্থা কখনোই ডেটা মুছে ফেলে না। এটি সেগুলোকে গুছিয়ে রাখে।