![]()
Selle kursuse senises osas olete loonud agende, mis töötavad teie sülearvutis, märkmiku sees, juhituna az login ja mõne keskkonnamuutujaga. See ongi õige viis õppimiseks. See pole aga õige viis agendi käivitamiseks, kellele tuhanded kliendid sõltuvad kell 3 öösel.
See õppetund käsitleb lõhet “see töötab minu seadmes” ja “see töötab usaldusväärselt ja taskukohaselt tootmises” vahel. Me täidame selle lõhe, kasutades Microsoft Foundry’t ja Microsoft Foundry Agent Service’it, ehitades päris klienditoe agendi, millel on tööriistad, andmete tagasitõmme, mälu, hindamine ja jälgimine.
Selles õppetükis käsitletakse:
Pärast selle õppetüki läbimist oskad:
Selle õppetüki läbimiseks eeldame, et oled lõpetanud varasemad õppetükid ja oled mugav:
Sul on vaja ka:
az login).requirements.txt.Prototüübi agent ja tootmises olev agent jagavad sama põhitsüklit — põhjendamine, tööriistade kutsumine, reageerimine. Muutub kõik tsükli ümber pakkunud. Mudel moodustab tootmises olevast agendist umbes 20%, ülejäänud 80% on operatsiooniline luustik.
| Murekoht | Prototüüp | Tootmine |
|---|---|---|
| Majutamine | Töötab sinu märkmikus | Töötab majutatuna servis, versioonitud ja juurutatud |
| Identiteet | Sinu az login token |
Juhtimisega identiteet ulatusega RBAC |
| Olek | Mälu sees, kaob taaskäivitamisel | Eksternaliseeritud (kõnemoodulite hoidla, mälu teenus) |
| Rikke korral | Näed veateadet | Uuesti proovimised, varuvariandid, surnud-kirja kast, hoiatused |
| Kulu | „See on paar senti“ | Jälgitud päringu lõikes, marsruutitud, vahemällu salvestatud, eelarvestatud |
| Kvaliteet | Silmadega kontrollitud väljundit | Hinnatud automaatselt enne iga versiooni |
| Usaldus | Kinnitad iga toimingu | Poliitika + inimheakskiit riskantsete toimingute jaoks |
Pea seda tabelit meeles. Iga alljärgnev lõik vastab ühele selle tabeli reale.
Kasutatakse kolme mustrit, sageli kombineeritult.
Agendi objekt elab sinu rakenduse protsessis. Sinu kood kutsub mudelipakkujat otse; põhjendus-tsükkel töötab sinu teenuses. Seda on tehtud kõigis eelmistes õppetükkides.
Agent registreeritakse ressursina Microsoft Foundry’s. Foundry majutab põhjendus-tsükli, talletab kõnemoodulid, tagab sisuturvalisuse ja RBAC, ning kuvab agendi Foundry portaalis. Sinu rakendus muutub õhukeseks kliendiks, mis loob kõnemooduleid ja loeb vastuseid.
Mitmed agendid (ja tööriistad) pannakse kokku graafiks selgete juhtimisvoogudega — järjestikused sammud, harunemised, inimheakskiidu sõlmed ja vastupidavad kontrollpunktid, mis võivad pausile minna ja jätkata. See on Microsoft Agent Frameworki Workflows võimekus juurutamise mahtudel.
flowchart TB
subgraph P1[Client-Hosted]
A1[Your App Process] --> M1[Model Provider]
end
subgraph P2[Hosted Agent]
A2[Thin Client] --> F2[Foundry Agent Service]
F2 --> M2[Model + Tools + Thread Store]
end
subgraph P3[Agent Workflow]
A3[Orchestrator] --> S1[Triage Agent]
S1 --> S2[Resolver Agent]
S2 --> H[Human Approval Node]
H --> S3[Action Agent]
end
Agendi juurutamine ei ole üksikisiku push. See on tsükkel ja näeb välja nagu tarkvara väljaandmise tsükkel, sest just nii see ongi.
flowchart LR
Create[Create / Author] --> Version[Version]
Version --> Evaluate[Evaluate offline]
Evaluate -->|passes gate| Deploy[Deploy hosted]
Evaluate -->|fails gate| Create
Deploy --> Observe[Observe online]
Observe --> Improve[Collect failures]
Improve --> Create
Deploy --> Retire[Retire old version]
Peamine idee, mis on pärit Õppetükist 10: võrguväline hindamine on värav, mitte järelmõte. Uus agendi versioon ei ilmu välja enne, kui see ületab hindamiskünnised. Võrgujälgitavus toob riigipõhised rikked tagasi võrguvälisesse testikomplekti. See ongi kogu tsükkel.
Agendi skaleerimine erineb olekuvaba veebirakenduse API skaleerimisest, sest iga päring võib vallandada mitu kulukat mudeli ja tööriista kõnet. Neli tehnikat kannavad suurema osa koormusest.
Olekuvaba päringu haldamine. Ära hoia üksikkasutaja olekut oma protsessi mälus. Säilita jutulood Foundry jutuloomeruumis või mälu teenuses, et iga eksemplar suudaks päringut töödelda. See võimaldab horisontaalset skaleerimist — lisa eksemplare, pole kleepuvaid sessioone.
Mudeli marsruutimine. Kõik päringud ei vaja sinu kõige võimekamat (ja kõige kallimat) mudelit. Suuna lihtsad päringud — kavatsuse klassifikatsioon, lühikesed faktipõhised vastused — väikesele ja kiirele mudelile ning hoia suur mudel autentseks põhjenduseks. Foundry Model Router saab seda sinu eest teha või saad ise kergekaalulise klassifikaatori ehitada. Laboris ehitad iseversiooni.
Vastuse vahemälu. Paljud tugipäringud on peaaegu koopiad (“kuidas ma parooli lähtestan?”). Säilita tavalistele küsimustele vastused vahemällu ja vasta neile ilma mudelit kõnetamata. Isegi mõõdukas vahemälu osakaal vähendab oluliselt kulu ja latentsust.
Samaaegsus ja tagasisurve. Mudelipakkujatel on kiiruspiirangud. Piira oma samaaegsust, kasuta kordamise katseid eksponentsiaalse taandarenguga ja ebaõnnestumisel käitu graatsiliselt (järjekorda pandud “me töötame selle kallal” vastus on parem kui 500 veateade).
flowchart LR
Q[User query] --> C{Cache hit?}
C -->|yes| R[Return cached answer]
C -->|no| Router{Complexity?}
Router -->|simple| SLM[Small model]
Router -->|complex| LLM[Large model]
SLM --> Out[Response]
LLM --> Out
Out --> Store[Cache + trace]
Sa ei saa juhtida seda, mida sa ei näe. Nagu käsitleti Õppetükis 10, Microsoft Agent Framework eraldab loomulikult OpenTelemetry jälgi — iga mudeli kõne, tööriista kutsumine ja korralduse samm muutuvad vahemikuks. Tootmises ekspordid need vahemikud Microsoft Foundry’sse (või mis tahes OTel-toetatud taustsüsteemi), et:
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")
# agent execution is traced automatically inside this span
Atribuudid nagu customer.tier ja routed.model muudavad jälgede vooga seina vastatavateks küsimusteks (“kas ettevõtte kliendid juhitakse liiga tihti väikesele mudelile?”).
Tootmisagentide kulusid domineerivad tokenid. Kolm hooba, järjestatud mõju järgi:
Hindamisväravad ja kulu kontroll on sama distsipliin kahe nurga alt: hindamine ütleb sulle kvaliteedi põranda, marsruutimine ja vahemällu salvestamine hoiavad sind võimalikult lähedal põranda kulule.
Valitsemine. Majutatud Agendid pärivad Foundry RBACi, sisuturvalisuse ja auditeerimislogi. Iga agendile anna hallatav identiteet vähima hädavajaliku õigusega — vaid lugemisõigus teadmistebaasile, piiritletud juurdepääs piletihaldus API-le, mitte midagi rohkem.
Inimene ahelas. Mõned toimingud on liiga olulised, et neid täielikult automatiseerida — raha tagastamine, konto kustutamine, eskaleerimine juriidilisse meeskonda. Microsoft Agent Framework toetab heakskiitu nõudvaid tööriistu: agent teeb ettepaneku, täitmine peatub, inimene kinnitab või lükkab tagasi ja töövoog jätkub. Sa nägid primitiivi Õppetükis 6; siin juurutad seda.
MCP tootmises. MCP võimaldab agentidel tarbida väliseid tööriistu standardse liidese kaudu. Tootmises käsitle iga MCP serverit usaldamatuna: lukusta serveri versioon, käita hallatud identiteediga, valideeri väljundeid ja ära kunagi jaga sellega saladusi. MCP server on sõltuvus, neid uuendatakse, audi-teeritakse ja kiiruspiiratakse.
flowchart TB
subgraph Dev[Development Architecture]
D1[Notebook] --> D2[Agent Framework]
D2 --> D3[Model Provider]
D2 --> D4[Local tools]
end
subgraph Deploy[Deployment Architecture]
E1[CI pipeline] --> E2[Evaluation gate]
E2 -->|pass| E3[Foundry Agent Service]
E3 --> E4[Versioned hosted agent]
end
subgraph Run[Runtime Architecture]
F1[Client app] --> F2[Hosted agent]
F2 --> F3[Model Router]
F2 --> F4[Azure AI Search RAG]
F2 --> F5[Memory service]
F2 --> F6[MCP tools]
F2 --> F7[OTel -> Foundry tracing]
F2 --> F8[Human approval]
end
Need kolm skeemi — arendus, juurutamine, tööaeg — näitavad sama agendi elu kolme etappi. Järgmine labor juhendab sind selle ehitamisel.
Ava code_samples/16-python-agent-framework.ipynb ja lahenda see lõpuni. Koostad Contoso klienditoe agendi, millel on iga tootmisküsimus läbi ühendatud:
Märkmik on organiseeritud nii, et iga tootmisküsimus on iseseisev, jooksutatav lõik. Selle südameks on marsruutimise ja vahemällu salvestamise päringuhaldur:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. Serve from cache when we can.
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. Route by complexity to control cost.
model = "gpt-5-nano" if is_simple(query) else "gpt-5-mini"
# 3. Run the agent inside a trace span for observability.
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. Cache and return.
response_cache.set(normalize(query), response.text)
return response.text
Hindamisvärav, mis valvab väljaandmist, näeb välja selline:
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 # only deploy if the gate passes
Loe iga rida — märkmik hoiab primitiivid teadlikult väikesed, et midagi pole raamistikukutse taga peidus.
Eeltoodud hindamisvärav töötab võrguväliselt sinu telefoni objekti vastu. Kui agent on juurutatud Majutatud Agendina, vajad veel üht odavamat kontrolli: kas juurutatud lõpp-punkt vastab üldse?
“Õnnestunud” juurutus tõestab vaid, et juhtimistasand aktsepteeris määratluse — see ei tõesta, et agent vastab. Puuduv sõltuvus, vale mudeli marsruutimine või aegunud ühendus võivad jätta rohelise juurutuse, mis ei vasta midagi. Suitsutest tabab selle sekunditega, iga juurutuse ajal, täisväärtusliku hindamise kuluta.
See hoidla sisaldab kasutusvalmis suitsutesti torujuhtme, mis põhineb AI Smoke Test GitHub tegevusel:
tests/lesson-16-smoke-tests.json sisaldab Contoso tugiedendi promte ja kinnitusi (põhineb reeglitel, tellimuse päring, teemas püsimine ja mitme kõne jätkusuutlikkus). Muude õppetükkide agendi kataloogid asuvad kõrval — vt tests/README.md..github/workflows/smoke-test.yml logib sisse Azure OIDC-ga ja POSTitab iga prompti agendi Responses lõpp-punkti, ebaõnnestub igal kinnituse veal.- name: Smoke-test hosted agent
uses: JFolberth/ai-smoketest@v1
with:
project_endpoint: $
agent_name: ContosoSupportAgent
tests_file: tests/lesson-16-smoke-tests.json
Käivitage see vahekaardilt Actions pärast teie agendi juurutamist, sisestades oma Foundry projekti lõpp-punkti ja agendi nime. Liigendatud identiteedil peab olema Foundry projekti ulatuses roll Azure AI User. Mõelge kihtidele nagu pyramidile: suitsutestid (kas on jõutav ja vastab?) käivad iga juurutuse ajal, võrguühenduseta hindamine (kas piisavalt hea saatmiseks?) käib enne edendamist ja võrguhindamine (kuidas see töös läheb?) käib pidevalt.
Testi oma arusaamist enne ülesandega jätkamist.
1. Kui suur osa tootmisagendist on ligikaudu “mudel” ja mis on ülejäänu?
2. Millal valiksite majutatud agendi kliendi majutatud agendi asemel?
3. Miks peab skaleeritav agent olema oma protsessimälus olekusaatmatu?
4. Millist probleemi lahendab mudeli marsruutimine ja kuidas see hindamisega seostub?
5. Mis on “hindamisvärav” ja kus see elutsüklis paikneb?
6. Miks tuleks MCP serverit tootmises käsitleda usaldamatuna piirinahana?
7. Milline üksik muudatus avaldab tavaliselt suurimat mõju tootmisagendi kulule ja miks?
8. Millist rolli mängivad monumendi atribuute nagu customer.tier ja routed.model jälgitavuses?
Võtke laborist klienditoe agent ja tugevdage seda konkreetseks stsenaariumiks: tellimuste arvelduse toe agent SaaS ettevõttele.
Teie esitus peaks sisaldama:
get_subscription_status, get_invoice ja issue_credit (üle 50 dollari krediidi eest on vaja inimluba).Kirjutage lühike lõik (markdown lahtris), selgitades, millise mudelarvestuse reegli valisite ja kuidas te seda reaalliiklusega valideeriksite. Õiget vastust ei ole — teid hinnatakse selle järgi, kas tootmise aspektid on loogiliselt kokku seotud.
Selles õppetükis viisite agendi prototüübist tootmisse kasutades Microsoft Foundryt:
Järgmine õppetükk võtab vastupidise tee: selle asemel, et agentide skaleerimine pilve, toote need alla ühe arendajamasina peale ja käivitate nad täielikult lokaalselt.
Arvutikasutuse Agendid (CUA) loomine
Lokaalsete AI Agentide loomine
Lahtiütlus: See dokument on tõlgitud kasutades AI tõlketeenust Co-op Translator. Kuigi me püüdleme täpsuse poole, palun pange tähele, et automatiseeritud tõlgetes võib esineda vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud eksimustest või valesti mõistmistest.