![]()
ဒီအတန်း အထိ သင်သည် သင့်လပ်တော့ပေါ်တွင်၊ သတင်းစာမှတ်တမ်းထဲတွင်၊ az login နှင့် ပတ်ဝန်းကျင်အပြောင်းအလဲအနည်းငယ်ဖြင့် တက်ကြွစွာ လည်ပတ်သော ဧည့်သည်များကို တည်ဆောက်ခဲ့သည်။ ၎င်းသည် သင်ယူရန် သင့်တော်သည့်နည်းလမ်းဖြစ်သည်။ မနက် ၃ နာရီတွင် သောင်းပေါင်းများစွာသော ဖောက်သည်များ ယုံငြိမ်စွာပေါ်မူတည်သည့် ဧည့်သည်တစ်ခုကို လည်ပတ်ရန် သင့်တော်သော နည်းလမ်းမဟုတ်ပါ။
ဒီသင်ခန်းစာမှာ “ကျွန်ုပ်၏ စက်မှာ အလုပ်လုပ်တယ်” နဲ့ “ထုတ်လုပ်မှုမှာ ယုံကြည်စိတ်ချစွာနဲ့ စျေးသက်သက်သာသာ အလုပ်လုပ်တယ်” ဆိုတဲ့အကြား ရှားပါးတဲ့ အချက်ကို ဆက်စပ်နေပါတယ်။ ကျွန်ုပ်တို့မှာ Microsoft Foundry နဲ့ Microsoft Foundry Agent Service ကို အသုံးပြုပြီး၊ စွန့်စားမှုကိရိယာများ၊ ပြန်ကြားမှု၊ မှတ်ဉာဏ်၊ အကဲဖြတ်မှု နှင့် ကြည့်ရှုမှု ပါဝင်တဲ့ တကယ့် ဖောက်သည်ဆက်သွယ်ရေး ဧည့်သည်တစ်ဦးကို တည်ဆောက်ခြင်းဖြင့် အဲဒီအကွာအဝေးကို ပိတ်ဆို့မှာ ဖြစ်ပါတယ်။
ဒီသင်ခန်းစာမှာ ပါဝင်သည့်အချက်များမှာ -
ဒီသင်ခန်းစာပြီးဆုံးသည်နှင့် သင်သိထားရမည့်အချက်များမှာ -
ဒီသင်ခန်းစာသည် ယခင်သင်ခန်းစာများ ပြီးစီးပြီးနှင့် အောက်ပါအချက်များရှိကြောင်း မျှော်လင့်သည်။
သင်လိုအပ်မည့်အချက်များမှာ -
az login)။requirements.txt ထဲက package များ။နမူနာဧည့်သည်နဲ့ ထုတ်လုပ်မှုပေါ်တွင် အသုံးပြုသော ဧည့်သည်သည် အခြေခံ loop တူညီသည် — အကြောင်းရှာဖွေခြင်း၊ ကိရိယာခေါ်ခြင်း၊ ပြန်ဖြေခြင်း။ Loop အပြင်တွင် ပါဝင်သည့် အရာအားလုံးက ပြောင်းလဲသည်။ ပုံစံသည် ထုတ်လုပ်မှု ဧည့်သည်တစ်ဦး၏ ၂၀% ခန့်သာဖြစ်ပြီး၊ ၈၀% ကျော်သည် စစ်ဆင်ရေး skeleton ဖြစ်သည်။
| စိုးရိမ်စရာ | နမူနာ | ထုတ်လုပ်မှု |
|---|---|---|
| တည်နေရာ | သင့် notebook ထဲတွင် လည်ပတ်သည် | သင့်တပ်ဆင်ထားသော ဝန်ဆောင်မှုအနေနဲ့ လည်ပတ်ပြီး ဗားရှင်းထုတ်နှင့် ပြန်လည်ဝင်တင်သည် |
| သက်သေခံလက္ခဏာ | သင့် az login token |
Scoped RBAC နဲ့ ချိတ်ဆက်ထားသော managed identity |
| အခြေအနေ | စိတ်ပိုင်းဖြစ်ပြီး ပြန်စတင်သည့်အခါ ဆုံးရှုံးသည် | ပစ္စည်းပြင်ပ (thread store, memory service) |
| တိုက်ခိုက်မှု | traceback ကို တွေ့မိသည် | မရောက်ဖူးစွာ ထပ်မံကြိုးစားခြင်း၊ fallbacks၊ dead-letter, alerts |
| ကုန်ကျစရိတ် | “အနည်းငယ်သာ” | တောင်းဆိုမှု အလိုက် မှတ်တမ်းပြုခြင်း၊ ဦးတည် နယ်မြေ၊ cache ထိန်းချုပ်မှု၊ budget ထိန်းချုပ်မှု |
| အရည်အသွေး | output ကို မျက်စိဖြင့် တွက်ချက်သည် | ထုတ်လွှင့်ခြင်း မတိုင်မီ အလိုအလျောက် အကဲဖြတ်သည် |
| ယုံကြည်မှု | လုပ်ဆောင်မှု တစ်ခုချင်း အတည်ပြုသည် | ညွှန်ကြားချက် + အန္တရာယ်မြင့် လုပ်ငန်းများအတွက် လူထဲ ပါဝင်သည် |
ဒီဇယားကို မှတ်ထားပါ။ အောက်ပါပိုင်းတိုင်းသည် ဒီဇယားထဲက အတန်းတစ်ခုနှင့် ကိုက်ညီပါတယ်။
သင် အသုံးပြုမည့် ပုံစံသုံးမျိုးရှိပြီး အချို့ကို ပေါင်းစပ်အသုံးပြုလေ့ရှိသည်။
ဧည့်သည်အရာဝတ္တုသည် သင့် အက်ပ်ပလီကေးရှင်းနေရာအတွင်း နေထိုင်သည်။ သင့်ကုဒ်သည် မော်ဒယ်ပေးသွင်းသူကို တိုက်ရိုက်ခေါ်သည်။ အကြောင်းရှာဖွေမှု loop သည် သင့်ဝန်ဆောင်မှုအတွင်း လည်ပတ်သည်။ ယခင်သင်ခန်းစာ တစ်ခုချင်းစီက လုပ်နေတဲ့နည်းပမာဏပါ။
ဧည့်သည်သည် Microsoft Foundry တွင် အရင်းအမြစ် အနေနဲ့ မှတ်ပုံတင်ထားသည်။ Foundry သည် အကြောင်းရှာဖွေရမှု loop ကို ထိန်းသိမ်းထားပြီး thread များကို သိုလှောင်သည်၊ အကြောင်းအရာလုံခြုံမှုနှင့် RBAC ကို ကာကွယ်ပေးသည်၊ ဧည့်သည်ကို Foundry portal တွင် မြင်သာအောင် ပြုလုပ်သည်။ သင့် အက်ပ်သည် သေးငယ်သော client တစ်ခုဖြစ်ပြီး thread များ ဖန်တီး၍ တုံ့ပြန်ချက်များကို ဖတ်ရှုသည်။
လုပ်ဆောင်ချက်များစွာရှိသော ဧည့်သည်များ (နဲ့ ကိရိယာများ) ပါဝင်ပြီး အတည်ပြု ထိန်းချုပ်မှုလမ်းကြောင်းဖြင့် တစ်ကြောင်းဆက်လိုက် ပြုလုပ်မှု, ရွေးချယ်မှုများ၊ လူ့ခွင့်ပြုချက်နောက်ခံများ၊ ရပ်နှင့် ပြန်လုပ်နိုင်သော checkpoint များ ပါဝင်သည်။ ၎င်းမှာ Microsoft Agent Framework Workflows စွမ်းဆောင်ရည်ကို တပ်ဆင်မှု သိုက်ငင်၌ ဆက်သုံးခြင်းဖြစ်သည်။
flowchart TB
subgraph P1[client-ပိုင်ဆိုင်မှု]
A1[သင့်အက်ပ်လုပ်ထုံးလုပ်နည်း] --> M1[မော်ဒယ်ပေးသွင်းသူ]
end
subgraph P2[တည်ရှိသောအေးဂျင့်]
A2[ပေါ့ပီးသုံးသော client] --> F2[Foundry အေးဂျင့် ၀န်ဆောင်မှု]
F2 --> M2[မော်ဒယ် + ကိရိယာများ + Thread ဆိုင်]
end
subgraph P3[အေးဂျင့် အလုပ်စဉ်]
A3[စီမံအုပ်ချုပ်သူ] --> S1[စစ်ဆေးခြင်းအေးဂျင့်]
S1 --> S2[ဖြေရှင်းသူ အေးဂျင့်]
S2 --> H[လူ့အတည်ပြုမှု ဆိပ်ကမ်း]
H --> S3[လုပ်ဆောင်မှု အေးဂျင့်]
end
ဧည့်သည် တပ်ဆင်ခြင်းသည် တစ်ကြိမ်တည်း push တစ်ခုမဟုတ်ပါ။ ၎င်းမှာ loop ဖြစ်ပြီး ဆော့ဖ်ဝဲ မိတ်ဆက်မှု ကဲ့သို့ပဲ ဖြစ်သည်။
flowchart LR
Create[ဖန်တီးသူ / စာရေးသူ] --> Version[ဗားရှင်း]
Version --> Evaluate[offline တွင် သုံးသပ်မည်]
Evaluate -->|တံဆိပ်ခတ်ကိုဖြတ်သန်းသည်| Deploy[hosted ပေါ်တွင် မိတ်ဆက်သည်]
Evaluate -->|တံဆိပ်ခတ်မဖြတ်နိုင်| Create
Deploy --> Observe[online တွင် ကြည့်ရှုသည်]
Observe --> Improve[မအောင်မြင်မှုများစုဆောင်းသည်]
Improve --> Create
Deploy --> Retire[အဟောင်းဗားရှင်းကို ပယ်ဖျက်သည်]
အဓိက ဖော်ပြချက်မှာ Lesson 10 မှ ပြန်လည်ယူဆောင်လာတာဖြစ်ပြီး - offline အကဲဖြတ်ခြင်းသည် gate ဖြစ်ပြီး နောက်ဆုံးတွင် ကြည့်သော အကြောင်းအရာ မဟုတ်ပါ။ ဧည့်သည်ဗားရှင်းအသစ်သည် သင့်အကဲဖြတ်စံချိန်များ ဖြတ်ကာ ဖြစ်မှ မထုတ်လွှင့်ပါ။ online ကြည့်ရှုခြင်းက အမှားများကို offline စမ်းသပ်ချက်များထဲ ပြန်ထည့်ပေးသည်။ ၎င်းမှာ အစွန်းရောက်တဲ့ loop ဖြစ်သည်။
ဧည့်သည်တစ်ဦးကို တိုးချဲ့ခြင်းသည် stateless web API ဆင့် မတူပါ၊ တောင်းဆိုမှုတိုင်းမှာ မော်ဒယ်ကောအနည်းငယ်နှင့် ကိရိယာခေါ်ဆိုမှုများ တစ်ပြိုင်နက် ရှိတတ်သည်။ နည်းလမ်းလေးမျိုးက များသော အလုပ်ကို ဆက်လက်ထမ်းဆောင်သည်။
Stateless တောင်းဆိုမှုကို ကိုင်တွယ်မှု။ သင့် process မှာ အသုံးပြုသူ အခြေအနေမပါတဲ့အချိန်သိမ်းဆည်းပါ။ Foundry thread store သို့မဟုတ် memory service မှာ စကားပြော thread များ သိုလှောင်ထား၍ စက်တင်တစ်ခုမဆို တောင်းဆိုမှု တစ်ခုခုကို ကိုင်တွယ်နိုင်ပါစေ။ ၎င်းသည် တန်းတူထပ်တူဖြင့် တိုးချဲ့ရရန် အထောက်အကူဖြစ်သည် — instance များ ထပ်ထည့်နိုင်ပြီး, sticky sessions မလိုအပ်ပါ။
မော်ဒယ် ဦးတည်မှု။ တောင်းဆိုမှုအားလုံးသည် သင့်ရဲ့ အမြင့်ဆုံး စွမ်းဆောင်ရည် (နှင့် အကြီးဆုံးကုန်ကျစရိတ်) ရှိသော မော်ဒယ်လိုအပ်တာ မဟုတ်ပါ။ ရိုးရှင်းတဲ့ တောင်းဆိုမှုများ — ရည်ရွယ်ချက် ခွဲခြားမှု၊ အတိုချုပ် ပြည့်စုံတဲ့ ဖြေဆိုချက်များ — သေးငယ်၊ မြန်သော မော်ဒယ်ကို ယူ၍ သေချာသော reasoning အတွက် မော်ဒယ်ကြီးကို ထားပါ။ Foundry ရဲ့ Model Router က ဒီအလုပ်ကို လုပ်နိုင်သည်၊ သို့မဟုတ် သင်ကိုယ်တိုင် classifier မျိုးသေးသားတစ်ခု ဖန်တီးနိုင်သည်။ သင် lab မှာ DIY မော်ဒယ် တည်ဆောက်မယ်။
တုံ့ပြန်မှု cache ထိန်းချုပ်မှု။ ပံ့ပိုးမှုမေးခွန်းများ များစွာသည် အလွဲတူ (“နမူနာ - ကွန်ပျူတာ password ပြန်လည်သတ်မှတ်နည်း?”) ဖြစ်သည်။ အများဆုံးမေးခွန်းများအတွက် ဖြေချက်များကို cache ထဲသို့ သိမ်းထားပြီး မော်ဒယ်ကို မထိခိုက်ဘဲ ဖြေဆိုနိုင်သည်။ စနစ်တကျ cache ထိခိုက်မှုက တန်ဖိုးရှိပြီး စရိတ် နှင့် အချိန်က္ကာလကို လျော့ချသည်။
Concurrency နှင့် backpressure။ မော်ဒယ်ပေးသွင်းသူများတွင် rate limit များ ရှိသည်။ ကိုင်တွယ်မှုကို ကန့်သတ်ထားကာ exponential backoff နှင့် retry များ သုံးပါ၊ ရှိမရှိ gracefully failure တင်ပါ (queued “အလုပ်လုပ်နေပါပြီ” တုံ့ပြန်မှုသည် ၅၀၀ error ကို ကျော်တက်သည်)။
flowchart LR
Q[အသုံးပြုသူ မေးခွန်း] --> C{Cache ထဲတွင် ရှိပါသလား?}
C -->|ဟုတ်ကဲ့| R[Cache ထဲမှ ဖြေကြားချက် ပြန်ပေးသည်]
C -->|မရှိပါ| Router{အရှုပ်အထွေး?}
Router -->|ရိုးရှင်းသော| SLM[သေးသိမ့်သော မော်ဒယ်]
Router -->|ဆန်းကြယ်သော| LLM[ကြီးမားသော မော်ဒယ်]
SLM --> Out[ဖြေကြားချက်]
LLM --> Out
Out --> Store[Cache + trace]
မမြင်လို့ မစီမံနိုင်ပါ။ သင်ဟာ Lesson 10 မှာ ဖော်ပြထားတဲ့ Microsoft Agent Framework က OpenTelemetry သားများကို နေရာတွင်းထုတ်လွှင့်တယ် — မော်ဒယ်ခေါ်မှု, ကိရိယာခေါ်ဆိုမှု, orchestration အဆင့်တိုင်းက span ဖြစ်လာတယ်။ ထုတ်လုပ်မှုမှာ ထို span များကို Microsoft Foundry (သို့မဟုတ် OTel ကိုက်ညီတဲ့ backend) ဆီ ပို့ပါတယ်၊ ၎င်းက -
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")
# ဒီ span အတွင်းမှာ agent အကောင်အထည်ဖော်မှုကို အလိုအလျောက် လိုက်လံကြည့်ရှုပါတယ်။
customer.tier နဲ့ routed.model ကဲ့သို့ attribute များက တန်းတူကြည့်ရှုမှုများကို အဖြေရှာသည့် မေးခွန်းများ (“စီးပွားရေး ဖောက်သည်များဟာ သေးငယ်သော မော်ဒယ်ဆီ အရင်သွားနေမလား?”) ပြောင်းပေးသည်။
ထုတ်လုပ်မှုဧည့်သည်များတွင် ကုန်ကျစရိတ်သည် token များမှ အများအပြား ဖြစ်သည်။ ထိခိုက်မှုအတိုင်း သုံး lever ရှိသည် -
၁။ ပုံစံကို သင့်တော်စွာရွေးချယ်ခြင်း။ သေးငယ်ပြီး သင့်အကဲဖြတ်မှာဖြတ်ကျော်တဲ့ မော်ဒယ်သည် အကြီးမားပြီး သတ်မှတ်ချက်ဖြတ်ကျော်သော မော်ဒယ်ထက် စျေးသက်သာတတ်သည်။ အကဲဖြတ်မှုကို အသုံးပြုပြီး သေးငယ်သော မော်ဒယ်က လိုအပ်ချက်များ၌လုံလောက်၏ဟု ဆုံးဖြတ်ပါ။ အကြီးမားဆုံးကို အာရုံစိုက် သူ့ရာထူးမှ မရွေးချယ်ပါနှင့်။ ၂။ ခက်ခဲမှုအလိုက် ဦးတည်မှု။ အထက်ဖေါ်ပြခဲ့သလို — ကုန်ကြမ်းမှု ကြီးမားသော မော်ဒယ်များကိုသာ လိုအပ်သော တောင်းဆိုမှုများအတွက် အသုံးပြု။ ၃။ အလွန်ကြီးမားစွာ cache ထိန်းသိမ်းမှု။ သင့်အနေနဲ့ မခေါ်ဖူးတဲ့ မော်ဒယ်ခေါ်မှုက အကြွေးအချိန် အနည်းဆုံး ပါ။
အကဲဖြတ်မှု gate များနဲ့ ကုန်ကျစရိတ် ထိန်းချုပ်မှုဟာ အလေးချိန် နှစ်ဖက်မြင်ခြင်းတခုတည်းပါ၊ အကဲဖြတ်မှုက အရည်အသွေး အထပ် ပြော ပြီး ဦးတည်မှု နှင့် cache က ကုန်ကျစရိတ်ကို အဲ့ဒီ အထပ်သားနီးပါးထားတယ်။
အုပ်ချုပ်မှု။ Hosted Agents သည် Foundry ရဲ့ RBAC၊ အကြောင်းအရာလုံခြုံမှု နှင့် audit များကို လိုက်နာသည်။ ပိုကောင်းလို့ တစ်ဧည့်သည်လုံးကို အနည်းဆုံး အခွင့်အရေးရှိသော managed identity တစ်ခု ပေးပါ — အသိပညာအခြေခံ သဘောတူညီချက်၊ ticketing API ရန် ဆုံးဖြတ်ထားသော 접근၊ တခြားမရှိ။
လူ့ခွင့်ပြုချက် ပါဝင်မှု။ လုပ်ဆောင်ချက် တစ်ချို့သည် တိုက်ရိုက် ဆော့ဖ်ဝဲလ်ဖြင့် သင့်တော်စွာ မလုပ်နိုင်နိုင်ပေ — ပေးချေမှုပြန်လည်ပြုပြင်ခြင်း၊အကောင့်ဖျက်ခြင်း၊ ဥပဒေရေးရာအဖွဲ့ ဆက်သွယ်ခြင်း။ Microsoft Agent Framework သည် အတည်ပြုရန်လိုအပ်သော ကိရိယာများအား ထောက်ပံ့သည် - ဧည့်သည်သည် လုပ်ဆောင်မှု ကို ရှာဖွေ့ပံ့ပိုးပြီး စစ်ဆေးချက်နဲ့ သက်သေပြ၍ လူတစ်ဦး က အတည်ပြုခြင်း သို့မဟုတ် ပယ်ချခြင်း ပြီးနောက် workflow ပြန်လည် ဆက်လက်။
ထုတ်လုပ်မှုတွင် MCP။ MCP သည် ဧည့်သည်အား ပြင်ပကိရိယာများကို စံသတ်မှတ်ထားသော မျက်နှာပြင်မှတဆင့် စားသုံးခွင့်ရှိသည်။ ထုတ်လုပ်မှုတွင် MCP server တစ်ခုစီကို ယုံကြည်မှုမရှိသော အကွာအဝေးအဖြစ်ဆက်ဆံပါ — server ဗားရှင်းအား ပုံမှန်ထားပါ၊ scoped identity ဖြင့် ပြေးဆွဲပါ၊ ထွက်ရှိမှုများကို သေချာစွာ စစ်ဆေးပါ၊ လျှို့ဝှက်ချက်မညှိနှိုင်း ယူပေးခြင်း မရှိစေရန် သတိပြုပါ။ MCP server သည် အချို့သော ဦးစားပေး များဖြစ်ပြီး, အချို့အချိန်ကာလပိုင်းတွေ့နည်း၊ audit လုပ်ကိုင်မှု သို့မဟုတ် rate limit တင်ဆောင်မှု ရှိသည်။
flowchart TB
subgraph Dev[ဖွံ့ဖြိုးရေး စီမံကိန်းအင်္ဂါရပ်]
D1[စာအုပ်တရား] --> D2[ကိုယ်စားလှယ် ဖောက်ပြန်စနစ်]
D2 --> D3[မော်ဒယ် ပံ့ပိုးသူ]
D2 --> D4[တည်နေရာဆိုင်ရာ ကိရိယာများ]
end
subgraph Deploy[ဖြန့်ချိမှု စီမံကိန်းအင်္ဂါရပ်]
E1[CI လမ်းကြောင်း] --> E2[အကဲဖြတ်စနစ်]
E2 -->|ဖြတ်ထားသည်| E3[Foundry ကိုယ်စားလှယ် ဝန်ဆောင်မှု]
E3 --> E4[ဗားရှင်းထည့်ထားသော အိုစတမ်းကိုယ်စားလှယ်]
end
subgraph Run[လည်ပတ်မှု စီမံကိန်းအင်္ဂါရပ်]
F1[ဖောက်သည် အက်ပ်] --> F2[အိုစတမ်းကိုယ်စားလှယ်]
F2 --> F3[မော်ဒယ်လ် လမ်းကြောင်းညှိထားသူ]
F2 --> F4[Azure AI ရှာဖွေ RAG]
F2 --> F5[မှတ်ဉာဏ် ဝန်ဆောင်မှု]
F2 --> F6[MCP ကိရိယာများ]
F2 --> F7[OTel -> Foundry လမ်းကြောင်းစစ်ဆေးမှု]
F2 --> F8[လူသား အတည်ပြုမှု]
end
ဒီ ပုံကြမ်းသုံးခု — ဖွံ့ဖြိုးတိုးတက်မှု၊ တပ်ဆင်ခြင်း၊ runtime — ေတေလင္္႕ ေနာက္ဆုံး ဧည့်သည်တူညီခြင်း။ ပြသနာဖွဲ့ခြင်း lab မှာ ၎င်းကို ဖန်တီးနည်း လေ့လာပါ။
code_samples/16-python-agent-framework.ipynb ကိုဖွင့်၍ အဆုံးသတ်စွာလုပ်ဆောင်ပါ။ သင်သည် Contoso ဖောက်သည် အထောက်အပံ့ ဧည့်သည် ကိုစုပြီး ထုတ်လုပ်မှုဆိုင်ရာ စိုးရိမ်မှုများအားလုံး ပါဝင်စေမည်ဖြစ်သည်။
၁။ ကိရိယာခေါ်ဆိုခြင်း — အမိန့်အခြေနေ ရှာဖွေခြင်းနှင့် အထောက်အပံ့ လျှောက်လွှာဖွင့်ခြင်း။ ၂။ RAG — policy မေးခွန်းများကို knowledge base ကနေ ဖြေဆိုခြင်း (Azure AI Search, notebook က Search အရင်းအမြစ် မလိုရန် in-memory fallback ပါ) ၃။ မှတ်ဉာဏ် — စကားဖြတ်သန်းမှုအတွင်း ဖောက်သည်ကို မှတ်သားထားခြင်း။ ၄။ မော်ဒယ် ဦးတည်မှု — ခက်ခဲမှု အဆင့်ခွဲခြားသူက တောင်းဆိုသောမော်ဒယ်အား သေးသေးလေး သို့မဟုတ် ကြီးကြီးမားမား ဦးတည်သည်။ ၅။ တုံ့ပြန်မှု Cache — မေးခွန်းများ ပြန်မြှောက်သောအခါ cache ကနေ ဖြေဆိုသည်။ ၆။ လူ့ခွင့်ပြုချက် — အမြင့်အန္တရာယ် လုပ်ဆောင်ချက်များအတွက် လူမှ အတည်ပြုချက် လိုအပ်သည်။ ၇။ အကဲဖြတ် လမ်းကြောင်း — သေးငယ်သော offline စမ်းသပ် အခြေအနေနဲ့ ဧည့်သည်အသစ်ကို အကဲဖြတ်ပြီး ထုတ်လွှင့် gate အနေနဲ့ အသုံးပြုသည်။ ၈။ ကြည့်ရှုနိုင်မှု — တောင်းဆိုမှုတိုင်းအတွက် OpenTelemetry tracing ။
နမူနာမှတ်တမ်းကို ပိုင်းခြားထားပြီး တိုက်ရိုက် ပြေးနိုင်သည့် အပိုင်းများဖြစ်စေသည်။ အဓိကမှာ routing နှင့် cache ပါဝင်သော တောင်းဆိုမှုကိုင်တွယ်သူ ဖြစ်သည်။
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. သဘောထားနားလည်မှုအတွက် အေးဂျင့်ကို trace span အတွင်း ဖြည့်ဆော့ပါ။
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
ထုတ်လွှင့်ခြင်းကို ကာကွယ်သော အကဲဖြတ် gate သည် ဒီလိုဖြစ်သည် -
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 # တံခါးပတ်သတ်မှုဖြတ်ဖြတ်ပြီးမှသာ ထည့်သွင်းရန်သာဖြစ်သည်
တစ်ကြောင်းချင်းဖတ်ပါ — notebook က စနစ်တကျ သေးငယ်သည့် primitives များ ထားပြီး framework call အတွက် ဖုံးကွယ်မှု မရှိစေပါ။
အပေါ်ပါ အကဲဖြတ် gate သည် သင့် ဧည့်သည် object ကို offline ပြုလုပ်သည်။ Hosted Agent အဖြစ် တပ်ဆင်ပြီးနောက် သင် လိုအပ်သည့် အခြားကပ်ပြီး ကုန်ကျစရိတ် သိသင့်ဆုံး စစ်ဆေးမှုတစ်ခုရှိပြီး — တပ်ဆင်မှု endpoint သည် မှန်ကန်စွာ ဖြေဆိုလား?
“အောင်မြင်စွာ” တပ်ဆင်ခြင်းသည် တာဝန်ကို လက်ခံတယ်ဆိုတာ သက်သေပြသော်လည်း ၎င်းသည် ဧည့်သည်တုံ့ပြန်တယ်ဆိုတာ သက်သေပြ မထားပါ။ လိုအပ်သည့် dependency မရှိခြင်း၊ မော်ဒယ် routing မှားခြင်း သို့မဟုတ် ပြီးဆုံးသည့် connection တစ်ခုကြောင့် ပြန်မရရှိသော deployment သည် သန့်ရှင်းစွာ deploy လုပ်ပေမယ့် မဖြေဆိုနိုင်ပါ။ smoke test သည် အချိန်အနည်းငယ်အတွင်း၊ တပ်ဆင်မှုတိုင်းတွင်၊ တစ်ကြိမ့်အကဲဖြတ်ခြင်းအကုန်ကျစရိတ်မလိုဘဲ အဲဒီအချက်ကို ဖမ်းယူသည်။
ဒီ repository သည် AI Smoke Test GitHub Action ကို အခြေခံ၍ အသုံးပြုနိုင်တဲ့ smoke-test pipeline တစ်ခုပါဝင်သည်။
tests/lesson-16-smoke-tests.json မှာ Contoso support agent အတွက် prompt နှင့် assertions များ ပါဝင်သည် (မှန်ကန်သော policy ဖြေချက်များ, အမိန့်ရှာဖွေခြင်း, ခေါင်းစဉ်တွင် ကျန်၊ ပြန်ဆက်သွယ်မှု စကားကြိုးတည်ရှိမှု)။ အခြား သင်ခန်းစာများအတွက် အကဲဖြတ်ရန် catalog များလည်း ရှိသည် — ကြည့်ရန် tests/README.md။.github/workflows/smoke-test.yml မှ Azure OIDC ဖြင့် login လုပ်ပြီး တစ်ခုတည်းသော prompt ကို agent Responses endpoint သို့ POST လုပ်သည်၊ assertion ထားမလိုက်လျှင် job ကို ကန့်သတ်သည်။- 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 ပရောဂျက် endpoint နှင့် အေးဂျင့်အမည်ကို ထည့်သွင်းပေးပါ။ ဖက်ဒ်ရေးတက်အိုင်ဒင်တီတီသည် Foundry ပရောဂျက်စကုပ်တွင် Azure AI User အခန်းကဏ္ဍလိုအပ်သည်။ အလွှာများကို ပီရမစ်အဖြစ် သို့မဟုတ်ပုံစံအဖြစ် ထင်ဟပ်ပါ— မှောင်ကွင်းစမ်းသပ်ခြင်းများ (ရောက်ရှိလွယ်ကူပြီး တုံ့ပြန်မှုရှိသလား?) ကို တင်သွင်းတိုင်း အလုပ်လုပ်သည်၊ အော့ဖ်လိုင်းဖြတ်သန်းမှု (ပို့ဆောင်ရန် လုံလောက်သလား?) ကို ရွှေ့ပြောင်းမှုမတိုင်မီ ပြုလုပ်သည်၊ အွန်လိုင်းဖြတ်သန်းမှု (သဘာဝအခြေအနေတွင် ဘယ်လိုလုပ်ဆောင်လဲ?) ကို ဆက်လက်ပြုလုပ်သည်။
တာဝန်ယူမှုသို့ ရွေ့လျားမတိုင်မီ နားလည်မှုကို စမ်းသပ်ပါ။
1. ထုတ်လုပ်မှုအေးဂျင့်တစ်ခုတွင် “မော်ဒယ်” ဟာ တစ်ချို့ခန့် အပိုင်းနှင့် အကျဆုံး ဘယ်လောက်ကွဲပြားဘူးလဲ၊ ကျန်တာတွေကဘာဖြစ်လဲ?
2. မည်သည့်အခါတွင် Hosted Agent ကို client-hosted agent ထက်ရွေးချယ်သင့်သလဲ?
3. ဘာကြောင့် scalable agent ကို သူ၏ process memory ထဲတွင် stateless ဖြစ်သင့်သလဲ?
4. မော်ဒယ်လမ်းညွှန်ခြင်းက ဘာပြဿနာကို ဖြေရှင်းပေးပြီး၊ အဲဒါဟာ စမ်းသပ်မှုပြုခြင်းနှင့် ဘယ်လိုဆက်စပ်သလဲ?
5. “Evaluation gate” ဆိုတာဘာလဲ၊ ဘဝ κύκλο မှာဘယ်မှာရှိလဲ?
6. အသုံးပြုမှု MCP ဆာဗာကို ထုတ်လုပ်မှုတွင် ယုံကြည်၍ မရသော အနားဖြင့် ကုသသင့်သော အကြောင်းအရင်း?
7. တစ်ခုတည်း ပြုပြင်ပြောင်းလဲခြင်းသည် ထုတ်လုပ်မှုအေးဂျင့်စရိတ်အပေါ် အကြီးဆုံးသက်ရောက်မှုရှိရာ ဘာလဲ၊ အဘယ်ကြောင့်လဲ?
8. span attribute များဖြစ်သည့် customer.tier နှင့် routed.model တို့သည် observability တွင် ဘာလုပ်ဆောင်သလဲ?
ကုန်ကျစရိတ်ထောက်ခံမှုအေးဂျင့်ကို ဂျာလက်ထဲက ယူပြီး သတ်မှတ်ထားသော အခြေအနေတစ်ခုအတွက် ပြုစုပါ — SaaS ကုမ္ပဏီအတွက် subscription billing support agent တစ်ခုဖြစ်သည်။
သင့်တင်သွင်းမှုသည်:
get_subscription_status, get_invoice, နှင့် issue_credit (အကြွေးငွေ $50 ထက်ပိုသည်များတွင် လူ့အတည်ပြုချက် လိုအပ်သည်) သို့ အစားထိုးပါ။သေးငယ်သည့် မော်ဒယ် လမ်းညွန်ညွှန်းချက် ဘယ်လောက်ကို မည်သို့ ရွေးချယ်ပြီး လက်တွေ့ လမ်းကြောင်းနှင့် မည်သို့ စစ်ဆေးမည်ကို ရှင်းလင်းသော စာပိုဒ်တိုတစ်ခု (markdown cell အတွင်း) ရေးပါ။ တစ်ခုတည်းသော မှန်ကန်သော ဖြေကြားချက်မရှိပါ — သင့်အား ထုတ်လုပ်မှုစိုးရိမ်ချက်များကို သေချာစွာ ပေါင်းစပ်ထားသည့်အပေါ်မှာ အကဲဖြတ်မည်ဖြစ်သည်။
ဤသင်ခန်းစာတွင် Microsoft Foundry နှင့်အတူ prototype မှ ထုတ်လုပ်မှုသို့ အေးဂျင့်ကို ရွှေ့ပြောင်းလိုက်သည်။
နောက်တစ်ခန်းစာသည် သူ့ကိုယ်တိုင် တစ်အခြားခရီးစဉ်ကိုယူသည်။ မီးတောက်အဖြစ် တိုးလိုသောအေးဂျင့်များကို မိုချ်လေထဲသို့ မတင်ပို့ဘဲ၊ တစ်ဦးတည်း ရေးဆွဲသူ မိစက်တစ်လုံးပေါ်တွင် ဆွဲထုတ်ပြီး ပြည့်တင်းစွာ လည်ပတ်မည်။
ကွန်ပျူတာအသုံးပြု အေးဂျင့် (CUA) များ တည်ဆောက်ခြင်း
ဒေသခွဲ AI အေးဂျင့်များ ဖန်တီးခြင်း
ပြောကြားချက် ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု Co-op Translator အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှန်ကန်မှုအတွက် ကြိုးပမ်းနေသော်လည်း၊ စက်ကိရိယာဘာသာပြန်ခြင်းများတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ပါဝင်နိုင်ကြောင်း သတိပြုပါရန် လိုအပ်ပါသည်။ မူလစာတမ်းကို မူရင်းဘာသာဖြင့်သာ ယုံကြည်စိတ်ချရသော အချက်အလက်အဖြစ် သတ်မှတ်သင့်သည်။ အရေးကြီးသည့် သတင်းအချက်အလက်များအတွက် ပရော်ဖက်ရှင်နယ် လူသားဘာသာပြန်သူဝန်ဆောင်မှုကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော နားလည်မှုကွာခြားမှုများ သို့မဟုတ် မမှန်ကန်သော အသုံးပြုမှုများအတွက် ကျွန်ုပ်တို့ တာဝန်မခံပါ။