![]()
Kuni selleni olete kursusel ehitanud agente, kes töötavad teie sülearvutis, märkmiku sees, käivitatud az login ja mõne keskkonnamuutujaga. See on täpselt õige viis õppimiseks. See ei ole õige viis agenti käivitamiseks, kellele tuhanded kliendid öösel kell 3 loovad sõltuvuse.
See õppetund räägib lõhetest “see töötab minu masinas” ja “see töötab usaldusväärselt ja taskukohaselt tootmises.” Selle lõhe sulgeme kasutades Microsoft Foundry’t ja Microsoft Foundry Agent Service’i, ning teeme seda, ehitades tõelise klienditoe agendi, millel on tööriistad, päringuvõime, mälu, hindamine ja järelevalve.
See õppetund katab:
Pärast selle õppetunni läbimist oskate:
See õppetund eeldab, et olete läbinud varasemad õppetunnid ja tunnete end mugavalt:
Vajate ka:
az login).requirements.txt.Prototüüpi-agent ja tootmisagent jagavad sama põhiloop’i — mõtlemine, tööriistade kutsumine, vastamine. Muutub kõik, mis seda loop’i ümbritseb. Mudel moodustab tootmisagendist võib-olla 20%; ülejäänud 80% on operatiivne raamistik.
| Kaalutlus | Prototüüp | Tootmine |
|---|---|---|
| Majutamine | Jookseb teie märkmikus | Jookseb majutatud teenusena, versioonitud ja väljasaatmisega |
| Identiteet | Teie az login token |
Hallatud identiteet koos RBAC-iga |
| Oleku säilitamine | Mälus, kaob taaskäivitamisel | Eksternaliseeritud (teemapoiss, mäluteenistus) |
| Vigade käsitlus | Näete virna jälge (traceback) | Taaskatsed, varuvõimalused, surnud kirja kettad, hoiatused |
| Kulu | “See on paar senti” | Jälgitakse taotluse kohta, marsruuditakse, vahemällu salvestatakse, eelarvestatakse |
| Kvaliteet | Kontrollite väljundit silmaga | Hinnatakse automaatselt enne iga väljaannet |
| Usaldus | Kinnitate iga toimingu | Poliitika + inimene tsüklis riskantsete toimingute jaoks |
Pidage seda tabelit meeles. Iga alljärgnev lõik vastab ühele reale selles tabelis.
On kolm mustrit, mida kasutate sageli koos.
Agent-objekt elab teie rakenduse protsessis. Teie kood kutsub mudeli pakkujat otse; mõtlemise loom jookseb teie teenuses. Seda on tehtud kõigis eelnevates õppetundides.
Agent registreeritakse ressursina Microsoft Foundry’s. Foundry majutab mõtlemise loopi, hoiab lõimeid, rakendab sisuohutust ja RBAC-i, ja teeb agendi nähtavaks Foundry portaalis. Teie rakendus muutub õhukeseks kliendiks, mis loob lõimeid ja loeb vastuseid.
Mitmed agentid (ja tööriistad) on kokkupandud graafikuks koos selge kontrollvooga — sekventiaalsed sammud, harunemine, inimese heakskiidu sõlmed ja vastupidavad kontrollpunktid, mis saavad peatada ja jätkata. See on Microsoft Agent Framework’i Töövoogude võimekus juurutamise mahus.
flowchart TB
subgraph P1[Kliendi majutatud]
A1[Teie rakenduse protsess] --> M1[Mudeli pakkuja]
end
subgraph P2[Majutatud agent]
A2[Õhuke klient] --> F2[Foundry agendi teenus]
F2 --> M2[Mudel + tööriistad + teema hoidla]
end
subgraph P3[Agendi töövoog]
A3[Orkestreerija] --> S1[Kolmanda astme agent]
S1 --> S2[Lahendaja agent]
S2 --> H[Inimese kinnituse sõlm]
H --> S3[Tegevuse agent]
end
Agendi juurutamine ei ole ühekordne push. See on tsükkel, mis näeb välja nagu tarkvara väljaandmise tsükkel, sest täpselt see ta ongi.
flowchart LR
Create[Loo / Autor] --> Version[Versioon]
Version --> Evaluate[Hinda võrguühenduseta]
Evaluate -->|läbib värava| Deploy[Paigalda hostitud]
Evaluate -->|ebaõnnestub värav| Create
Deploy --> Observe[Jälgi võrgus]
Observe --> Improve[Kogu vead]
Improve --> Create
Deploy --> Retire[Pensioneeri vana versioon]
Põhimõte, mis tuli üle Õppetundist 10: offline hindamine on lukk, mitte mõttekäigu lõpp. Uus agentide versioon ei väljastata, kui ta ei ületa teie hindamiskünniseid. Võrgujälgitavus suunab seejärel reaalsed vead tagasi offline testikomplekti. See on kogu tsükkel.
Agendi skaleerimine erineb seisundivaba veebiliidese skaleerimisest, sest iga päring võib vallandada mitu kulukat mudeli ja tööriista kutsumist. Neli tehnikat kannavad suurema osa koormusest.
Seisundivaba päringute käsitlemine. Ärge hoidke protsessi mälus kasutajapõhist olekut. Salvestage vestluslõimed Foundry lõimede salvestusruumis või mäluteenuses, nii et iga eksemplar suudab käsitleda kõiki päringuid. See võimaldab teil horisontaalselt skaleerida — lisage eksemplare, ei ole “sticky” sessioone.
Mudeli marsruutimine. Mitte iga päring ei vaja teie võimekaimat (ja kõige kallimat) mudelit. Marsruutige lihtsad päringud — kavandi tuvastus, lühikesed faktipõhised vastused — väikese, kiire mudeli juurde ja jätke suur mudel tõelise mõtlemise jaoks. Foundry Mudeli marsruuter suudab seda teie eest teha, või võite ise kergekaalulise klassifikaatori kirjutada. Te ehitate selle ise labs.
Vastuste vahemällu salvestamine. Paljud tugipäringud on peaaegu koopiad (“Kuidas ma oma parooli lähtestan?”). Salvestage vastused korduvatele küsimustele ja serveerige seda ilma mudelit üldse kasutamata. Isegi mõõdukas vahemälu osakaal vähendab oluliselt kulu ja latentsust.
Samasel ajalisel paralleelsus ja tagasirõhk. Mudelipakkujatel on määravad piirangud. Piirake oma paralleelsust, kasutage korduskatseid eksponentsiaalse viivitusega ja eksige graatsiliselt (järjekorda pandud “me tegeleme sellega” vastus on parem kui 500 veateade).
flowchart LR
Q[Kasutaja päring] --> C{Vahemälu tabamus?}
C -->|jah| R[Tagasta vahemälust vastus]
C -->|ei| Router{Keerukus?}
Router -->|lihtne| SLM[Väike mudel]
Router -->|keeruline| LLM[Suur mudel]
SLM --> Out[Vastus]
LLM --> Out
Out --> Store[Vahemälu + jälg]
Te ei saa juhtida seda, mida te ei näe. Nagu õppetund 10 selgitas, Microsoft Agent Framework tekitab loomulikult OpenTelemetry jälgi — iga mudelikutse, tööriista kutsumine ja orkestratsiooni samm muutub ulatuseks (span). Tootmises ekspordite need ulatused Microsoft Foundry’sse (või mis tahes OTel-sobivasse taustsüsteemi), et saaksite:
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")
# agendi täitmine jälgitakse selle ulatuse sees automaatselt
Omadused nagu customer.tier ja routed.model muudavad suure jälgede massi vastatavaks küsimuste vastamiseks (“kas ettevõtte kliendid marsruuditakse liiga sageli väikese mudeli juurde?”).
Tootmiagendide kulud kujunevad peamiselt tokenitest. Kolm hooba mõjususjärjestuses:
Hindamislukud ja kulude kontroll on üks ja sama distsipliin kahest vaatenurgast: hindamine määrab kvaliteedi põranda, marsruutimine ja vahemälu hoiavad kulud sellest põrandast võimalikult lähedal.
Valitsemine. Majutatud agentid pärivad Foundry RBAC-i, sisuohutuse ja auditeerimise. Andke igale agendile hallatud identiteet minimaalse privileegiga, mida ta vajab — ainult lugemisõigus teadmistebaasile, piiratud ligipääs piletitarkvara API-le, mitte midagi rohkem.
Inimene tsüklis. Mõned toimingud on liiga olulised, et neid automaatselt teha — tagasimakse väljastamine, konto kustutamine, juhtumi eskaleerimine juristi meeskonnale. Microsoft Agent Framework toetab heakskiidu nõudvaid tööriistu: agent pakub toimingu, sooritus peatub, inimene kinnitab või lükkab tagasi ja töövoog jätkub. Seda primitiivi nägite õppetund 6-s; siin juurutate seda.
MCP tootmises. MCP võimaldab agendil kasutada väliseid tööriistu standardse liidese kaudu. Tootmises kohtlege iga MCP serverit kui usaldamata piiri: lukustage serveri versioon, käitage seda piiratud identiteediga, valideerige selle väljundid ja ärge kunagi jagage saladusi. MCP server on sõltuvus, ja sõltuvusi parandatakse, auditeeritakse ja piiratakse.
flowchart TB
subgraph Dev[Arenduse arhitektuur]
D1[Märkmik] --> D2[Agendi raamistik]
D2 --> D3[Mudeli pakkuja]
D2 --> D4[Kohalikud tööriistad]
end
subgraph Deploy[Juhtimise arhitektuur]
E1[CI torujuhe] --> E2[Hinnangu värav]
E2 -->|läbib| E3[Foundry agenditeenus]
E3 --> E4[Versioonitud majutatud agent]
end
subgraph Run[Käituse arhitektuur]
F1[Kliendirakendus] --> F2[Majutatud agent]
F2 --> F3[Mudeli marsruutija]
F2 --> F4[Azure AI otsing RAG]
F2 --> F5[Mälu teenus]
F2 --> F6[MCP tööriistad]
F2 --> F7[OTel -> Foundry jälgimine]
F2 --> F8[Inimese kinnitamine]
end
Need kolm diagrammi — arendus, juurutus, jooksuaeg — on sama agent kolme elutsükli faasis. Järgmine labirong juhatab teid selle ehitamisel.
Avage code_samples/16-python-agent-framework.ipynb ja töötage see otsast lõpuni läbi. Koostate Contoso klienditoe agendi, kus iga tootmise mure on integreeritud:
Märkmik on organiseeritud nii, et iga tootmise mure on iseseisev, jooksutatav lõik. Selle südameks on marsruutimise ja vahemäluga päringutöötlus:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. Teenindage vahemälust, kui võimalik.
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. Suunake keerukuse alusel, et kontrollida kulusid.
model = "gpt-5-nano" if is_simple(query) else "gpt-5-mini"
# 3. Käivitage agent jälgimisspanssis jälgitavuse huvides.
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. Vahemäluge ja tagastage.
response_cache.set(normalize(query), response.text)
return response.text
Hindamislukk, mis kaitseb väljaandmist, näeb välja nii:
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 # tee juurutamine ainult juhul, kui värav läbib
Lugege iga rida — märkmik hoiab primitiivid eesmärgipäraselt väikestena, et midagi ei oleks raamistikukutse varjus.
Ülalmainitud hindamislukk töötab offline teie agendi objekti vastu. Kui agent on juurutatud kui Hosted Agent, vajate veel üht, veel odavamat kontrolli: kas juurutatud lõpp-punkt tegelikult vastab?
Edukas juurutus tõestab ainult, et kontrolltase aktsepteeris definitsiooni — see ei tõesta, et agent vastab. Puuduv sõltuvus, halb mudeli marsruutimine või aegunud ühendus võivad jätta rohelise juurutamise, mis ei vasta midagi. Suitsutest tabab selle sekunditega, igal juurutusel, ilma täishindamiseta.
See hoidla sisaldab kasutusvalmis suitsutesti torujuhtme, mis põhineb AI Smoke Test GitHub Action’il:
tests/lesson-16-smoke-tests.json sisaldab päringuid ja väiteid Contoso tugiedendi kohta (põhjalikud poliitikaküsimused, tellimuse otsing, teema hoidmine ja mitme-kordne lõimede järjepidevus). Muude õppetundide agentide kataloogid asuvad selle kõrvale — vaata tests/README.md..github/workflows/smoke-test.yml logib sisse Azure OIDC-ga ja POSTitab iga päringu agendi Responses lõpp-punktile, ebaõnnestudes, kui mõni väide ei kehti.- 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 agendi juurutamist, sisestades oma Foundry projektipunkti ja agendi nime. Liendatud identiteedil peab olema Foundry projekti ulatuses roll Azure AI User. Mõelge kihtidele nagu püramiidile: suitsutestid (kas see on saavutatav ja vastab?) käivad iga juurutuse ajal, võrguühenduseta hindamine (kas see on piisavalt hea edastamiseks?) tehakse enne reklaamimist ja võrgus hindamine (kuidas ta looduses toimib?) töötab pidevalt.
Testige oma arusaamist enne ülesandega jätkamist.
1. Kui suur osa tootmisagentist on ligikaudu “mudel” ja mis on ülejäänu?
2. Millal valiksite majutatud agendi asemel kliendi majutatud agendi?
3. Miks peab skaaleeritav agent olema oma protsessi mälus riigitu?
4. Millise probleemi lahendab mudelite marsruutimine ja kuidas see hindamisega seotud on?
5. Mis on “hindamisvärav” ja kus see tsüklis asub?
6. Miks tuleks MCP-serverit tootmises käsitleda usaldusväärsena piiri jaoks?
7. Milline üksik muutus avaldab tavaliselt tootmisagendi kuludele kõige suuremat mõju ja miks?
8. Millist rolli mängivad jälgitavuses sellised pikkuse atribuudid nagu customer.tier ja routed.model?
Võtke labist klienditoe agent ja tugevdage seda konkreetseks stsenaariumiks: tellimusteenuse arveldustoestus SaaS ettevõttele.
Teie esitus peaks sisaldama:
get_subscription_status, get_invoice ja issue_credit (üle 50-dollarilised kreeditid vajavad inimkinnitust).Kirjutage lühike lõik (markdown lahtris), mis selgitab, millise mudeli marsruutimise reegli valisite ja kuidas te seda reaalse liiklusega valideeriksite. Õiget vastust ei ole — hindatakse, kas tootmise aspektid on sidustatud mõistlikult.
Selles õppetükis viisite agendi prototüübist tootmisse Microsoft Foundry abil:
Järgmine õppetund läbib vastupidise teekonna: skaleerimise asemel pilves viite agendid alla arendaja masinasse ja jooksutate neid täielikult lokaalselt.
Arvuti kasutusagentide ehitamine (CUA)
Lokaalsete tehisintellekt 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.