→ بلاگ

میدانی نوٹ

باہر نکلیں۔ ایجنٹ اب بھی کام کر رہا ہے۔

آپ کے ایجنٹ کو زندہ رکھنے والی چیز کبھی فون نہیں تھی۔ سرور ہے۔ ایک بار یہ بات مان لیں تو باہر گزری دوپہر آپ سے کچھ نہیں لیتی — آپ نکل جاتے ہیں، کام چلتا رہتا ہے، اور آپ کو صرف وہ سوال ٹوکتا ہے جس کا جواب واقعی درکار ہو۔

آپ کی اپنی مشین پر چار سیشن۔ ان میں سے تین کو اس سے کوئی غرض نہیں کہ آپ کہاں ہیں۔ چوتھا ہی وہ واحد وجہ ہے کہ فون جیب سے نکالا جائے۔

کام کا دن ختم ہو جاتا ہے، چاہے بلڈ ختم ہوا ہو یا نہ ہوا ہو۔ Pau hana — کام کے دن کا اختتام — اپنے وقت پر آتا ہے، اور عام جواب یہی ہوتا ہے کہ اسے نظرانداز کر دیا جائے: لیپ ٹاپ میز پر کھلا رہنے دیں، آدھی نظر پروگریس بار پر رکھیں، اور شام ایک ایسے عمل کے حوالے کر دیں جسے اس میں سے کسی مرحلے پر آپ کی ضرورت نہیں۔

یہ سودا صرف تب معنی رکھتا ہے جب کام اُسی مشین پر ہو رہا ہو جو آپ اٹھائے پھر رہے ہیں۔ عموماً ایسا نہیں ہوتا۔ ایجنٹ ایک سرور پر چلتا ہوا عمل ہے، اُسی سرور کی ڈسک پر فائلیں بدلتا ہے اور اُسی سرور کے ٹیسٹ چلاتا ہے۔ آپ کا فون اُس پر کھلی ایک کھڑکی ہے۔ کھڑکی بند کر دیں، کمرہ پھر بھی وہیں رہتا ہے۔

سرور ہی پائیدار تہہ ہے

Claude Code یا Codex کو tmux، herdr یا Zellij کے اندر شروع کریں اور سیشن سرور کا ہو جاتا ہے، آپ کے کنکشن کا نہیں۔ سگنل ایک لکیر پر آ جائے، کسی لاوا ٹیوب میں چلے جائیں، یا دو گھنٹے فون رکھ دیں — ایجنٹ پڑھتا، ترمیم کرتا اور ٹیسٹ چلاتا رہتا ہے، کیونکہ اس کا کوئی حصہ کبھی آپ سے بندھا ہی نہیں تھا۔

یہی پوری بات ہے، اور اس میں درستی ضروری ہے، کیونکہ غلط جزو کو کریڈٹ دینا آسان ہے۔ ایپ اس عمل کو تھامے ہوئے نہیں۔ دوسرے سرے پر موجود ملٹی پلیکسر تھامے ہوئے ہے۔ Mobile SSH کا کام صرف صفائی سے نکلنا اور صفائی سے واپس آنا ہے۔

آپ بجلی کی سپلائی نہیں ہیں۔ ویسا برتاؤ چھوڑ دیں۔

حال دیکھ لیں، سر پر کھڑے نہ رہیں

ایک گھنٹہ چلنے والے ایجنٹ کو اُس میں سے تقریباً نوّے سیکنڈ کسی شخص کی ضرورت ہوتی ہے۔ مسئلہ کبھی انتظار نہیں رہا؛ مسئلہ یہ ہے کہ معلوم نہیں ہوتا کہ وہ نوّے سیکنڈ کب آئیں گے، اور یہی لوگوں کو ایسی اسکرین پر نظریں جمائے رکھتا ہے جس کے پاس کہنے کو کچھ نہیں۔

Agent Alerts اسی کا جواب ہیں۔ شناخت جان بوجھ کر سادہ ہے اور اسی لیے قابلِ اعتماد: ٹرمینل کی گھنٹی، OSC 9 یا OSC 777 نوٹیفکیشن، اور وہ ایجنٹ hook جو آپ سرور پر ایک بار نصب کرتے ہیں۔ یہ آپ کا آؤٹ پٹ پڑھ کر ارادے کا اندازہ نہیں لگاتا، اور حساسیت کا کوئی ڈائل نہیں جسے ایڈجسٹ کیا جائے — یہ وہی بتاتا ہے جو دوسری طرف چلتے پروگرام نے خود اعلان کیا۔

چنانچہ فون جیب میں رہتا ہے جب تک کوئی حقیقی سوال پیدا نہ ہو۔ پھر وہ کمپن کرتا ہے، آپ prompt پڑھتے ہیں، جواب پر ٹیپ کرتے ہیں اور اسے واپس رکھ دیتے ہیں۔ بس یہی پورا تعامل ہے، اور یہ ساحل سے، کسی پگڈنڈی کے دہانے سے، یا shave ice کی قطار میں کھڑے ہو کر بھی چلتا ہے۔

نکلنے سے پہلے

  1. اسے ملٹی پلیکسر کے تحت شروع کریں

    ایجنٹ کو tmux، herdr یا Zellij کے اندر چلائیں تاکہ سیشن آپ کے کنکشن پر منحصر ہونے کے بجائے اس کے بعد بھی قائم رہے۔

  2. ایجنٹ hook نصب کریں

    ہر سرور پر ایک بار، ایپ کے اندر سے۔ یہ ایک چھوٹی shell script ہے جسے کوئی بھی ایجنٹ پکار سکتا ہے — نہ وینڈر کا انضمام، نہ کسی ایک CLI سے بندھی ہوئی۔

  3. ایک الرٹ کی آمد ثابت کریں

    اس پر بھروسا کرنے سے پہلے ایک prompt چلائیں اور تصدیق کریں کہ فون کمپن کرتا ہے۔ جو الرٹ آپ نے کبھی چلتا نہیں دیکھا، وہ منصوبہ نہیں۔

  4. اسے رکنے کا مقام دیں

    ایسا کام جو کسی معقول جگہ ختم ہو، کھلے سرے والے کام سے بہتر ہے، کیونکہ آپ اسے نہ دیکھنے کا فیصلہ کر رہے ہیں۔

ایسا کام جسے تنہا چھوڑا جا سکے AGENTS.md پڑھو، پھر ناکام ہوتے handler ٹیسٹ ٹھیک کرو۔ ترمیم سے پہلے diff کا معائنہ کرو، متعلقہ ٹیسٹ چلاؤ، اور ان کے پاس ہوتے ہی رک جاؤ — commit مت کرو۔

جزیرہ جو ٹھیک نہیں کر سکتا

دو دیانت دار حدود، کیونکہ صرف خوبیاں گنانے والی تحریر اشتہار ہوتی ہے۔

آپ کے چلے جانے پر کیا قائم رہتا ہے
جب فون جیب میں چلا جاتا ہےچلتا رہتا ہے؟
سرور پر ایجنٹ کا عملtmux، herdr یا Zellij کی ملکیت ✓ ہاں
فائلیں، diff اور ٹیسٹ آؤٹ پٹسرور کی ڈسک پر ✓ ہاں
سیشن میں آپ کی جگہواپسی پر دوبارہ منسلک ✓ ہاں
کنکشن، Android پرforeground service تھامے رکھتی ہے ✓ ہاں
کنکشن، iOS پرپس منظر میں مختصر وقت — پھر دوبارہ اتصال — نہیں
ایسا الرٹ جسے پہنچانے کو سگنل نہ ہوفعال کنکشن ضروری ہے؛ پہنچنے کی ضمانت نہیں — نہیں
ہر سطر میں ایجنٹ چلتا رہتا ہے۔ فرق صرف اتنا ہے کہ آپ کا فون کھڑکی کھلی رکھے ہوئے تھا یا نہیں۔

پلیٹ فارم کا فرق حقیقی ہے اور اس کی منصوبہ بندی ضروری ہے۔ Android پر ایک foreground service کنکشن تھامے رکھتی ہے جب ایپ پس منظر میں ہو — جاری رہنے والا نوٹیفکیشن ہی وہ سیشن ہے۔ iOS ایپ کو پس منظر میں صرف مختصر وقت دیتا ہے؛ معطلی کے بعد آپ کے واپس آنے پر یہ دوبارہ جڑتا اور آپ کے ملٹی پلیکسر سے پھر منسلک ہوتا ہے۔ الرٹس کے لیے کنکشن کا فعال رہنا ضروری ہے۔ دونوں صورتوں میں سرور پر چلتا ایجنٹ کبھی رکا نہیں، اور یہی اصل بات ہے۔ بند صرف کھڑکی ہوئی۔

Aloha بے احتیاطی کا بہانہ نہیں

اچھی طرح نکلنا ایک چھوٹا سا نظم ہے۔ جو کام آپ دو گھنٹے بغیر نگرانی چلانا نہ چاہیں، وہ دروازے سے نکلتے ہوئے شروع نہ کریں — migration کے بیچ کھڑا ایجنٹ فاصلے سے بہتر نہیں ہو جاتا۔ اسے ایسا کام دیں جس کے رکنے کا کوئی قدرتی مقام ہو، ترمیم سے پہلے معائنے کو کہیں، اور واپسی پر جس چیز کا جائزہ لیں وہ diff ہو۔

اور نوٹیفکیشن کے ساتھ وہی احتیاط برتیں جو pager کے ساتھ برتی جاتی ہے۔ اگر ہر چیز الرٹ کرے تو کوئی چیز الرٹ نہیں کرتی۔ hook انہی حالتوں پر چلتا ہے جن کے لیے کسی شخص کو ٹوکنا واجب ہے؛ اسے ویسا ہی رہنے دیں اور کمپن بامعنی رہے گی۔

بلڈ کو تماشائی کی ضرورت نہیں۔ جائیں اور کہیں موجود ہوں۔