সরেজমিন নোট
বাইরে যান। এজেন্ট এখনও কাজ করছে।
ফোন কখনোই আপনার এজেন্টকে বাঁচিয়ে রাখেনি। সার্ভারই রাখে। এটা একবার বিশ্বাস করলে বাইরে কাটানো একটা বিকেলের দাম শূন্য — আপনি বেরিয়ে যান, কাজ চলতে থাকে, আর কেবল সেই প্রশ্নই আপনাকে থামায় যার সত্যিই উত্তর দরকার।
বিল্ড শেষ হোক বা না হোক, কাজের দিন শেষ হয়। Pau hana — কর্মদিনের শেষ — নিজের সময়সূচি মেনেই আসে, আর চেনা উত্তরটা হলো তাকে অগ্রাহ্য করা: টেবিলে ল্যাপটপ খোলা রেখে আধা চোখে একটা প্রোগ্রেস বার দেখা, আর গোটা সন্ধ্যাটা এমন এক প্রক্রিয়ার হাতে তুলে দেওয়া যার কোনো পর্যায়েই আপনাকে দরকার নেই।
এই বিনিময়ের মানে তখনই থাকে যখন কাজটা আপনার হাতে থাকা যন্ত্রেই হচ্ছে। সাধারণত হয় না। এজেন্ট একটি সার্ভারের প্রক্রিয়া, সেই সার্ভারের ডিস্কে ফাইল বদলাচ্ছে, সেই সার্ভারের পরীক্ষা চালাচ্ছে। আপনার ফোন তার দিকে খোলা একটা জানালা। জানালা বন্ধ করলেও ঘরটা থেকেই যায়।
সার্ভারই স্থায়ী স্তর
Claude Code বা Codex tmux, herdr কিংবা Zellij-এর ভেতরে শুরু করুন, তাহলে সেশনটি সার্ভারের, আপনার সংযোগের নয়। সিগন্যাল এক দাগে নামুক, লাভা টিউবে ঢুকে পড়ুন, দুই ঘণ্টা ফোন তুলে রাখুন — এজেন্ট পড়া, সম্পাদনা ও পরীক্ষা চালিয়েই যাবে, কারণ এর কিছুই কখনও আপনার সঙ্গে বাঁধা ছিল না।
পুরো কৌশলটা এটুকুই, আর এ নিয়ে নিখুঁত হওয়া দরকার, কারণ ভুল অংশকে কৃতিত্ব দেওয়া সহজ। অ্যাপ প্রক্রিয়াটিকে ধরে রাখছে না। ওপারের মাল্টিপ্লেক্সার রাখছে। Mobile SSH-এর কাজ হলো পরিষ্কারভাবে বেরিয়ে যাওয়া আর ফিরে আসা।
আপনি বিদ্যুৎ সরবরাহ নন। সেভাবে আচরণ করা বন্ধ করুন।
খোঁজ নিন, পাহারা দেবেন না
এক ঘণ্টা ধরে চলা এজেন্টের মানুষ দরকার হয় তার মধ্যে প্রায় নব্বই সেকেন্ড। সমস্যা কখনোই অপেক্ষা ছিল না; সমস্যা হলো কখন সেই নব্বই সেকেন্ড আসবে তা না জানা — আর সেটাই মানুষকে এমন এক পর্দার দিকে তাকিয়ে বসিয়ে রাখে যার বলার কিছু নেই।
Agent Alerts এরই উত্তর দেয়। শনাক্তকরণ ইচ্ছে করেই বোকা, আর তাই বিশ্বাসযোগ্য: একটি টার্মিনাল ঘণ্টা, একটি OSC 9 বা OSC 777 বিজ্ঞপ্তি, আর সার্ভারে একবার ইনস্টল করা এজেন্ট hook। এটি আপনার আউটপুট পড়ে উদ্দেশ্য আন্দাজ করে না, আর মেলানোর মতো কোনো সংবেদনশীলতার নবও নেই — ওপারের প্রোগ্রাম আসলে যা ঘোষণা করেছে, এটি ঠিক তা-ই জানায়।
তাই সত্যিকারের প্রশ্ন না আসা পর্যন্ত ফোন পকেটেই থাকে। তারপর সেটি কাঁপে, আপনি প্রশ্নটা পড়েন, উত্তরে টোকা দেন আর আবার তুলে রাখেন। পুরো লেনদেন এটুকুই, আর এটা সৈকত থেকে, ট্রেইলের মুখ থেকে কিংবা shave ice-এর লাইনে দাঁড়িয়েও চলে।
বেরোনোর আগে
- মাল্টিপ্লেক্সারের ভেতরে শুরু করুন
এজেন্টটি
tmux,herdrবা Zellij-এর ভেতরে চালান, যাতে সেশনটি আপনার সংযোগের ওপর নির্ভর না করে তাকে পেরিয়েও টিকে থাকে। - এজেন্ট hook ইনস্টল করুন
প্রতি সার্ভারে একবার, অ্যাপের ভেতর থেকেই। এটি ছোট একটি shell স্ক্রিপ্ট, যেকোনো এজেন্ট ডাকতে পারে — কোনো বিক্রেতার ইন্টিগ্রেশন নয়, একটিমাত্র CLI-এর সঙ্গেও বাঁধা নয়।
- একটি অ্যালার্ট আসে তা প্রমাণ করুন
নির্ভর করার আগে একটি প্রম্পট তৈরি করে দেখুন ফোন সত্যিই কাঁপে কি না। যে অ্যালার্ট কখনও কাজ করতে দেখেননি, সেটি পরিকল্পনা নয়।
- থামার জায়গা দিন
যে কাজ যুক্তিসঙ্গত জায়গায় শেষ হয়, তা খোলা-শেষ কাজের চেয়ে ভালো, কারণ আপনি নিজেই ঠিক করেছেন তাকে চোখে চোখে রাখবেন না।
AGENTS.md পড়ো, তারপর ব্যর্থ handler পরীক্ষাগুলো ঠিক করো। সম্পাদনার আগে diff দেখো, নির্দিষ্ট পরীক্ষাগুলো চালাও, আর সেগুলো পাস করার পর থেমে যাও — commit কোরো না। দ্বীপ যা ঠিক করতে পারে না
দুটি সৎ সীমা, কারণ যে লেখা কেবল শক্তির তালিকা দেয় সেটি বিজ্ঞাপন।
| ফোন যখন পকেটে যায় | চলতে থাকে? |
|---|---|
| সার্ভারে চলা এজেন্ট প্রক্রিয়াtmux, herdr বা Zellij-এর দখলে | ✓ হ্যাঁ |
| ফাইল, diff ও পরীক্ষার ফলসার্ভারের ডিস্কে | ✓ হ্যাঁ |
| সেশনে আপনার জায়গাফিরলে আবার যুক্ত হয় | ✓ হ্যাঁ |
| সংযোগ, Android-এforeground service ধরে রাখে | ✓ হ্যাঁ |
| সংযোগ, iOS-এব্যাকগ্রাউন্ডে অল্প সময় — তারপর পুনঃসংযোগ | — না |
| যে অ্যালার্ট পৌঁছানোর সিগন্যাল নেইসক্রিয় সংযোগ দরকার; পৌঁছানোর নিশ্চয়তা নেই | — না |
প্ল্যাটফর্মের পার্থক্যটা আসল, আর তা মাথায় রেখেই পরিকল্পনা করা উচিত। Android-এ অ্যাপ ব্যাকগ্রাউন্ডে থাকার সময় একটি foreground service সংযোগ ধরে রাখে — চলমান বিজ্ঞপ্তিটিই হলো সেশন। iOS অ্যাপকে ব্যাকগ্রাউন্ডে শুধু অল্প সময় দেয়; স্থগিত হওয়ার পর আপনি ফিরে এলে এটি আবার সংযোগ করে আপনার মাল্টিপ্লেক্সারে যুক্ত হয়। সতর্কবার্তার জন্য সংযোগ সক্রিয় থাকা দরকার। যেভাবেই হোক, সার্ভারের এজেন্ট কখনও থামেনি — সেটাই মূল কথা। শুধু জানালাটাই বন্ধ হয়েছিল।
Aloha অসতর্ক হওয়ার অজুহাত নয়
ভালোভাবে বেরিয়ে যাওয়া ছোট একটা শৃঙ্খলা। দুই ঘণ্টা অনুপস্থিত থেকে যা চালাতে চাইবেন না, দরজা দিয়ে বেরোনোর মুখে সেটি শুরু করবেন না — migration-এর মাঝপথে থাকা এজেন্ট দূরত্বে ভালো হয় না। এমন কাজ দিন যার স্বাভাবিক থামার জায়গা আছে, সম্পাদনার আগে দেখে নিতে বলুন, আর ফিরে এসে diff-টাই পর্যালোচনা করুন।
আর বিজ্ঞপ্তির ব্যাপারে পেজারের মতোই যত্নবান হোন। সবকিছু যদি অ্যালার্ট দেয়, তাহলে কিছুই দেয় না। মানুষকে থামানোর যোগ্য অবস্থাগুলোতেই hook চলে; সেভাবেই রাখুন, তাহলে কাঁপুনিটার মানে থাকবে।
বিল্ডের দর্শক দরকার নেই। বেরিয়ে গিয়ে কোথাও থাকুন।