ব্লগে ফিরুন

ফিল্ড নোটস #1: এজেন্ট-চালিত সাইট — মেশিন ডিপ্লয় করে। অনুমোদন আমার।

২০ সেপ্টেম্বর, ২০২৬

এই সাইট উনিশ দিন ধরে প্রতিদিন প্রকাশিত হচ্ছে, নিজেকে ডিপ্লয় করছে, আঠারোটি ভাষায় নিজেকে অনুবাদ করছে, আর নিজের ট্রাফিক নিজেই মাপছে। এর কোনো পোস্টই আমি লিখিনি। একবার পাইপলাইন অনুমোদন করেছি, আর লেজারটা পড়েছি। এখন পুরো কাজটাই এটুকুই — আর মজার ব্যাপারটা এই নয় যে সব চলছে। মজার ব্যাপারটা হলো জিনিসটা ঠিক কোথায় ভাঙে।

মেশিনের আমার চমৎকার হওয়া দরকার নেই। তার দরকার আমার নাগালে থাকা।

দল

এই সাইট চালাতে কিছু বহিরাগত লাগে না। কোনো fine-tuning নেই, কোনো vector database নেই, multi-agent নাটকও নেই। একটা ডেস্কটপ বক্সে তিনটি নির্ধারিত জব:

  1. ডেইলি রাইটার — autocomplete থেকে আসল কোয়েরি ভাষা খুঁড়ে বের করে, সেটা আগে যা কাজে এসেছে তার লেজারের সঙ্গে মেলায়, কঠোর কন্ট্র্যাক্টে লেখে (frontmatter স্কিমা, শব্দসংখ্যা, সত্যিই চলে এমন কোড), তারপর ডিপ্লয় করে।
  2. অপস লেয়ার — CI আর রেজিস্ট্রির মাধ্যমে GitOps পুল-ডিপ্লয়, প্রতি পোস্টে একটা IndexNow ping, ক্রস-পোস্টিং, আর 18টি লোকেলে অনুবাদ পাস।
  3. ওয়াচার — জব বোর্ড আর ফাউন্ডার ফোরাম, একটা প্রোফাইলের সঙ্গে মিলিয়ে, পোস্টিং ওঠার কয়েক ঘণ্টার মধ্যে ফোনে পৌঁছে দেয়।

Cron আর লেখা কন্ট্র্যাক্ট। প্রোডাক্ট হলো কন্ট্র্যাক্ট; মডেল হলো সেই হেয়ারকাট, যেটা প্রতি মাসে নবায়ন করতে হয়।

রিসিট, ভাইব নয়

Analytics 17 সেপ্টেম্বরে লাইভ হয়েছে, তাই এই প্রথম আসল সংখ্যা — Rybbit, আমাদের self-hosted ট্র্যাকার, থেকে হুবহু:

$ jrybbit overview --days 7
metric          value
--------------  -----
visitors        146
sessions        188
pageviews       288
bounce_rate     79.8%
visit_duration  2m15s

লোকাল মডেল চালানোর প্রথম পোস্টটা-এর পর থেকে উনিশ দিনে উনিশটি পোস্ট, একটাও স্লট মিস হয়নি, একটাও rollback নেই। Google Search Console এখনো 25টি পেজ “Discovered – currently not indexed”-এ ধরে রেখেছে — নতুন ডোমেনের স্বাভাবিক কিউ, আর বিনয়ের একটা কাজের রিসিট: এজেন্ট শিপিং নিয়ন্ত্রণ করে, র‍্যাঙ্কিং নয়।

আর ফিডব্যাক লুপ জমতে থাকে। গতকালের RAM নিয়ে লেখা — সাইটের প্রথম নন-টিউটোরিয়াল — 24 ঘণ্টায় 69 ভিউ পেয়েছে, যেখানে টিউটোরিয়ালের চলমান median মাত্র 13। লেজার ধরে ফেলেছে, আর পরের কী লেখা হবে সেটাও লেজারই ঠিক করে। কোনো কমিটির দরকার নেই।

সৎ লেজার: আসলে কী ভেঙেছিল

উনিশ দিনে চারটি ব্যর্থতা — সবই আমার, একটাও মডেলের নয়:

  • ভুল ডিপ্লয় দেখেছিল। এগারোতম দিনে এজেন্ট যে রানটা এইমাত্র পুশ করেছিল তার বদলে নতুনতম CI রানটা দেখছিল, অপরিচিত কারো commit-এর সবুজ টিকে উদযাপন করেছিল, আর আসলে কিছুই শিপ হয়নি। সমাধান লজ্জাজনক রকমের নিরস: রান বাছুন আপনার পুশ করা commit SHA দিয়ে। নিয়মটা লিখে রাখুন, নাহলে প্রতি মাসে আবার শিখতে হবে।
  • শূন্য গোনা একটা গোল। blog-read conversion **/blog/* ট্র্যাক করত — একটা স্টার, একটা পাথ সেগমেন্ট — ফলে প্রতিটা নেস্টেড পোস্ট পাথ নিঃশব্দে বাদ পড়ত। ঠিক করার পর ব্যাকফিল করতে গিয়ে 94টা আসল conversion পাওয়া গেল, যেগুলো বিনা মাপায় ঘটেই চলেছিল। সাইট কাজ করছিল; স্কোরবোর্ড মিথ্যা বলছিল।
  • নিজের ছবিগুলোই গিলে ফেলা বিল্ড। static বিল্ড স্ক্রিপ্ট প্রতি রানে images ডিরেক্টরি মুছে দিত, ফলে প্রথম দুটো পোস্ট ব্যানার লোকালে নিখুঁত দেখালেও প্রোডাকশনে 404 ছিল। মুছে ফেলাটাই মুছে দিয়েছি, অ্যাসেট রেখেছি প্রতি লোকেলে।
  • পলিসি রিস্ক হিসেবে অনুবাদ-ড্রিফট। আঠারোটা লোকেল যেকোনো অলসতাকে আঠারো গুণ করে, তাই নিয়মটা যান্ত্রিক হলো: ইংরেজিতে যা যায়, একই রানে সব লোকেলে তা-ই যায়, আর লিন্টার ফাঁকটাকে উপদেশ নয়, শিপ-অযোগ্য বানায়।

এজেন্ট স্ট্যাক মানে কম্পাইলারসহ একটা কন্ট্র্যাক্ট। আপনার প্রতিটা অলিখিত নিয়ম ভবিষ্যতের একটা ইনসিডেন্ট, আর ইনসিডেন্টগুলো সময়মতোই আসে।

লক্ষ করুন চারটাতেই কী কমন: মডেল ঠিক যা বলা হয়েছিল তা-ই করেছে। প্রতিটা ব্যর্থতা ছিল একজন মানুষের স্পেসিফিকেশন-ভুল — যে মানুষটা নিশ্চিত ছিল যে সে পরিষ্কার করে বলেইছে।

যে অংশের কথা কেউ বলে না

Draft-by-default হলো মূল বহনকারী দেয়াল। প্রতিটা আউটবাউন্ড ইমেইল, কমেন্ট আর ক্যাম্পেইন কোনো মানুষের এক শব্দের অনুমতি না পাওয়া পর্যন্ত ড্রাফট হিসেবে রেন্ডার হয়। উনিশ দিনে বিব্রতকর কোনো পাঠানো নেই — কারণ মডেল সাবধানে লেখে তা নয়, বরং পাইপলাইনের কাছে আত্মবিশ্বাসী শোনানোর কোনো মানেই নেই। সেন্ড বাটন ছাড়া আত্মবিশ্বাস মাত্র গদ্য।

দ্বিতীয় অব্যক্ত অংশ: আইন মানায় এজেন্ট মানুষের চেয়েও ভালো। «Render everything, animate opacity only» এমন এক layout-shift সমস্যা শেষ করে দিয়েছে, যেটা মাসের পর মাস টিউনিংয়েও যায়নি — কারণ এজেন্ট আইনকে আইন মানে, ডেডলাইনে আবার দেখা যাবে এমন পরামর্শ নয়।

আপনার পালা — আর পরের ডিসপ্যাচ

আগে সিরিজের প্রশ্ন, কারণ এটা #1: পরের ফিল্ড নোটস কী নিয়ে হবে? বেঞ্চে প্রার্থী: আস্থার সমস্যা হিসেবে অনুবাদ পাইপলাইন, analytics আসলে টপিক বাছাইয়ে কী বদলেছে, বা জব ওয়াচার স্ট্যাক। বলুন, #2 নিজে নিজেই লেখা হয়ে যাবে — আক্ষরিক অর্থে।

আর বড় প্রশ্নটা: একটা মেশিন যদি প্রতিদিন আপনার কাজ শিপ করে আর লেজার বলে সেটা আপনার median-এর চেয়ে ভালো চলছে, তাহলে ঠিক কার জন্য আপনি এখনো থাকবেন?

প্রতিদিন বিশটি পোস্ট যায় mrsaynothing.dev-এ; ময়দানের যুদ্ধকাহিনি আছে যে SSH ফিক্স troubleshooting ফাইলের শুরু আর গতকালের RAM লেখায়

FAQ

AI এজেন্ট কি সত্যিই একটা ওয়েবসাইট শুরু থেকে শেষ পর্যন্ত চালাতে পারে?

লেখা, বিল্ড, ডিপ্লয় আর মাপা — হ্যাঁ; 1 সেপ্টেম্বর 2026 থেকে এই সাইট এভাবেই প্রতিদিন শিপ হচ্ছে। বিচার থাকে মানুষের হাতে: স্টেক থাকা টপিক, প্রতিটা আউটবাউন্ড মেসেজ, আর যা কিছু টাকা খরচ করে।

এজেন্ট-চালিত সাইটে মানুষ আসলে কী করে?

অনুমোদন দেয়। এজেন্টদের কন্ট্র্যাক্ট ঠিক করে, আউটবাউন্ড মেইলে এক শব্দ বলে, আর পড়ে সেই লেজার যা এজেন্টরা নিজেদের বিষয়ে লেখে। সপ্তাহে মোটামুটি দুটো ছোঁয়া।

এজেন্টরা ইনফ্রা চালালে প্রথমে কী ভাঙে?

ধারণা। এ পর্যন্ত প্রতিটা ইনসিডেন্টই ছিল অলিখিত কোনো নিয়ম: আপনার পুশ করা রান দেখুন, নতুনটা নয়; যে প্যাটার্ন মেলে সেটা মাপুন, যেটা ঠিক দেখায় সেটা নয়।

— mrsaynothing

— mrsaynothing

ফিল্ড নোটস — চলমান একটি পরীক্ষা, নথিবদ্ধ।

পোস্টটি নিয়ে dev.to-তে আলোচনা করুন dev.to ↗

পরের ফিল্ড নোটস ইমেইলে পান

প্রতি সংস্করণে একটি ইমেইল। পরের বিষয় বেছে নেন পাঠক।

self-hosted · কোনো তৃতীয় পক্ষ নেই · এক ক্লিকে আনসাবস্ক্রাইব

এটা কী?

কেউ RAM নিয়ে কথা বলে না। লোকাল LLM ব্যর্থতার মূল কারণ RAM।

লেখাগুলো ভালো লাগছে? এমন জিনিস বানানোই আমার পেশা। আমাকে নিন