![]()
اس کورس کے اب تک کے مراحل میں آپ نے ایسے ایجنٹس بنائے ہیں جو آپ کے لیپ ٹاپ پر، نوٹ بک کے اندر، az login اور چند ماحولیاتی متغیرات کے ذریعے چلتے ہیں۔ یہ سیکھنے کا بالکل درست طریقہ ہے۔ لیکن یہ صحیح طریقہ نہیں ہے کہ ہزاروں صارفین جن پر آپ کا ایجنٹ منحصر ہے، انہیں 3 بجے صبح چلنا چاہیے۔
یہ سبق “یہ میرے مشین پر چلتا ہے” اور “یہ قابل اعتماد اور معقول لاگت پر پروڈکشن میں چلتا ہے” کے درمیان خلیج کے بارے میں ہے۔ ہم اس خلیج کو مائیکروسافٹ فاؤنڈری اور مائیکروسافٹ فاؤنڈری ایجنٹ سروس کے ذریعے بند کرتے ہیں، اور ہم ایسا ایک حقیقی کسٹمر سپورٹ ایجنٹ بنا کر کرتے ہیں جس میں ٹولز، بازیافت، میموری، تشخیص، اور نگرانی شامل ہیں۔
یہ سبق مندرجہ ذیل موضوعات کا احاطہ کرے گا:
اس سبق مکمل کرنے کے بعد، آپ جانیں گے کہ کیسے:
یہ سبق فرض کرتا ہے کہ آپ نے پچھلے اسباق مکمل کر لیے ہیں اور آپ ان چیزوں میں آرام دہ ہیں:
آپ کو مزید ضرورت ہوگی:
az login)۔requirements.txt۔ایک پروٹوٹائپ ایجنٹ اور ایک پروڈکشن ایجنٹ وہی بنیادی لوپ شیئر کرتے ہیں — سوچنا، ٹولز کال کرنا، جواب دینا۔ جو چیز بدلتی ہے وہ اس لوپ کے ارد گرد سب کچھ ہوتا ہے۔ ماڈل ممکنہ طور پر پروڈکشن ایجنٹ کا صرف 20٪ ہے؛ باقی 80٪ آپریشنل ڈھانچہ ہے۔
| تشویش | پروٹوٹائپ | پروڈکشن |
|---|---|---|
| ہوسٹنگ | آپ کے نوٹ بک میں چلتا ہے | ہوسٹڈ سروس کے طور پر چلتا ہے، ورژنڈ اور رول آؤٹ کیا جاتا ہے |
| شناخت | آپ کا az login ٹوکن |
منیجد شناخت جس میں محدود RBAC ہے |
| حالت | یادداشت میں، ری اسٹارٹ پر ختم | بیرونی (تھریڈ اسٹور، میموری سروس) |
| ناکامی | آپ کو ٹریسبیک نظر آتا ہے | ریٹریز، فال بیکس، ڈیڈ لیٹر، الرٹس |
| لاگت | “یہ چند سینٹس ہیں” | ہر درخواست کے حساب سے ٹریک کیا جاتا ہے، راؤٹ کیا جاتا ہے، کیش کیا جاتا ہے، بجٹ ہوتا ہے |
| معیار | آپ نتائج کا جائزہ لیتے ہیں | ہر ریلیز سے پہلے خودکار تشخیص کی جاتی ہے |
| اعتماد | آپ ہر عمل کی منظوری دیتے ہیں | پالیسی + انسانی مداخلت خاص خطرناک عمل کے لیے |
اس جدول کو ذہن میں رکھیں۔ نیچے ہر سیکشن ان روؤں میں سے ایک سے متعلق ہے۔
آپ تین نمونے اکثر مل کر استعمال کریں گے۔
ایجنٹ آبجیکٹ آپ کی درخواست کے عمل کے اندر رہتا ہے۔ آپ کا کوڈ براہ راست ماڈل فراہم کنندہ کو کال کرتا ہے؛ ریژنینگ لوپ آپ کی سروس میں چلتا ہے۔ یہی ہر پچھلے سبق کا طریقہ تھا۔
ایجنٹ مائیکروسافٹ فاؤنڈری میں بطور ریسورس رجسٹر ہوتا ہے. فاؤنڈری ریژنینگ لوپ کی میزبانی کرتا ہے، تھریڈز محفوظ کرتا ہے، مواد کی حفاظت اور RBAC نافذ کرتا ہے، اور ایجنٹ کو فاؤنڈری پورٹل میں ظاہر کرتا ہے۔ آپ کی ایپ ایک ہلکی کلائنٹ بن جاتی ہے جو تھریڈز بناتی ہے اور جوابات پڑھتی ہے۔
متعدد ایجنٹس (اور ٹولز) کو ایک گراف میں جوڑا جاتا ہے جس میں واضح کنٹرول فلو ہوتا ہے — تسلسل کے مراحل، شاخ بندی، انسانی منظوری کے نودز، اور دیرپا چیک پوائنٹس جو رک سکتے ہیں اور دوبارہ شروع ہو سکتے ہیں۔ یہ مائیکروسافٹ ایجنٹ فریم ورک کی ورک فلو کی صلاحیت ہے جو تعیناتی کے اسکیل پر لاگو ہوتی ہے۔
flowchart TB
subgraph P1[کلائنٹ-میزبان]
A1[آپ کی ایپ کا عمل] --> M1[ماڈل فراہم کنندہ]
end
subgraph P2[میزبان ایجنٹ]
A2[پتلا کلائنٹ] --> F2[فاؤنڈری ایجنٹ سروس]
F2 --> M2[ماڈل + ٹولز + تھریڈ اسٹور]
end
subgraph P3[ایجنٹ ورک فلو]
A3[آرکیسٹریٹر] --> S1[ٹریاج ایجنٹ]
S1 --> S2[ریزولور ایجنٹ]
S2 --> H[انسانی منظوری کا نوڈ]
H --> S3[ایکشن ایجنٹ]
end
ایجنٹ کی تعیناتی ایک وقتی push نہیں بلکہ ایک لوپ ہے، اور یہ سافٹ ویئر ریلیز سائیکل جیسا لگتا ہے کیونکہ یہ بالکل وہی ہے۔
flowchart LR
Create[تخلیق کریں / مصنف] --> Version[ورژن]
Version --> Evaluate[آف لائن جانچیں]
Evaluate -->|دروازہ پاس کرتا ہے| Deploy[ہوسٹ کیا ہوا تعینات کریں]
Evaluate -->|دروازہ ناکام ہو جاتا ہے| Create
Deploy --> Observe[آن لائن مشاہدہ کریں]
Observe --> Improve[ناکامیاں جمع کریں]
Improve --> Create
Deploy --> Retire[پرانا ورژن ریٹائر کریں]
کلیدی خیال، جو سبق 10 سے لیا گیا ہے: آف لائن تشخیص ایک گیٹ ہے، نہ کہ بعد کی سوچ۔ نیا ایجنٹ ورژن تبھی جاری ہوتا ہے جب وہ آپ کی تشخیصی حدوں کو پار کر لے۔ آن لائن مشاہدہ پذیری پھر حقیقی دنیا کی ناکامیاں آپ کے آف لائن ٹیسٹ سیٹ میں واپس بھیجتی ہے۔ یہ پورا لوپ ہے۔
ایک ایجنٹ کا اسکیلنگ بے ریاست ویب API سے مختلف ہے، کیونکہ ہر درخواست متعدد مہنگے ماڈل اور ٹول کالز کر سکتی ہے۔ چار تکنیکیں زیادہ تر بوجھ اٹھاتی ہیں۔
بے ریاست درخواست کی ہینڈلنگ۔ اپنے عمل کی میموری میں کسی صارف کی حالت نہ رکھیں۔ گفتگو کے تھریڈز کو فاؤنڈری تھریڈ اسٹور یا میموری سروس میں محفوظ کریں تاکہ کوئی بھی انسٹانس کسی بھی درخواست کو ہینڈل کر سکے۔ یہی آپ کو افقی پیمانے تک جانے دیتا ہے — انسٹانسز بڑھائیں، کوئی اسٹکی سیشن نہیں۔
ماڈل راؤٹنگ۔ ہر درخواست کو آپ کے سب سے زیادہ قابل اور مہنگے ماڈل کی ضرورت نہیں ہوتی۔ آسان درخواستوں — ارادے کی درجہ بندی، مختصر حقائق کے جوابات — کو چھوٹے اور تیزی سے ماڈل کی طرف بھیجیں، اور بڑے ماڈل کو اصل استدلال کے لیے محفوظ رکھیں۔ فاؤنڈری کا ماڈل راؤٹر یہ آپ کے لیے کر سکتا ہے، یا آپ خود ایک ہلکا پھلکا کلاسفائر بنا سکتے ہیں۔ آپ لیب میں DIY ورژن بنائیں گے۔
جواب کیشنگ۔ بہت سے سپورٹ سوالات قریب بالکل یکساں ہوتے ہیں (“میں اپنا پاس ورڈ کیسے ری سیٹ کروں؟”)۔ عام سوالات کے جوابات کو کیش کریں اور بغیر ماڈل کو ہٹائے انہیں فراہم کریں۔ معمولی کیش ہٹ ریٹ بھی لاگت اور تاخیر کو نمایاں طور پر کم کرتی ہے۔
ہم وقت سازی اور بیک پریشر۔ ماڈل فراہم کنندگان کی حدیں ہوتی ہیں۔ اپنی ہم وقت سازی کو محدود کریں، ایکسپونینشل بیک آف کے ساتھ ریٹریز کا استعمال کریں، اور خوبصورتی سے ناکام ہوں (قطار میں “ہم کام کر رہے ہیں” جواب 500 سے بہتر ہے)۔
flowchart LR
Q[صارف کا سوال] --> C{کیش ہٹ؟}
C -->|جی ہاں| R[کیش شدہ جواب واپس کریں]
C -->|نہیں| Router{پیچیدگی؟}
Router -->|سادہ| SLM[چھوٹا ماڈل]
Router -->|پیچیدہ| LLM[بڑا ماڈل]
SLM --> Out[جواب]
LLM --> Out
Out --> Store[کیش + ٹریس]
آپ وہ نہیں چلا سکتے جو آپ نہیں دیکھ سکتے۔ سبق 10 میں بیان کیا گیا ہے، مائیکروسافٹ ایجنٹ فریم ورک OpenTelemetry ٹریسز قدرتی طور پر خارج کرتا ہے — ہر ماڈل کال، ٹول کال، اور آرکیسٹریشن کا مرحلہ ایک اسپین بن جاتا ہے۔ پروڈکشن میں آپ وہ اسپینز مائیکروسافٹ فاؤنڈری (یا کسی بھی OTel-مطابق بیک اینڈ) کو بھیجتے ہیں تاکہ آپ کر سکیں:
from agent_framework.observability import get_tracer
tracer = get_tracer()
with tracer.start_as_current_span("support_request") as span:
span.set_attribute("customer.tier", "enterprise")
span.set_attribute("routed.model", "gpt-5-nano")
# ایجنٹ کی عملداری خود بخود اس اسپین کے اندر ٹریس کی جاتی ہے
customer.tier اور routed.model جیسے خصائص ایک ٹریس کی دیوار کو سوالات کے قابل بناتے ہیں (“کیا انٹرپرائز صارفین کو بار بار چھوٹے ماڈل کی طرف بھیجا جا رہا ہے؟”)۔
پروڈکشن ایجنٹس میں لاگت ٹوکنز کی غالب ہوتی ہے۔ تین اقدامات سب سے زیادہ اثر رکھتے ہیں:
تشخیصی گیٹس اور لاگت کے کنٹرول ایک ہی ترتیب کو دو زاویوں سے دیکھتے ہیں: تشخیص آپ کو معیار کی حد بتاتی ہے، راؤٹنگ اور کیشنگ آپ کو اس حد کی لاگت کے قریب رکھتی ہے۔
حکمرانی۔ ہوسٹڈ ایجنٹس فاؤنڈری کی RBAC، مواد کی حفاظت، اور آڈٹ لاگنگ وراثت میں لیتے ہیں۔ ہر ایجنٹ کو کم سے کم مراعات کے ساتھ ایک منیجد شناخت دیں — صرف نالج بیس پڑھنے کی اجازت، ٹکٹنگ API کا محدود استعمال، اس سے زیادہ کچھ نہیں۔
انسانی مداخلت۔ کچھ عمل اتنے اہم ہوتے ہیں کہ انہیں مکمل خودکار نہیں کیا جا سکتا — ریفنڈ جاری کرنا، اکاؤنٹ حذف کرنا، قانونی ٹیم کو مسئلہ بڑھانا۔ مائیکروسافٹ ایجنٹ فریم ورک منظوری مطلوبہ ٹولز کی حمایت کرتا ہے: ایجنٹ عمل کی تجویز دیتا ہے، عمل رک جاتا ہے، انسان منظوری دیتا ہے یا رد کرتا ہے، اور ورک فلو دوبارہ شروع ہوتا ہے۔ آپ نے اس ابتدائی چیز کو سبق 6 میں دیکھا تھا؛ یہاں آپ اسے تعینات کرتے ہیں۔
پروڈکشن میں MCP۔ MCP آپ کے ایجنٹ کو بیرونی ٹولز ایک معیاری انٹرفیس کے ذریعے استعمال کرنے دیتا ہے۔ پروڈکشن میں، ہر MCP سرور کو ایک غیر معتبر سرحد سمجھیں: سرور ورژن کو پِن کریں، اسے محدود شناخت کے ساتھ چلائیں، اس کے آؤٹ پٹس کی تصدیق کریں، اور کبھی بھی اس کے لیے خفیہ معلومات ظاہر نہ کریں۔ MCP سرور ایک انحصار ہے، اور انحصارات کو پیچ، آڈٹ، اور ریٹ محدود کیا جاتا ہے۔
flowchart TB
subgraph Dev[ترقیاتی آرکیٹیکچر]
D1[نوٹ بک] --> D2[ایجنٹ فریم ورک]
D2 --> D3[ماڈل فراہم کنندہ]
D2 --> D4[مقامی آلات]
end
subgraph Deploy[تعیناتی آرکیٹیکچر]
E1[CI پائپ لائن] --> E2[جانچ کا دروازہ]
E2 -->|پاس| E3[فاؤنڈری ایجنٹ سروس]
E3 --> E4[ورژینڈ ہوسٹڈ ایجنٹ]
end
subgraph Run[رن ٹائم آرکیٹیکچر]
F1[کلائنٹ ایپ] --> F2[ہوسٹڈ ایجنٹ]
F2 --> F3[ماڈل روٹر]
F2 --> F4[Azure AI سرچ RAG]
F2 --> F5[میموری سروس]
F2 --> F6[MCP آلات]
F2 --> F7[OTel -> فاؤنڈری ٹریسنگ]
F2 --> F8[انسانی منظوری]
end
یہ تین ڈایاگرامز — ترقی، تعیناتی، رن ٹائم — اسی ایجنٹ کے زندگی کے تین مراحل ہیں۔ اگلی لیب آپ کو اسے بنانے کے ذریعے لے کر جائے گی۔
کھولیں code_samples/16-python-agent-framework.ipynb اور اسے ابتدا سے اختتام تک مکمل کریں۔ آپ ایک Contoso کسٹمر سپورٹ ایجنٹ اسمبلی کریں گے جس میں ہر پروڈکشن کا پہلو شامل ہوگا:
نوٹ بک اس طرح منظم ہے کہ ہر پروڈکشن کا پہلو ایک خود مختار، چلنے والا سیکشن ہے۔ اس کا دل ہے راؤٹنگ پلس کیشنگ درخواست ہینڈلر:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. جب ممکن ہو کیش سے سروس فراہم کریں۔
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. لاگت کو کنٹرول کرنے کے لیے پیچیدگی کے حساب سے راستہ منتخب کریں۔
model = "gpt-5-nano" if is_simple(query) else "gpt-5-mini"
# 3. آبزرویبیلٹی کے لیے ایجنٹ کو ٹریس اسپین کے اندر چلائیں۔
with tracer.start_as_current_span("support_request") as span:
span.set_attribute("routed.model", model)
span.set_attribute("customer.id", customer_id)
response = await support_agent.run(query, model=model)
# 4. کیش کریں اور واپس کریں۔
response_cache.set(normalize(query), response.text)
return response.text
وہ تشخیصی گیٹ جو ریلیز کی حفاظت کرتا ہے یوں دکھتا ہے:
async def evaluation_gate(agent, test_cases, threshold: float = 0.8) -> bool:
passed = 0
for case in test_cases:
result = await agent.run(case["input"])
if score_response(result.text, case["expected"]) >= 0.8:
passed += 1
pass_rate = passed / len(test_cases)
print(f"Evaluation pass rate: {pass_rate:.0%} (gate: {threshold:.0%})")
return pass_rate >= threshold # صرف اس صورت میں تعینات کریں جب گیٹ پاس ہو جائے
ہر لائن پڑھیں — نوٹ بک ابتدائی چیزوں کو جان بوجھ کر چھوٹا رکھتی ہے تاکہ کچھ بھی فریم ورک کال کے پیچھے چھپا نہ ہو۔
اوپر دیا گیا تشخیصی گیٹ آپ کے ایجنٹ آبجیکٹ کے خلاف آف لائن چلتا ہے۔ ایک بار ایجنٹ کو ہوسٹڈ ایجنٹ کے طور پر تعینات کرنے کے بعد، آپ کو ایک اور، حتیٰ کہ سستا، چیک چاہیے: کیا تعینات اینڈ پوائنٹ واقعی جواب دے رہا ہے؟
“کامیابی کے ساتھ” تعیناتی صرف یہ ثابت کرتی ہے کہ کنٹرول پلیٹ نے تعریف قبول کر لی — یہ ثابت نہیں کرتی کہ ایجنٹ جواب دیتا ہے۔ کسی انحصار کا نہ ہونا، خراب ماڈل راؤٹنگ، یا میعاد ختم شدہ کنکشن سبز تعیناتی چھوڑ سکتے ہیں جو کچھ بھی واپس نہیں دیتی۔ ایک سموک ٹیسٹ سیکنڈوں میں یہ پکڑ لیتا ہے، ہر تعیناتی پر، مکمل تشخیص کی لاگت کے بغیر۔
یہ ریپوزٹری تیار شدہ سموک-ٹیسٹ پائپ لائن فراہم کرتی ہے جو AI Smoke Test GitHub ایکشن پر مبنی ہے:
tests/lesson-16-smoke-tests.json میں Contoso سپورٹ ایجنٹ کے لیے پرامپٹس اور دعوے شامل ہیں (زمینی پالیسی جوابات، آرڈر لوک اپ، موضوع پر رہنا، اور کثیر مرحلہ وار تھریڈ کنٹینیوٹی)۔ دیگر اسباق کے کیٹلاگ بھی اسی کے ساتھ موجود ہیں — دیکھیں tests/README.md۔.github/workflows/smoke-test.yml Azure OIDC سے لاگ ان کرتا ہے اور ہر پرامپٹ کو ایجنٹ کے ریسپانسز اینڈ پوائنٹ پر POST کرتا ہے، اور کسی بھی دعوے کی ناکامی پر کام کو ناکام کر دیتا ہے۔- name: Smoke-test hosted agent
uses: JFolberth/ai-smoketest@v1
with:
project_endpoint: $
agent_name: ContosoSupportAgent
tests_file: tests/lesson-16-smoke-tests.json
اپنا ایجنٹ تعینات کرنے کے بعد اسے Actions ٹیب سے چلائیں، اپنے Foundry پروجیکٹ اینڈپوائنٹ اور ایجنٹ کے نام کے ساتھ۔ فیڈریٹیڈ شناخت کو Foundry پروجیکٹ اسکوپ پر Azure AI User رول کی ضرورت ہوتی ہے۔ پرتوں کو اہرام کے طور پر سوچیں: دھواں ٹیسٹ (کیا پہنچا اور جواب دے رہا ہے؟) ہر تعیناتی پر چلتے ہیں، آف لائن تشخیص (کیا شپ کرنے کے لیے کافی اچھا ہے؟) فروغ سے پہلے چلتی ہے، اور آن لائن تشخیص (یہ جنگل میں کیسا کر رہا ہے؟) مسلسل چلتی رہتی ہے۔
اسائنمنٹ پر جانے سے پہلے اپنی سمجھ کی جانچ کریں۔
1. ایک پروڈکشن ایجنٹ میں تقریباً کتنا ‘ماڈل’ ہوتا ہے، اور باقی کیا ہوتا ہے؟
2. آپ کب کلائنٹ ہوسٹڈ ایجنٹ کے بجائے ہوسٹڈ ایجنٹ کو منتخب کریں گے؟
3. ایک قابل توسیع ایجنٹ کو اپنی پراسیس میموری میں بے حالت کیوں ہونا چاہیے؟
4. ماڈل راؤٹنگ کس مسئلے کو حل کرتی ہے، اور یہ تشخیص سے کیسے متعلق ہے؟
5. “تشخیصی گیٹ” کیا ہے اور یہ لائف سائیکل میں کہاں آتا ہے؟
6. پروڈکشن میں MCP سرور کو غیر معتبر حد کے طور پر کیوں ٹریٹ کیا جانا چاہیے؟
7. کون سا واحد تبدیلی عموماً پروڈکشن ایجنٹ کی لاگت پر سب سے زیادہ اثر ڈالتی ہے، اور کیوں؟
8. span attributes جیسے customer.tier اور routed.model مشاہداتی صلاحیت میں کیا کردار ادا کرتے ہیں؟
لیب سے کسٹمر سپورٹ ایجنٹ لیں اور اسے ایک خاص صورتحال کے لیے مضبوط بنائیں: ایک SaaS کمپنی کے لیے سبسکرپشن بلنگ سپورٹ ایجنٹ۔
آپ کی جمع کرائی گئی چیز میں ہونا چاہیے:
get_subscription_status, get_invoice, اور issue_credit (50 ڈالر سے زیادہ کریڈٹ کے لیے انسانی منظوری چاہیے)۔ایک مختصر پیراگراف (مارک ڈاؤن سیل میں) لکھیں جس میں وضاحت ہو کہ آپ نے کون سا ماڈل راؤٹنگ رول منتخب کیا اور آپ اسے حقیقی ٹریفک کے ساتھ کیسے ویلیڈیٹ کریں گے۔ ایک درست جواب نہیں ہے — آپ کا جائزہ اس بات پر لیا جا رہا ہے کہ کیا پروڈکشن کے معاملات منظم اور مربوط ہیں۔
اس سبق میں آپ نے ایجنٹ کو پروٹوٹائپ سے پروڈکشن میں مائیکروسافٹ Foundry کے ساتھ منتقل کیا:
اگلا سبق الٹ راستہ اختیار کرتا ہے: کلاؤڈ میں ایجنٹس کو بڑا کرنے کی بجائے، آپ انہیں کم کر کے ایک ہی ڈویلپر مشین پر پورے طور پر لوکل چلائیں گے۔
Building Computer Use Agents (CUA)
ڈس کلیمر: یہ دستاویز AI ترجمہ سروس Co-op Translator کے ذریعے ترجمہ کی گئی ہے۔ جبکہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز اپنے مادری زبان میں مستند ماخذ سمجھی جائے گی۔ حساس معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم قبول نہیں کرتے۔