![]()
Do sedaj v tečaju ste zgradili agente, ki tečejo na vašem prenosniku, znotraj zvezka, ki jih poganjata az login in nekaj okoljskih spremenljivk. To je točno pravi način za učenje. Ni pa pravi način za poganjanje agenta, od katerega ob 3. uri zjutraj odvisijo tisoči strank.
Ta lekcija govori o vrzeli med “deluje na mojem računalniku” in “deluje zanesljivo in cenovno ugodno v produkciji.” To vrzel zapremo s Microsoft Foundry in Microsoft Foundry Agent Service, in to storimo z gradnjo pravega agenta za podporo strankam z orodji, pridobivanjem informacij, pomnjenjem, evalvacijo in nadzorom.
Ta lekcija bo obravnavala:
Po opravljeni tej lekciji boste znali:
Ta lekcija predvideva, da ste opravili prejšnje lekcije in ste udobni z:
Prav tako boste potrebovali:
az login).requirements.txt.Prototipni agent in produkcijski agent delita isti osnovni cikel — sklepanje, klic orodij, odzivanje. Kar se spremeni, je vse okrog tega cikla. Model je morda 20 % produkcijskega agenta; preostalih 80 % je operativni okvir.
| Skrb | Prototip | Produkcija |
|---|---|---|
| Gostovanje | Teče v vašem zvezku | Teče kot gostujoča storitev, verzionirana in distribuirana |
| Identiteta | Vaš az login žeton |
Upravljana identiteta z omejenim RBAC |
| Stanje | V pomnilniku, izgubljeno po ponovnem zagonu | Externalizirano (shramba niti, pomnilniška storitev) |
| Napaka | Vidite sled napake | Ponovitve, izpadi, dead-letter, opozorila |
| Stroški | “Je nekaj centov” | Spremljani na zahtevo, usmerjani, predpomnjeni, z budžetom |
| Kakovost | Vizualno pregledate izhod | Samodejno ocenjevano pred vsako izdajo |
| Zaupanje | Odobritev vsake akcije | Politika + človek v zanki za tvegane akcije |
Zapomnite si to tabelo. Vsak razdelek spodaj se navezuje na enega od teh vrst.
Obstajajo trije vzorci, ki jih boste pogosto uporabljali v kombinaciji.
Agent objekt živi znotraj vašega procesnega programa. Vaša koda neposredno kliče ponudnika modela; sklepni cikel teče v vaši storitvi. To je bilo narejeno v vseh prejšnjih lekcijah.
Agent je registriran kot vir v Microsoft Foundry. Foundry gosti sklepni cikel, hrani niti, zagotavlja varnost vsebine in RBAC ter naredi agenta vidnega v Foundry portalu. Vaša aplikacija postane tanek odjemalec, ki ustvarja niti in bere odzive.
Več agentov (in orodij) je sestavljenih v graf s eksplicitnim nadzorom toka — zaporedni koraki, vejitev, vozlišča za človeško odobritev in trajne točke zaustavitve, ki se lahko zaustavijo in nadaljujejo. To je zmogljivost Microsoft Agent Framework Workflows, uporabljena pri uvajanju v praksi.
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
Uvajanje agenta ni enkratna push. Je zanka, ki je zelo podobna ciklu izdaje programske opreme, ker pravzaprav to tudi je.
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]
Ključna ideja, prenesena iz Lekcije 10: offline evalvacija je pregrada, ne pomislitev po dejstvu. Nova verzija agenta ne gre v produkcijo, dokler ne doseže pragov ocenjevanja. Online opazovanje nato povratno vrača prave napake v offline testni niz. To je celoten cikel.
Skaliranje agenta je drugačno od skaliranja brezstanja spletnega API-ja, ker vsak zahtevek sproži več dragih klicev modelov in orodij. Štiri tehnike držijo največjo obremenitev.
Obdelava zahtev brez stanja. Ne shranjujte stanja na uporabnika v pomnilnik procesa. Pogovorne niti trajno shranjujte v Foundry shrambi niti ali pomnilniški storitvi, da lahko katera koli instanca obravnava katerikoli zahtevek. To omogoča horizontalno skaliranje — dodajte instance, ni lepljivih sej.
Usmerjanje modela. Ne zahteva vsak zahtevek vaš najmočnejši (in najdražji) model. Usmerite preproste zahtevke — klasifikacija namena, kratki dejanski odgovori — na majhen, hiter model, in rezervirajte velik model za resno sklepanje. Foundryjev Model Router to lahko naredi za vas, ali pa lahko sami implementirate lahkoten klasifikator. DIY verzijo boste zgradili v laboratoriju.
Predpomnjenje odgovorov. Veliko podpornih vprašanj je skoraj podvojenih (“kako ponastavim geslo?”). Predpomnite odgovore na pogosta vprašanja in jih ponudite brez klica modela. Tudi skromna stopnja zadetkov v predpomnilniku bistveno zniža stroške in latenco.
Sočasnost in povratni tlak. Ponudniki modelov imajo omejitve hitrosti. Omejite svojo sočasnost, uporabite ponovitve z eksponentno zakasnitvijo in zatajite elegantno (vrstničen odziv “delamo na tem” je boljši od 500).
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]
Ne morete upravljati tistega, česar ne vidite. Kot je opisano v Lekciji 10, Microsoft Agent Framework nativno oddaja OpenTelemetry sledove — vsak klic modela, sprožitev orodja in korak orkestracije postane obseg. V produkciji te obsege izvozite v Microsoft Foundry (ali katerikoli OTel-kompatibilni zaledni sistem), da lahko:
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
Atributi kot customer.tier in routed.model so tisti, ki iz zid sledi naredijo odgovarjajoča vprašanja (“ali se podjetniške stranke preveč pogosto usmerjajo na majhen model?”).
Stroški v produkcijskih agentih so prevladujoče zaradi žetonov. Trije vzvodi, po redu vpliva:
Evalvacijske pregrade in nadzor stroškov sta ista disciplina, gledana z dveh zornih kotov: evalvacija pove kakovostno dno, usmerjanje in predpomnjenje pa ohranjata stroške čim bližje temu dnu.
Upravljanje. Gostovani agenti dedujejo Foundryjev RBAC, varnost vsebine in revizijsko beleženje. Vsakemu agentu dodelite upravljano identiteto z najmanjšimi potrebnimi privilegiji — dostop samo za branje do baze znanja, omejen dostop do API-ja za podporne vozovnice, nič več.
Človek v zanki. Nekatera dejanja so preveč pomembna, da bi jih avtomatizirali brezpogojno — izdaja vračila, brisanje računa, eskalacija na pravno ekipo. Microsoft Agent Framework podpira orodja, ki zahtevajo odobritev: agent predlaga dejanje, izvedba se zaustavi, človek odobri ali zavrne, nato delovni tok nadaljuje. Sledili ste primitivnemu v Lekciji 6; tukaj ga uvajate.
MCP v produkciji. MCP omogoča agentu, da uporablja zunanja orodja preko standardnega vmesnika. V produkciji obravnavajte vsak MCP strežnik kot nezaupanja vredno mejo: fiksirajte različico strežnika, poganjajte ga z omejeno identiteto, preverjajte njegove izhode in mu nikoli ne izpostavljajte skrivnosti. MCP strežnik je odvisnost, in odvisnosti je treba popravljati, revizijsko spremljati in omejevati uporabnost.
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
Ti trije diagrami — razvoj, uvajanje, izvajanje — prikazujejo istega agenta v treh življenjskih fazah. Naslednji laboratorij vas vodi skozi njegovo gradnjo.
Odprite code_samples/16-python-agent-framework.ipynb in delajte skozi celoto. Sestavili boste Contoso agenta za podporo strankam z vsemi produkcijskimi skrbmi:
Zvezek je organiziran tako, da je vsaka produkcijska skrb samostojen, izvedljiv del. Srce zadeve je upravljalec zahtevkov, ki združuje usmerjanje in predpomnjenje:
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
Evalvacijska pregrada, ki varuje izdajo, izgleda takole:
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
Preberite vsak vrstico — zvezek drži primitive namensko majhne, da ni nič skrito za klicem ogrodja.
Evalvacijska pregrada zgoraj teče offline proti vašemu agentu. Ko je agent uveden kot gostovani agent, potrebujete še eno, še cenejšo preverbo: ali uvajani končni točki dejansko odgovarjata?
Uspešno uvajanje dokazuje samo, da je kontrolna plošča sprejela definicijo — ne dokazuje, da agent odgovori. Manjkajoča odvisnost, napačno usmerjanje modela ali potekla povezava lahko pustijo zeleno uvajanje, ki ne vrne ničesar. Smoke test to ujame v nekaj sekundah, ob vsakem uvajanju, brez stroškov polne evalvacije.
Ta repozitorij ponuja pripravljeno cevovod za smoke test na podlagi AI Smoke Test GitHub akcije:
tests/lesson-16-smoke-tests.json vsebuje sprožilce in preverjanja za Contoso podpornega agenta (utemeljeni odgovori na politiko, poizvedba naročila, ostati na temo in večkratna kontinuiteta niti). Katalogi za agentne iz drugih lekcij živijo zraven — glej tests/README.md..github/workflows/smoke-test.yml se prijavi z Azure OIDC in pošlje vsak sprožilec na končno točko odzivov agenta, pri vsaki napačni trditvi neuspešno zaključi nalogo.- name: Smoke-test hosted agent
uses: JFolberth/ai-smoketest@v1
with:
project_endpoint: $
agent_name: ContosoSupportAgent
tests_file: tests/lesson-16-smoke-tests.json
Zaženite ga z zavihkom Dejanja (Actions), ko je vaš agent nameščen, in vnesite vaš naslov končne točke projekta Foundry ter ime agenta. Federirana identiteta potrebuje vlogo Azure AI User z obsegom projekta Foundry. Premislite o plasteh kot o piramidi: dimni testi (dostopni in odzivni?) se izvajajo ob vsakem uvedbi, ocena brez povezave (dovolj dobra za izdajo?) se izvaja pred promocijo, stalna ocena (kako se vede v naravi?) pa teče neprekinjeno.
Preizkusite svoje razumevanje, preden nadaljujete z nalogo.
1. Kolikšen približen delež produktnega agenta je “model” in kaj je preostanek?
2. Kdaj bi izbrali gostovanega agenta namesto agenta, ki teče na odjemalcu?
3. Zakaj mora biti skalabilen agent brez stanja v svojem procesu?
4. Kakšen problem rešuje usmerjanje modela in kako je povezano z ocenjevanjem?
5. Kaj je “ocenjevalni prehod” in kje se nahaja v življenjskem ciklu?
6. Zakaj je MCP strežnik treba obravnavati kot nezanašano mejo v produkciji?
7. Katera sprememba običajno najbolj vpliva na stroške produkcijskega agenta in zakaj?
8. Kakšno vlogo imajo atribute sledi, kot sta customer.tier in routed.model, pri opazovanju?
Vzemite agenta za podporo strankam iz laboratorija in ga okrepite za določen scenarij: agent za podporo pri obračunu naročnin za SaaS podjetje.
Vaša oddaja naj bo:
get_subscription_status, get_invoice in issue_credit (krediti nad 50 $ zahtevajo odobritev človeka).Napišite kratek odstavek (v markdown celici), ki pojasni, katero pravilo usmerjanja modela ste izbrali in kako bi ga preverili s pravim prometom. Ni enega pravilnega odgovora — ocenjuje se skladnost, s katero so proizvodne zadeve povezane skupaj.
V tej lekciji ste premaknili agenta iz prototipa v produkcijo z Microsoft Foundry:
Naslednja lekcija pojde v nasprotno smer: namesto da bi agenta razširili v oblak, ga boste prenesli dol na en razvojni računalnik in ga popolnoma zagnali lokalno.
Gradnja agentov za uporabo računalnika (CUA)
Ustvarjanje lokalnih AI agentov
Omejitev odgovornosti: Ta dokument je bil preveden z uporabo AI prevajalske storitve Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da avtomatizirani prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za kritične informacije je priporočljiv strokovni človeški prevod. Ne odgovarjamo za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda.