![]()
پچھلا سبق ایجنٹس کو کلاؤڈ میں بڑھانے پر مرکوز تھا۔ یہ سبق انہیں ایک واحد مشین پر لانے کے بارے میں ہے۔ آخر تک آپ کے پاس ایک کام کرنے والا انجینئرنگ اسسٹنٹ ہوگا جو دلائل دیتا ہے، ٹولز کال کرتا ہے، آپ کی فائلیں پڑھتا ہے، اور آپ کی دستاویزات تلاش کرتا ہے — ایک بھی کلاؤڈ انفرینس کال کے بغیر۔
آپ ایسا کیوں چاہیں گے؟ تین وجوہات جو حقیقی انجینئرنگ کام میں ہمیشہ زیرِ بحث آتی ہیں:
مسئلہ یہ ہے کہ آپ ایک جدید کلاؤڈ ماڈل کے بدلے ایک چھوٹا زبان کا ماڈل (SLM) چلاتے ہیں جو آپ کے CPU، GPU، یا NPU پر چلتا ہے۔ یہ سبق ایسے ایجنٹس بنانے کے بارے میں ہے جو اس حد بندی میں اچھے ہوں بجائے اس کے کہ یہ دکھاوا کریں کہ یہ حد بندی موجود نہیں ہے۔
یہ سبق درج ذیل موضوعات کا احاطہ کرے گا:
اس سبق کو مکمل کرنے کے بعد، آپ جان پائیں گے کہ:
یہ سبق فرض کرتا ہے کہ آپ نے پہلے کے اسباق مکمل کر لیے ہیں اور آپ کے پاس یہ مہارتیں ہیں:
آپ کو مزید یہ درکار ہوں گے:
requirements.txt، ساتھ ہی اس سبق کے لیے foundry-local-sdk، openai، اور chromadb۔ایک فرنٹیئر کلاؤڈ ماڈل میں سینکڑوں ارب کی تعداد میں پیرا میٹر ہوتے ہیں اور اس کے پیچھے ایک ڈیٹا سینٹر ہوتا ہے۔ ایک SLM میں چند ارب پیرا میٹر ہوتے ہیں اور اسے آپ کے لیپ ٹاپ کی ریم میں فٹ ہونا ہوتا ہے۔ یہ فرق واضح توقعات قائم کرتا ہے۔
SLMs ان کاموں میں اچھے ہیں:
SLMs کمزور ہیں:
اس لیے مقامی ایجنٹس کے لیے کامیاب حکمت عملی یہ ہے: SLM کو آرکسٹریٹ کرنے دو، اور ٹولز کو بھاری کام کرنے دو۔ ماڈل کو آپ کے کوڈ بیس کا علم نہیں ہونا چاہیے — اسے جب read_file اور search_docs کو کال کرنا ہے، یہ جاننا چاہیے۔ یہ براہ راست SLM کی صلاحیتوں کو استعمال کرتا ہے۔
flowchart LR
U[Developer] --> A[Local SLM Agent]
A -->|decides which tool| T1[read_file]
A -->|decides which tool| T2[search_docs RAG]
A -->|decides which tool| T3[analyze_code]
T1 --> A
T2 --> A
T3 --> A
A --> R[Answer, fully on-device]
Microsoft Foundry Local ایک ہلکا پھلکا رن ٹائم ہے جو ماڈلز کو مکمل طور پر آپ کے مشین پر ڈاؤن لوڈ، منظم اور پیش کرتا ہے۔ ہمارے لیے اس کی سب سے اہم خصوصیت یہ ہے کہ یہ ایک OpenAI-مطابق HTTP اینڈ پوائنٹ فراہم کرتا ہے — جس کا مطلب ہے کہ OpenAI SDK اور Microsoft Agent Framework کا OpenAI کلائنٹ صرف base_url کی تبدیلی کے ساتھ اس کے خلاف کام کرتے ہیں۔ ایجنٹس بنانے کے متعلق آپ نے جو کچھ بھی سیکھا ہے، وہ براہِ راست منتقل ہوتا ہے؛ صرف اینڈ پوائنٹ کلاؤڈ سے localhost منتقل ہوتا ہے۔
Foundry Local خود بخود آپ کے ہارڈویئر کے لیے ماڈل کی بہترین تعمیر منتخب کرتا ہے — CPU بلڈ، CUDA/GPU بلڈ، یا NPU بلڈ — تاکہ آپ ہر مشین کے لیے ہاتھ سے اصلاح نہ کریں۔
Foundry Local انسٹال کریں (اپنے OS کے لیے دستاویزات دیکھیں)، پھر تصدیق کریں کہ یہ کام کر رہا ہے:
# Install (example; follow the docs for your platform)
winget install Microsoft.FoundryLocal # Windows
# brew install microsoft/foundrylocal/foundrylocal # macOS
# Download and run a Qwen model, then start the local service
foundry model run qwen2.5-7b-instruct
foundry service status
جب سروس چل رہی ہو تو آپ کے پاس ایک مقامی، OpenAI-مطابق اینڈ پوائنٹ ہوتا ہے (عام طور پر http://localhost:PORT/v1)۔ نوٹ بک خودکار طریقے سے اینڈ پوائنٹ تلاش کرنے کے لیے foundry-local-sdk استعمال کرتی ہے، اس لیے آپ کو پورٹ ہارڈ کوڈ کرنے کی ضرورت نہیں۔
ایجنٹ صرف تب ایجنٹ ہوتا ہے جب وہ ٹولز کو کال کر سکے۔ بہت سے SLMs چیٹ کر سکتے ہیں لیکن ناقابل بھروسہ، خراب شدہ ٹول کالز پیدا کرتے ہیں۔ Qwen ماڈلز فنکشن کالنگ کے لیے تربیت یافتہ ہیں اور مسلسل اچھی طرح سے ساخت شدہ ٹول کال اسٹرکچرز جاری کرتے ہیں — جو بالکل ایک مقامی چیٹ ماڈل کو ایک مقامی ایجنٹ میں تبدیل کرتا ہے۔
فلو وہی معیاری ٹول کالنگ لوپ ہے جسے آپ پہلے سے جانتے ہیں، بس ڈیوائس پر چل رہا ہے:
sequenceDiagram
participant U as User
participant A as Qwen Agent (local)
participant T as Local Tool
U->>A: "What does auth.py do?"
A->>A: Decide: call read_file
A->>T: read_file("auth.py")
T-->>A: file contents
A->>A: Reason over contents
A-->>U: Explanation
دستاویزات کی تلاش وہ جگہ ہے جہاں مقامی ایجنٹس اپنی افادیت ثابت کرتے ہیں۔ اس کے بجائے کہ آپ امید کریں کہ SLM نے آپ کے فریم ورک کی دستاویزات یاد کر لی ہیں، آپ ان دستاویزات کو ایک مقامی ویکٹر ڈیٹا بیس میں ایمبیڈ کرتے ہیں اور ایجنٹ کو متعلقہ حصے طلب کرنے دیتے ہیں۔
ہم Chroma استعمال کرتے ہیں، جو ایک ایمبیڈڈ ویکٹر اسٹور ہے جو بغیر کسی سرور کے پروسیس میں چلتا ہے۔ پورا پائپ لائن مقامی ہے: مقامی ایمبیڈنگ ماڈل → مقامی ویکٹرز → مقامی بازیافت → مقامی SLM۔
flowchart TB
D[Your docs / code] --> E[Local embedding model]
E --> V[(Chroma vector DB - on disk)]
Q[Agent query] --> QE[Embed query locally]
QE --> V
V -->|top-k chunks| A[Qwen agent]
A --> Ans[Grounded answer]
یہ وہی Agentic RAG پیٹرن ہے جو سبق 5 سے ہے — صرف فرق یہ ہے کہ ہر جز آپ کی مشین پر چل رہا ہے۔
MCP ایک ٹرانسپورٹ ہے، کلاؤڈ سروس نہیں۔ ایک MCP سرور مقامی پروسیس کے طور پر stdio پر چل سکتا ہے، جو آپ کے ایجنٹ کو معیاری پروٹوکول کے ذریعے ٹولز فراہم کرتا ہے۔ یہ آپ کو MCP سرورز کے بڑھتے ہوئے ایکو سسٹم کو دوبارہ استعمال کرنے دیتا ہے — فائل سسٹم تک رسائی، git آپریشنز، ڈیٹابیس سوالات — مکمل طور پر آف لائن۔
سیکیورٹی کا زاویہ کلاؤڈ سے مختلف ہے، لیکن موجود ہے: ایک مقامی MCP سرور اب بھی آپ کے صارف کی اجازتوں کے تحت چلتا ہے، اس لیے اس کی رسائی کو محدود کریں کہ وہ کیا چھو سکتا ہے (ایک پروجیکٹ ڈائریکٹری، آپ کے مکمل ہوم فولڈر نہیں) اور اس کے نتائج کو درستگی کے لیے ان پُٹس کے طور پر سمجھیں۔
لوکل-فرسٹ کا مطلب صرف لوکل نہیں ہوتا۔ پختہ نظام حساسیت اور مشکل کے حساب سے راستہ نکالتے ہیں:
| صورت حال | کہاں چلتا ہے |
|---|---|
| حساس کوڈ/ڈیٹا، یا آف لائن | مقامی SLM |
| سادہ، محدود کام | مقامی SLM (سستا، تیز) |
| حساس نہ ہونے والے ڈیٹا پر سخت ملٹی ہاپ استدلال | کلاؤڈ ماڈل |
| ہر چیز، کسی بندش کے دوران | مقامی SLM (نرمی سے کمی) |
یہ سبق 16 کے ماڈل روٹنگ کے خیال کی عکاسی کرتا ہے — سوائے اس کے کہ “ماڈلز” میں سے ایک آپ کا اپنا مشین ہے۔ ایک مضبوط ڈیزائن کلاؤڈ کے دستیاب نہ ہونے پر لوکل پر واپس آتا ہے، تاکہ ایجنٹ اچانک ناکام ہونے کے بجائے معیار میں کمی کرے۔
flowchart LR
Q[Request] --> S{Sensitive or offline?}
S -->|yes| L[Local SLM]
S -->|no| C{Needs deep reasoning?}
C -->|no| L
C -->|yes| Cloud[Cloud model]
L --> Out[Response]
Cloud --> Out
code_samples/17-local-agent-foundry-local.ipynb کھولیں اور اسے مکمل کریں۔ آپ ایک مقامی انجینئرنگ اسسٹنٹ بنائیں گے جو مکمل طور پر آپ کے ورک سٹیشن پر چلے گا اور یہ کام کر سکتا ہے:
کسی بھی وقت کوئی کلاؤڈ انفرنس استعمال نہیں کی جاتی۔
اسسٹنٹ OpenAI کے مطابقت پذیر اینڈپوائنٹ کے ذریعے Foundry Local سے جڑتا ہے، لہٰذا ایجنٹ کا کوڈ تقریباً کلاؤڈ اسباق جیسا ہی دکھتا ہے — صرف کلائنٹ بدلتا ہے:
from foundry_local import FoundryLocalManager
from openai import OpenAI
# Foundry Local discovers/downloads the model and gives us a local endpoint.
manager = FoundryLocalManager(\"qwen2.5-7b-instruct\")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # api_key is a local placeholder
ٹولز عام Python فنکشنز ہیں جو ایک پروجیکٹ ڈائریکٹری تک محدود ہیں:
def read_file(path: str) -> str:
\"\"\"Read a file, but only inside the sandboxed project directory.\"\"\"
full = (PROJECT_ROOT / path).resolve()
if PROJECT_ROOT not in full.parents and full != PROJECT_ROOT:
return \"Access denied: path is outside the project directory.\"
return full.read_text(encoding=\"utf-8\")
سینڈ باکس چیک پر نوٹ کریں — یہاں تک کہ لوکل بھی، کوئی ٹول جو بے ترتیب راستے پڑھتا ہے ایک خطرہ ہوتا ہے۔ نوٹ بک ہر ٹول کو ایک ہی پروجیکٹ روٹ تک محدود رکھتی ہے۔
اسائنمنٹ پر جانے سے پہلے اپنی سمجھ کی جانچ کریں۔
1. لوکل ایجنٹ چلانے کے دو واضح اسباب دیں بہ نسبت کلاؤڈ میں چلانے کے۔
2. مقامی ایجنٹ میں SLM اور اس کے ٹولز کے درمیان مشورہ کردہ کام کی تقسیم کیا ہے، اور کیوں؟
3. Foundry Local کے ساتھ کلاؤڈ ایجنٹ کوڈ دوبارہ استعمال کیوں ممکن ہے؟
4. ہم مخصوص طور پر Qwen فنکشن کالنگ ماڈل کیوں استعمال کرتے ہیں بجائے کسی بھی SLM کے؟
5. مقامی RAG پائپ لائن میں کون سے اجزاء مشین پر چلتے ہیں؟
6. ایک مقامی MCP سرور آپ کی مشین پر چل رہا ہے۔ کیا یہ خودبخود اسے محفوظ بناتا ہے؟ آپ کو کیا احتیاطی تدابیر لےنی چاہیے؟
7. ایک معقول ہائبرڈ روٹنگ اصول بیان کریں جس میں ایک لوکل ماڈل شامل ہو۔
8. اس سبق میں مقامی ایجنٹ چلانے کے لیے حقیقی کم از کم RAM کی مقدار کیا ہے، اور زیادہ RAM آپ کو کیا فائدہ دیتا ہے؟
مقامی انجینئرنگ اسسٹنٹ کو ایک مقامی ڈاکیومنٹیشن ریویور میں بڑھائیں کسی چھوٹے پروجیکٹ کے لیے (اگر چاہیں تو اس ریپو کے سبق فولڈرز میں سے کسی ایک کا استعمال کریں)۔
آپ کی جمع کرائی گئی فائل کو چاہیے کہ:
find_todos ٹول شامل کریں جو پروجیکٹ میں TODO/FIXME تبصرے اسکین کرے اور انہیں فائل اور لائن نمبر کے ساتھ واپس کرے — اور read_file کی طرح ایک ہی سینڈباکس چیک رکھے۔پھر ایک مختصر پیراگراف لکھیں کہ آپ اس ریویور کے لیے کیا کلاؤڈ پر منتقل کریں گے اور کیا لوکل رکھیں گے، اور کیوں۔ آپ کا اندازہ اس بات پر ہوتا ہے کہ آیا لوکل اجزاء کو صحیح طریقے سے ساتھ جوڑا گیا ہے اور آیا آپ کی ہائبرڈ دلیل منطقی ہے — ماڈل کے معیار پر نہیں۔
اس سبق میں آپ نے ایک ایجنٹ بنایا جو مکمل طور پر آپ کی اپنی مشین پر چلتا ہے:
یہ ڈیپلائمنٹ آرک مکمل کرتا ہے: سبق 16 نے ایجنٹس کو Microsoft Foundry میں بڑھایا، اور یہ سبق انہیں ایک ہی ورک سٹیشن پر کم کرتا ہے۔ اگلا سبق تعین شدہ ایجنٹس کو محفوظ رکھنے پر توجہ دیتا ہے۔
ڈس کلیمر: یہ دستاویز AI ترجمہ سروس Co-op Translator کے ذریعے ترجمہ کی گئی ہے۔ جبکہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنے مادری زبان میں مستند ماخذ سمجھی جائے گی۔ حساس معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم قبول نہیں کرتے۔