آپ نے Claude Code کو چار گھنٹے کی مسلسل آمدورفت کے بعد ایک کام کے درمیان بند کر دیا — آرکیٹیکچر کے فیصلے ہو چکے تھے، تین طریقے آزما کر چھوڑ دیے گئے تھے، اور ایک کھلا سوال ابھی حل طلب تھا۔ ایک گھنٹے بعد آپ اسی ڈائریکٹری میں Codex کھولتے ہیں تاکہ وہ حصہ آزما سکیں جس میں یہ بہتر ہے۔ Codex کو ان میں سے کچھ بھی معلوم نہیں۔ آپ دوبارہ آرکیٹیکچر، ناکام طریقوں، اور کھلے سوال کی وضاحت کرتے ہیں، کیونکہ وہ سیاق ایک ہی ٹول کے transcript میں موجود تھا اور کہیں اور نہیں۔ پھر اسے اس تعداد سے ضرب دیں جتنے agent CLI آپ ایک ہفتے میں واقعی استعمال کرتے ہیں — اور 2026 میں، جب Claude Code، Codex، Cursor، Antigravity، Grok Build، Kimi Code، اور درجن بھر دوسرے ایک ساتھ قابلِ عمل ہوں، تو یہ تعداد شاذ ہی ایک ہوتی ہے۔
“AI agent memory” کو حل کرنے میں عام غلطی یہ ہے کہ سیدھا vector database کی طرف جایا جائے اور سمجھ لیا جائے کہ مسئلہ حل ہو گیا۔ ai-memory، Fabio Akita کا ایک open-source Rust پروجیکٹ، جان بوجھ کر ایک مختلف مؤقف اختیار کرتا ہے: اگلے سیشن کے آغاز میں raw logs سے ٹکڑے retrieve کرنے کے بجائے سیشن کے اختتام پر ایک مربوط خلاصہ compile کرو، اسے vector store میں embeddings کے بجائے git repo میں plain markdown کے طور پر محفوظ کرو، اور “آپ اس وقت کس agent vendor کو استعمال کر رہے ہیں” کو اس بات سے غیر متعلق سمجھو کہ آپ کی memory آپ کے ساتھ چلتی ہے یا نہیں۔ یہ پوسٹ بتاتی ہے کہ یہ سب حقیقت میں کیسے بنایا گیا ہے۔
آپ یہ سیکھیں گے:
- کیوں “compile کرو، retrieve نہیں” agent memory کے لیے RAG-based ٹولز سے بنیادی طور پر مختلف طریقہ ہے
- کیسے cross-agent handoffs آپ کو Claude Code چھوڑ کر وہی کام Codex، Cursor، یا Gemini CLI میں دوبارہ شروع کرنے دیتے ہیں
- کیسے hybrid retrieval system full-text search، entity matching، اور graph neighbors کو یکجا کرتا ہے — vectors اختیاری ہیں، لازمی نہیں
- کیوں retrieved memory کو واضح طور پر غیر معتبر evidence سمجھا جاتا ہے، کبھی instructions کے طور پر نہیں
- کیسے git-backed markdown کے ساتھ ایک واحد self-hosted Rust binary عملی طور پر managed vector-DB service سے مختلف ہے
- اس ٹول کی حقیقی حدود کہاں ہیں، اور یہ جان بوجھ کر کیا کرنے کی کوشش نہیں کرتا
فہرستِ مضامین
- بنیادی باتیں
- مکمل آرکیٹیکچر
- بنیادی تہوں کی وضاحت
- ابتدا سے انتہا تک walkthrough
- خاص صورتیں
- Scaling اور production کے چیلنجز
- کوڈ مثالیں
- عام غلطیاں
- Production کی بہترین حکمتِ عملیاں
بنیادی باتیں
ai-memory حقیقت میں کن چیزوں کا احاطہ کرتا ہے
ai-memory دو آپس میں جڑے مگر الگ مسائل حل کرتا ہے۔ پہلا وہی ہے جسے زیادہ تر memory tools نشانہ بناتے ہیں: ایک agent session ختم ہوتا ہے، اور جو کچھ بھی زیرِ بحث آیا — کیے گئے فیصلے، آزمائے گئے اور مسترد کیے گئے طریقے، کھلے سوالات — سب غائب ہو جاتا ہے، جب تک کوئی انسان اسے کہیں دستی طور پر لکھ نہ لے۔ دوسرا وہ مسئلہ ہے جسے تقریباً کوئی اور نشانہ نہیں بناتا: چاہے ایک واحد tool اپنی history یاد بھی رکھے، وہ memory اس وقت ساتھ نہیں چلتی جب آپ کسی دوسرے agent vendor پر منتقل ہوتے ہیں۔ Claude Code کا ایک session اور Codex کا ایک session، طے شدہ طور پر، دو جزیرے ہیں جن کے درمیان کوئی پل نہیں۔
ان دونوں کا ai-memory کے پاس ایک ہی بنیادی جواب ہے۔ Lifecycle hooks سیشن کے دوران sanitized observations — prompts، tool calls، session boundaries — کو capture کرتے ہیں۔ سیشن کے اختتام پر، ان observations کو ایک مربوط markdown صفحے میں compile کیا جاتا ہے، صرف raw log کے طور پر archive نہیں کیا جاتا۔ پھر جو اگلا agent اس project میں کھلتا ہے، چاہے وہ کسی بھی vendor کا ہو، اسے اپنی پہلی prompt سے پہلے ایک محدود “آپ یہاں چھوڑ کر گئے تھے” handoff ملتا ہے۔
یہ مسئلہ اچھی طرح حل کرنا اتنا قیمتی کیوں ہے
- 2026 کا agent landscape واقعی اتنا ہی fragmented ہے۔ Developers اب معمول کے مطابق Claude Code، Codex، اور کم از کم ایک اور CLI نصب رکھتے ہیں، اور جو کام کے مطابق مناسب لگے اسے استعمال کرتے ہیں — کہیں cloud sandboxing بہتر ہے، کہیں terminal-native گہرائی۔ ایک ایسا memory system جو صرف ایک vendor سے بندھا ہو، developer کے حقیقی workflow کے ایک تیزی سے سکڑتے ہوئے حصے کو ہی حل کرتا ہے۔
- Context کا ضائع ہونا ایک حقیقی، بار بار آنے والی لاگت رکھتا ہے۔ آرکیٹیکچر اور ناکام طریقوں کو دوبارہ سمجھانا صرف جھنجھلاہٹ نہیں — یہ tokens خرچ کرتا ہے، وقت ضائع کرتا ہے، اور خطرہ پیدا کرتا ہے کہ اگلا agent وہی طریقہ دوبارہ آزمائے جو پہلے ہی ان وجوہات کی بنا پر ناکام ہو چکا تھا جن سے وہ کبھی واقف ہی نہیں ہوا۔
- زیادہ تر مقابل ٹولز اسے vector database سے حل کرتے ہیں، جس کا مطلب ہے embedding infrastructure، ایک ایسا store جسے دستیاب رکھنا پڑے، اور retrieval کا ایسا مرحلہ جو وہ context کھو سکتا ہے جسے انسان بدیہی سمجھے گا۔ “خلاصہ compile کرو، ٹکڑے retrieve مت کرو” پر شرط لگانا واقعی ایک مختلف شرط ہے، اور اسے اس کی اپنی شرائط پر سمجھنا اہم ہے۔
مکمل آرکیٹیکچر
Agent CLI (Claude Code, Codex, Cursor, ...)
│ lifecycle hooks fire-and-forget
▼
ai-memory server (single Rust binary)
│
├── wiki/ ── markdown source of truth, git-versioned
├── raw/ ── sanitized transcript segments (managed workstreams only)
├── db/ ── SQLite: FTS5 index, entities, embeddings
└── logs/
│
▼
Session end ──▶ compile observations into a markdown page ──▶ typed handoff (pending)
│
▼
Next agent's SessionStart ──▶ server finds pending handoff ──▶ injects "where you left off"
رہنمائی کرنے والا اصول یہ ہے: ایک server، ایک data directory، اور CLI خود ایک پتلا HTTP client ہے — ai-memory status، bootstrap، search، اور باقی سب براہِ راست SQLite یا wiki files کو چھیڑنے کے بجائے چلتے ہوئے server سے بات کرتے ہیں۔ Markdown ہی اصل source of truth ہے؛ SQLite اس پر ایک rebuildable index ہے، اور اس کی اہمیت اس سے کہیں زیادہ ہے جتنی پہلے سننے میں لگتی ہے، خاص طور پر جب آپ دیکھتے ہیں کہ backup اور recovery کے لیے اس کا کیا مطلب بنتا ہے۔
بنیادی تہوں کی وضاحت
1. بغیر رکاوٹ Lifecycle Capture
یہ کیا ہے: Hooks prompts، tool calls، اور session boundaries کے لیے محدود اور sanitized observations کو fire-and-forget انداز میں بھیجتے ہیں جبکہ agent اپنا کام کر رہا ہوتا ہے — agent کی اپنی execution کو روکے بغیر۔
یہ کیوں اہم ہے: ایسا capture جس کے لیے developer کو کچھ یاد رکھنا پڑے، مقصد ہی کو ناکام بنا دیتا ہے۔ یہ خودکار ہونا چاہیے، اور خاص طور پر “fire-and-forget” کا مطلب یہ ہے کہ اگر memory server سست ہو یا قابلِ رسائی نہ ہو تو وہ agent کے اپنے loop کے لیے bottleneck نہ بنے۔
Production tip: یہ محدود، sanitized capture ہے، مکمل transcript نہیں — direct launches مکملیت کے بدلے تقریباً صفر overhead دیتے ہیں، جو روزمرہ استعمال کے لیے درست default ہے۔
2. Compile کرو، Retrieve نہیں
یہ کیا ہے: Session کے اختتام پر متعلقہ observations کو ایک مربوط markdown صفحے میں compile کیا جاتا ہے، بجائے اس کے کہ انہیں raw log کی صورت میں چھوڑ دیا جائے تاکہ مستقبل میں retrieval کا مرحلہ انہیں کھنگالے۔ یہ براہِ راست اس چیز کو لاگو کرتا ہے جسے کبھی کبھی Karpathy LLM wiki pattern کہا جاتا ہے: curated صفحات کا ایک چھوٹا index، raw history کے ایک بڑے corpus سے بہتر ہوتا ہے جسے ہر بار ضرورت پڑنے پر دوبارہ تلاش کرنا پڑے۔
یہ کیوں اہم ہے: RAG-style memory ٹکڑے retrieve کرتی ہے اور امید کرتی ہے کہ وہ context میں جڑ جائیں گے۔ ایک compiled صفحہ پہلے ہی مربوط ہوتا ہے — اپنے طور پر ایک decision record یا session summary، انسان کے لیے پڑھنے کے قابل، نہ کہ صرف retrieval کے دوران استعمال کے لیے۔
Production tip: یہی وجہ ہے کہ wiki بغیر کسی configured LLM کے بھی مفید رہتی ہے — rule-based summarizer پھر بھی کچھ قابلِ استعمال پیدا کرتا ہے، بس LLM-consolidated صفحے کے مقابلے میں کم polished۔
3. Cross-Agent Handoffs
یہ کیا ہے: وہ feature جسے سہارا دینے کے لیے باقی سارا آرکیٹیکچر موجود ہے۔ ایک agent CLI کو کام کے درمیان چھوڑیں، بعد میں اسی project میں کوئی مختلف agent کھولیں، اور نئے session کو اپنی پہلی prompt سے پہلے ایک typed handoff — کھلے سوالات، اگلے اقدامات، session summary — مل جائے۔
یہ کیوں اہم ہے: یہی وہ حصہ ہے جسے تقریباً کوئی مماثل memory tool براہِ راست نشانہ نہیں بناتا۔ زیادہ تر ایک ہی vendor کے ecosystem تک محدود رہتے ہیں؛ ai-memory کی support matrix جان بوجھ کر بیس سے زیادہ CLIs تک پھیلی ہوئی ہے تاکہ handoff کسی ایک کمپنی کے tooling کے اندر قید نہ رہے۔
Production tip: ہر agent حقیقی session-end event expose نہیں کرتا۔ جن میں یہ موجود نہیں، ان کے لیے آپ کے آخری turn کے بعد دستی طور پر ai-memory finalize-session چلانا ہی دراصل summary اور handoff کو trigger کرتا ہے۔
4. Managed Workstreams
یہ کیا ہے: بنیادی handoff system کے اوپر ایک اختیاری تہہ۔ ai-memory run claude، پھر بعد میں ai-memory run codex --yolo، شفاف طریقے سے ایک ہی منطقی workstream کو جاری رکھتا ہے — native per-harness session resume کے ساتھ ایک portable، searchable event ledger — محض ایک بار کے summary handoff کے بجائے۔
یہ کیوں اہم ہے: Compiled handoff summary اچھی چیز ہے؛ مگر native session resume کے ساتھ مکمل portable ledger اس وقت بہتر ہے جب “بالکل کیا ہوا تھا” کی fidelity، ایک condensed summary سے زیادہ اہم ہو — یعنی “تقریباً جہاں آپ چھوڑ کر گئے تھے” اور “آپ کا اصل سابقہ session، اب جاری” کے درمیان فرق۔
Production tip: Managed mode اس وقت مکمل support matrix کے ایک معنی خیز مگر محدود حصے کا احاطہ کرتا ہے — یہ فرض کرنے سے پہلے کہ ai-memory run ہر جگہ کام کرے گا جہاں بنیادی handoff system کرتا ہے، دیکھ لیں کہ آپ کا مخصوص harness اس میں شامل ہے یا نہیں۔
5. Hybrid، Authority-Aware Retrieval
یہ کیا ہے: Wiki کو query کرتے وقت full-text search (FTS5)، consolidation کے وقت اخذ کیے گئے nouns کے خلاف entity matching، اور linked pages کے درمیان graph-neighbor expansion کو یکجا کیا جاتا ہے — vector similarity ایک اختیاری چوتھے signal کے طور پر۔ Truncation سے پہلے، ایک محدود adjustment maintained rules، decisions، procedures، اور gotchas صفحات کو ان session history صفحات پر ترجیح دیتا ہے جو بہت قریب ملتے ہوں مگر صرف episodic ہوں۔
یہ کیوں اہم ہے: خالص vector search ایسا session page سامنے لا سکتی ہے جو معنوی طور پر قریب ہو، مگر اسی موضوع پر حقیقی standing decision کو دبا دے۔ Curated knowledge کی طرف وزن دینا — اسے absolute filter بنائے بغیر — ایک واقعی مفید درمیانی راستہ ہے۔
Production tip: یہاں vector search اضافی ہے، بنیادی نہیں۔ FTS5 کے ساتھ entity اور graph-neighbor matching پہلے ہی صفر embedding infrastructure کے ساتھ کام کرتی ہے؛ بہتر fuzzy recall کے لیے vector provider شامل کریں، اس لیے نہیں کہ system کو اس کی ضرورت ہے۔
6. LLM بطور Opt-In، لازمی شرط نہیں
یہ کیا ہے: Capture، search، اور rule-based summarization سب کچھ بغیر کسی configured LLM provider کے کام کرتا ہے۔ کسی provider کو شامل کرنے سے LLM-consolidated صفحات، contradiction linting، اور background auto-improvement کھلتے ہیں، مگر بنیادی usability اس پر منحصر نہیں۔
یہ کیوں اہم ہے: یہ ایک حقیقی architectural موقف ہے: API key نہ ہونے کے لمحے ٹول بیکار ہونے کے بجائے خوبصورتی سے degrade کرتا ہے، اور ایک واقعی مفت، self-hosted راستہ دستیاب رکھتا ہے۔
Production tip: جب آپ provider شامل کریں، تو تجویز کردہ defaults چھوٹے، تیز models کی طرف اشارہ کرتے ہیں — Haiku-class یا mini-class — کیونکہ consolidation summarization ہے، سخت reasoning نہیں۔ بڑے models کو coding agent کے لیے بچا کر رکھیں۔
7. Auto-Improvement اور Curation
یہ کیا ہے: جب LLM configured ہو، ایک background scheduler نئے مکمل ہونے والے sessions کا جائزہ لیتا ہے اور wiki edits تجویز کرتا ہے — یعنی وہ پائیدار اسباق جو کسی session نے سکھائے — اور انہیں ایک auditable pending-writes trail میں ریکارڈ کرتا ہے۔ ایک الگ، LLM-free curator command سرد صفحات، duplicate titles، اور dangling links پر rule-based maintenance چلاتا ہے۔
یہ کیوں اہم ہے: ایسا memory system جو صرف بڑھتا جائے مگر اپنے ذخیرہ شدہ مواد پر دوبارہ نظر نہ ڈالے، رفتہ رفتہ شور جمع کرتا ہے۔ ایک طرف LLM-driven “ہم نے کیا سیکھا” loop اور دوسری طرف ایک سستا، deterministic housekeeping pass، دونوں مل کر مہینوں کے sessions کے بعد بھی wiki کو مفید رکھتے ہیں۔
Production tip: Auto-approval default ہے، لیکن require_approval = true تجویز کردہ edits کو انسانی جائزے تک pending رکھتا ہے — مشترک یا طویل المدت project پر اسے فعال کرنا مفید ہے، جہاں خراب خودکار edit کو بعد میں درست کرنا مہنگا پڑ سکتا ہے۔
ابتدا سے انتہا تک walkthrough
اس حقیقی scenario کا سراغ لگائیں جس کے گرد یہ ٹول بنایا گیا ہے:
- ایک Claude Code session کئی گھنٹوں تک کسی project پر چلتا ہے۔ Lifecycle hooks راستے میں prompts اور tool calls کو sanitized، bounded observations کے طور پر capture کرتے ہیں۔
- Session ختم ہوتا ہے۔ ai-memory متعلقہ observations کو ایک session page میں compile کرتا ہے، اور کھلے سوالات اور اگلے اقدامات پر مشتمل ایک typed handoff بناتا ہے، جسے pending نشان زد کیا جاتا ہے۔
- چند گھنٹے بعد، اسی directory میں Codex کھلتا ہے۔ اس کا SessionStart hook چلتا ہے، اور server اس project کے لیے انتظار کرتا ہوا pending handoff ڈھونڈ لیتا ہے۔
- Handoff، Codex کی پہلی prompt سے پہلے inject کر دیا جاتا ہے — ایک “آپ یہاں چھوڑ کر گئے تھے” بلاک، جو آرکیٹیکچر کے فیصلوں، آزمائی گئی اور مسترد کی گئی چیزوں، اور اس خاص کھلے سوال کا احاطہ کرتا ہے جو کبھی حل نہیں ہوا تھا۔
- Codex کام جاری رکھتا ہے بغیر اس کے کہ developer پہلے سے طے شدہ چیزیں دوبارہ سمجھائے۔
- اگر کسی خاص فیصلے کو مستقل طور پر محفوظ رہنا ہو بجائے اس کے کہ وہ صرف اس session کے summary میں رہے — مثلاً “ہم نے اس کے لیے Postgres کو standardize کیا” — تو developer یہ بات واضح کرتا ہے، اور agent ایک durable، pinned wiki page لکھ دیتا ہے جو عام decay سے ختم نہیں ہوگا۔
- ہفتوں بعد، ایک تیسرے agent کے ساتھ session میں بھی، “چھ ہفتے پہلے database کے بارے میں ہم نے کیا فیصلہ کیا تھا” جیسی query hybrid retrieval system کے ذریعے اسی pinned decision page تک پہنچتی ہے — authority-aware adjustment کی بدولت کسی ملتی جلتی مگر صرف episodic session mention سے اوپر rank ہو کر۔
خاص صورتیں
تعمیر کے اعتبار سے per-project isolation۔ ہر project ایک raw directory name کے بجائے stable UUIDs پر keyed path میں رہتا ہے، اور طے شدہ طور پر project identity موجودہ working directory سے اخذ کی جاتی ہے۔ ایک marker file آپ کو اسے واضح طور پر override کرنے دیتی ہے — consultancy اداروں کے لیے مفید جو کئی clients، monorepos، یا linked git worktrees سنبھالتے ہیں اور چاہتے ہیں کہ memory جان بوجھ کر مشترک ہو یا الگ، حادثاتی طور پر نہیں۔
Shared servers پر per-operator memory slots۔ جب homelab یا team server مشترک ہو، ایک opt-in setting ہر authenticated operator کے اپنے working context کو ایک محدود namespace میں رکھتی ہے، جو shared context کے ساتھ تہہ در تہہ موجود ہوتا ہے۔ یہ context-injection isolation ہے، access control نہیں — درست reads اور searches project-wide ہی رہتی ہیں۔
ایسا feedback جو delete کرنے کے بجائے confidence کم کرتا ہے۔ جب کوئی page پرانا یا غلط ثابت ہو، تو اسے delete کرنے کے بجائے اس کی retrieval salience کو کم از کم سطح پر لایا جاتا ہے اور اسے review کے لیے نشان زد کیا جاتا ہے۔ اس page کی بعد کی rewrite یہ نشان ہٹا دیتی ہے، یوں خاموشی سے history مٹانے کے بجائے اسے ایک auditable record کے طور پر محفوظ رکھا جاتا ہے۔
Scaling اور production کے چیلنجز
Operational simplicity ایک حقیقی design choice ہے۔ ایک واحد Rust binary، ایک data directory، اور markdown بطور اصل source of truth: backup rsync یا git remote ہے، ایک خراب page edit سے recovery صرف git commit سے ایک file restore کرنا ہے، اور database client کے بغیر dataset پر grep چلایا جا سکتا ہے — یہ آپ کے agent tooling کے ساتھ managed vector database چلانے کے مقابلے میں آپریشنل اعتبار سے واقعی مختلف کہانی ہے۔
Security محفوظ defaults سے شروع ہوتی ہے، اور non-loopback access بند حالت میں ناکام ہوتا ہے۔ Single-user laptop کے لیے loopback پر bind ہونا اور auth نہ ہونا ٹھیک ہے؛ اس سے آگے bearer token کے بغیر server کو expose کرنا ایک دانستہ، واضح استثنا ہے، نہ کہ کوئی ایسی چیز جو خاموشی سے کام کرتی رہے۔ TLS کو جان بوجھ کر internal طور پر handle کرنے کے بجائے reverse proxy پر چھوڑا گیا ہے۔
Wiki کے مہینوں تک بڑھتے جانے پر retrieval quality کو قائم رہنا چاہیے۔ authority-aware ranking بالکل اسی لیے ہے — اس کے بغیر، ایک سال کی جمع شدہ episodic session pages رفتہ رفتہ ان چند صفحات کو دبا دیں گی جو واقعی “ہم نے کیا فیصلہ کیا تھا” کا جواب دینے میں اہم ہیں۔
LLM کی لاگت آپ کے coding agent کی لاگت سے جدا رہتی ہے۔ کیونکہ یہاں LLM کا کام reasoning نہیں بلکہ consolidation ہے، اس لیے اسے سستے model پر چلانا memory layer کی operating cost کو کم رکھتا ہے اور بڑی حد تک اس سے آزاد بناتا ہے جو آپ coding agent پر خرچ کر رہے ہیں۔
کوڈ مثالیں
خلاصتاً، Docker کے ساتھ server کو مقامی طور پر چلانا:
docker run -d --name ai-memory \
--restart unless-stopped \
-p 127.0.0.1:49374:49374 \
-v ai-memory-data:/data \
-e AI_MEMORY_LLM_PROVIDER=anthropic \
-e ANTHROPIC_API_KEY=sk-ant-... \
akitaonrails/ai-memory:latest
کسی agent CLI کو اس سے جوڑنا:
ai-memory install-mcp --client claude-code --apply
ai-memory install-hooks --agent claude-code --apply
Managed launcher کے ساتھ workstream کے درمیان agents تبدیل کرنا:
ai-memory run claude # start work in Claude Code
# ...quit, come back later...
ai-memory run codex --yolo # resume the same workstream in Codex
اس کی read-only JSON API پر wiki کو براہِ راست query کرنا:
curl "http://127.0.0.1:49374/api/v1/search?q=database+choice&project=my-app" \
-H "Authorization: Bearer $AI_MEMORY_AUTH_TOKEN"
Terminal سے ایک durable، pinned decision page لکھنا:
ai-memory write-page \
--path decisions/0007-db.md \
--body $'# Standardized on Postgres for this project\n\nRejected MongoDB due to...' \
--pinned
عام غلطیاں
غلطی: retrieved memory کو instructions سمجھ لینا۔ یہ پرکشش لگتا ہے کہ ایک high-ranked page براہِ راست agent کے رویے کو steer کرے۔ حل: ai-memory کے اپنے design میں retrieved text کو واضح طور پر غیر معتبر تاریخی evidence سمجھا جاتا ہے جو اپنی tier، pin، یا rank سے قطع نظر کبھی instruction-level authority حاصل نہیں کرتا — یہ ایک ایسا حفاظتی اصول ہے جس کی نقل آپ کو اپنے بنائے ہوئے ہر memory یا RAG system میں کرنی چاہیے۔
غلطی: یہ فرض کر لینا کہ فائدہ حاصل کرنے کے لیے LLM provider ضروری ہے۔ Setup صرف اس لیے مؤخر کر دینا کہ ابھی provider منتخب نہیں کیا۔ حل: zero-LLM mode پہلے ہی full-text search، entity matching، graph-neighbor recall، اور rule-based summaries دیتا ہے — provider بعد میں خاص طور پر consolidation quality کے لیے شامل کریں، آغاز کی شرط کے طور پر نہیں۔
غلطی: auth کے بغیر server کو loopback سے آگے expose کرنا۔ یہ سمجھنا کہ ایک فوری LAN test بے ضرر ہے۔ حل: کسی بھی non-loopback bind کو default کے طور پر bearer token کا متقاضی سمجھیں، اور single trusted machine سے آگے کسی بھی چیز پر TLS چھوڑنے کے بجائے فراہم کردہ reverse-proxy templates استعمال کریں۔
غلطی: یہ توقع کرنا کہ یہ live code intelligence کا متبادل بن جائے گا۔ memory wiki سے پوچھنا کہ کوئی function اس وقت کیا کرتا ہے۔ حل: اسے سابقہ فیصلوں، rationale، اور ناکام کوششوں کے لیے استعمال کریں — code سے متعلق کسی بھی تاریخی دعوے کو actual checkout کے خلاف verify کریں، اور symbols، callers، اور موجودہ behavior کے لیے structural code-intelligence tool پر انحصار کریں۔
غلطی: کسی پختہ project پر bootstrapping کے بغیر اسے اپنانا۔ ایسے codebase پر مکمل خالی wiki سے آغاز کرنا جس کے پیچھے مہینوں کی حقیقی history موجود ہو۔ حل: bootstrap command ایک بار چلائیں، جو git log، README، اور docs سے ابتدائی صفحات seed کرتا ہے تاکہ آئندہ sessions صفر سے شروع ہونے کے بجائے موجودہ context پر تعمیر ہوں۔
Production کی بہترین حکمتِ عملیاں
- ہر اس CLI کے لیے cross-agent hooks ترتیب دیں جس کے درمیان آپ واقعی switch کرتے ہیں، صرف اپنے بنیادی والے کے لیے نہیں — handoff کی اصل قدر اسی وقت ظاہر ہوتی ہے جب ایک سے زیادہ vendor جوڑے جا چکے ہوں۔
- وہ فیصلے pin کریں جنہیں ایک واحد session سے زیادہ زندہ رہنا چاہیے۔ Auto-compiled session pages مفید history ہیں؛ واضح طور پر pinned pages وہ چیز ہیں جنہیں آپ حقیقتاً مہینوں بعد surface ہوتے دیکھنا چاہتے ہیں۔
- Consolidation کے لیے LLM model کو سستا رکھیں اور اسے اپنے coding agent کے model سے الگ رکھیں۔ یہ summarization کا کام ہے، اور ایک چھوٹا model اسے لاگت کے بہت کم حصے میں بخوبی سنبھال لیتا ہے۔
- Shared یا طویل المدت projects پر auto-improvement کے لیے manual approval فعال کریں۔ جب ایک سے زیادہ لوگ wiki کی درستی پر انحصار کرتے ہوں تو auditability، سہولت سے زیادہ اہم ہو جاتی ہے۔
- markdown-in-git کو اپنی اصل backup strategy سمجھیں، اور واقعی ایسا کریں — ایک خراب page کو درست کرنے کے لیے صرف ایک
git logاور ایک restore کافی ہے، پوری wiki کو چھیڑے بغیر۔
اختتامیہ
ai-memory میں دلچسپ فیصلہ کوئی ایک واحد feature نہیں — بلکہ دو مختلف تہوں پر دو بار لگائی گئی وہ شرط ہے کہ “ایک مربوط خلاصہ compile کرنا” “raw history سے ٹکڑے retrieve کرنے” سے بہتر ہے، اور یہ کہ memory کو developer کے ساتھ اس ہر agent vendor کے پار جانا چاہیے جسے وہ واقعی استعمال کر رہا ہے، بجائے اس کے کہ وہ کسی ایک کمپنی کے tooling کے اندر مقید رہے۔ 2026 میں agent-CLI landscape پہلے ہی جتنا fragmented ہو چکا ہے، اسے دیکھتے ہوئے دوسری بات پر شرط لگانا محض ایک nice-to-have کم اور اس طرزِ کار کی اصل شکل زیادہ لگتا ہے جس پر زیادہ تر developers پہلے ہی کام کر رہے ہیں۔
اگر آپ نے ایک ہی memory system میں ایک سے زیادہ agent CLI جوڑنے کی کوشش کی ہے، تو عملی طور پر واقعی کیا چیز بہتر ثابت ہوئی ہے — compiled handoffs، یا managed workstreams کا raw portable ledger؟
