![]()
Do zdaj v tečaju ste gradili agente, ki tečejo na vašem prenosniku, znotraj zapiska, upravljani z ukazom az login in nekaj okoljskimi spremenljivkami. To je pravilen način za učenje. Ni pa pravilen način za zagon agenta, na katerega zanaša tisoče strank ob 3. uri zjutraj.
Ta lekcija obravnava razliko med “deluje na mojem računalniku” in “deluje zanesljivo in dostopno v produkciji”. To razliko zapremo z uporabo Microsoft Foundry in Microsoft Foundry Agent Service, in to storimo tako, da zgradimo resničnega podpornega agenta, ki ima orodja, iskanje, pomnilnik, ocenjevanje in nadzor.
Ta lekcija bo obravnavala:
Po zaključku te lekcije boste znali:
Ta lekcija predpostavlja, da ste zaključili prejšnje lekcije in ste vešči:
Potrebovali boste tudi:
az login).requirements.txt.Prototipni agent in produkcijski agent imata enak osnovni cikel — razmišljanje, klic orodij, odgovor. Spremeni se vse, kar je ovito okoli tega cikla. Model je morda 20% produkcijskega agenta; ostalih 80% je operativni skelet.
| Skrb | Prototip | Produkcija |
|---|---|---|
| Gostovanje | Teče v vašem zapisku | Teče kot gostovana storitev, verzionirana in razširjena |
| Identiteta | Vaš az login žeton |
Upravljana identiteta z omejenim RBAC-om |
| Stanje | V pomnilniku, izgubljeno ob ponovnem zagonu | Zunanjeno (shranjevanje po niti, pomnilniška storitev) |
| Napaka | Vidite sled napake | Ponovitve, zasilni načini, mrtvi sporočilni predal, opozorila |
| Strošek | “Je nekaj centov” | Sleden vsakemu zahtevku, usmerjen, predpomnjen, v proračunu |
| Kakovost | Ocenjujete rezultate z očmi | Samodejno ocenjevano pred vsako izdajo |
| Zaupanje | Odobritev vsakega dejanja | Politike + človek v zanki za tvegana dejanja |
Zapomnite si to tabelo. Vsak spodnji odsek ustreza eni od teh vrstic.
Obstajajo trije vzorci, ki jih boste pogosto uporabili v kombinaciji.
Objekt agenta živi znotraj vašega aplikacijskega procesa. Vaša koda pokliče ponudnika modela neposredno; zanka razmišljanja teče v vaši storitvi. To je bilo storjeno v vseh prejšnjih lekcijah.
Agent je registriran kot vir v Microsoft Foundryju. Foundry gosti zanko razmišljanja, shrani niti, uveljavlja varnost vsebine in RBAC ter naredi agenta vidnega v portalu Foundry. Vaša aplikacija postane tanek odjemalec, ki ustvarja niti in bere odzive.
Več agentov (in orodij) je sestavljenih v graf z eksplicitnim tokom nadzora — sekvenčni koraki, vejitev, vozlišča s človeško odobritvijo in trajne kontrolne točke, ki se lahko ustavijo in nadaljujejo. To je zmogljivost Microsoft Agent Framework Workflows uporabljena v merilu uvajanja.
flowchart TB
subgraph P1[Gostitelj na strani odjemalca]
A1[Proces vaše aplikacije] --> M1[Ponudnik modela]
end
subgraph P2[Gostujoči agent]
A2[Tanjši odjemalec] --> F2[Storitev Foundry agenta]
F2 --> M2[Model + Orodja + Trgovina niti]
end
subgraph P3[Delovni proces agenta]
A3[Orkestrator] --> S1[Agent za razvrščanje]
S1 --> S2[Agent za reševanje]
S2 --> H[Vozlišče človeškega odobritve]
H --> S3[Agent za ukrepe]
end
Uvajanje agenta ni enkraten push. Je zanka in zelo spominja na cikel izdaje programske opreme, ker pravzaprav to je.
flowchart LR
Create[Ustvari / Avtor] --> Version[Različica]
Version --> Evaluate[Ocenjuj brez povezave]
Evaluate -->|prestane preizkus| Deploy[Namesti gostovano]
Evaluate -->|ne uspe na preizkusu| Create
Deploy --> Observe[Opazuj na spletu]
Observe --> Improve[Zberi napake]
Improve --> Create
Deploy --> Retire[Umakni staro različico]
Ključna ideja, prinesena iz Lekcije 10: ocenjevanje brez povezave je vrata, ne zatemnitev. Nova različica agenta ne gre v javnost, če ne doseže vaših praga ocenjevanja. Opazovanje v živo pa vrača realne napake nazaj v vaš offline testni niz. To je celotni cikel.
Skaliranje agenta se razlikuje od skaliranja brezstanjskega spletnega API-ja, ker lahko vsak zahtevek sproži več dragih klicev modelov in orodij. Štiri tehnike nosijo večino obremenitve.
Brezstansko upravljanje zahtevkov. Ne hranite stanja po uporabniku v pomnilniku procesa. Shranjujte pogovorne niti v trgovinu niti Foundry ali pomnilniški storitvi, da lahko kateri koli primerek obravnava vsak zahtevek. To vam omogoča horizontalno skaliranje — dodajanje primerkov, brez lepljivih sej.
Usmerjanje modela. Ne vsak zahtevek potrebuje vaš najučinkovitejši (in najdražji) model. Usmerite preproste zahtevke — razvrščanje namena, kratki dejanski odgovori — na majhen, hiter model in rezervirajte velik model za resnično razmišljanje. Foundryjev Model Router to lahko naredi za vas, ali pa si sami naredite lahkotnega klasifikatorja. V laboratoriju boste zgradili DIY verzijo.
Predpomnjenje odgovorov. Mnoge podporne poizvedbe so skoraj enake (“kako ponastavim geslo?”). Predpomnite odgovore na pogosta vprašanja in jih posredujte brez prekinitve modela. Tudi skromen delež zadetkov v predpomnilniku pomembno zniža stroške in latenco.
Hkratnost in povratni tlak. Ponudniki modela imajo omejitve hitrosti. Omejite sočasnost, uporabite ponovitve z eksponentno zakasnitvijo in prijazno zatajite (vrsta odzivov “delamo na tem” je boljša kot 500 napak).
flowchart LR
Q[Uporabniški poizvedba] --> C{Zadetek v predpomnilniku?}
C -->|da| R[Vrni shranjeni odgovor]
C -->|ne| Router{Kompleksnost?}
Router -->|enostavno| SLM[Majhen model]
Router -->|zapleteno| LLM[Velik model]
SLM --> Out[Odziv]
LLM --> Out
Out --> Store[Predpomnilnik + sled]
Ne morete upravljati tistega, česar ne vidite. Kot je obravnavano v Lekciji 10, Microsoft Agent Framework nativno oddaja OpenTelemetry sledi — vsak klic modela, vsak klic orodja in vsaka orkestracijska stopnja postane razpon. V produkciji te razpone izvozite v Microsoft Foundry (ali kateri koli OTel-kompatibilni backend), 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")
# izvajanje agenta je samodejno sledeno znotraj tega razpona
Atributi, kot so customer.tier in routed.model, prelevijo zid sledi v vprašanja z odgovori (“ali se poslovne stranke preveč pogosto usmerjajo na majhen model?”).
Stroški v produkcijskih agentih so prevladujoče določeni s tokeni. Trije ročaji, po vplivu:
Vrata ocenjevanja in nadzor stroškov sta ista disciplina gledana z dveh zornih kotov: ocenjevanje določi kakovostno mejo, usmerjanje in predpomnjenje pa vas ohranjata čim bližje stroškovni meji.
Upravljanje. Gostovani agenti dedujejo RBAC, varnost vsebine in revizijsko beleženje Foundryja. Dajte vsakemu agentu upravljano identiteto z minimalnimi privilegiji, ki jih potrebuje — dostop samo za branje do baze znanja, omejen dostop do API-ja za vozovnice, nič več.
Človek v zanki. Nekatera dejanja so preveč pomembna, da bi jih avtomatizirali neposredno — izplačilo vračila, brisanje računa, eskalacija pravni ekipi. Microsoft Agent Framework podpira orodja, ki zahtevajo odobritev: agent predlaga dejanje, izvajanje se ustavi, človek odobri ali zavrne, potek dela se nadaljuje. Primerek ste videli v Lekciji 6; tukaj ga uvajate.
MCP v produkciji. MCP omogoča agentu uporabo zunanjih orodij preko standardnega vmesnika. V produkciji obravnavajte vsak MCP strežnik kot nezanesljivo mejo: vsadite verzijo strežnika, pognajte ga z omejeno identiteto, validirajte njegove rezultate in nikoli ne odkrivajte skrivnosti. MCP strežnik je odvisnost, odvisnosti pa se popravljajo, revidirajo in omejujejo.
flowchart TB
subgraph Dev[Razvojna arhitektura]
D1[Zvezek] --> D2[Agentski okvir]
D2 --> D3[Ponudnik modela]
D2 --> D4[Lokalna orodja]
end
subgraph Deploy[Arhitektura uvajanja]
E1[CI potek dela] --> E2[Vrata ocenjevanja]
E2 -->|uspešno| E3[Storitvena agentura Foundry]
E3 --> E4[Različica gostujočega agenta]
end
subgraph Run[Čas izvajanja arhitekture]
F1[Odjemalska aplikacija] --> F2[Gostujoči agent]
F2 --> F3[Usmerjevalnik modelov]
F2 --> F4[Azure AI Search RAG]
F2 --> F5[Storitve spomina]
F2 --> F6[MCP orodja]
F2 --> F7[OTel -> sledenje Foundry]
F2 --> F8[Človeško odobritev]
end
Ta trije diagrami — razvoj, uvajanje, zagon — so isti agent v treh življenjskih fazah. Sledi laboratorij, ki vas vodi skozi njegovo gradnjo.
Odprite code_samples/16-python-agent-framework.ipynb in ga obdelajte od začetka do konca. Sestavili boste Contoso agenta za podporo strankam z vsemi produkcijskimi funkcijami:
Zvezek je organiziran tako, da je vsaka produkcijska skrb samostojen, zagonljiv odsek. Jedro je upravljalec zahtevkov s kombinacijo usmerjanja in predpomnjenja:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. Postrezi iz predpomnilnika, kadar lahko.
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. Usmeri po zahtevnosti za nadzor stroškov.
model = "gpt-5-nano" if is_simple(query) else "gpt-5-mini"
# 3. Za opaznost zaženi agenta znotraj sledilnega odseka.
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. Predpomni in vrni.
response_cache.set(normalize(query), response.text)
return response.text
Vrata ocenjevanja, ki varujejo izdajo, izgledajo 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 # principirajte samo, če vrata prestopijo
Preberite vsako vrstico — zvezek ohranja primere namerno majhne, da ni nič skritega za klicem v okvir.
Vrata ocenjevanja zgoraj tečejo offline proti vašemu agentu. Ko je agent uvajan kot Gostovani agent, potrebujete še en, še cenejši test: ali uvajani končni naslov dejansko odgovarja?
“Uspešno” uvajanje le dokazuje, da je kontrolna ploskev sprejela definicijo — ne dokazuje, da agent odgovarja. Manjkajoča odvisnost, napačno usmerjanje modela ali potekla povezava lahko pustijo zeleno uvajanje, ki ne vrne ničesar. Dimni test to zazna v nekaj sekundah, pri vsakem uvajanju, brez stroškov polnega ocenjevanja.
Ta repozitorij ponuja takoj pripravljen cevovod dimnega testa, ki temelji na AI Smoke Test GitHub akciji:
tests/lesson-16-smoke-tests.json vsebuje pozive in trditve za Contoso podpornega agenta (odgovore, utemeljene na politiki, iskanje naročila, ostati znotraj teme in večkratno kontinuiteto niti). Katalogi za agente iz drugih lekcij živijo zraven — glejte tests/README.md..github/workflows/smoke-test.yml prijavi z Azure OIDC in pošlje vsak poziv na končni naslov agentovega Responses endpointa, neuspeh pri katerikoli trditvi prekine delo.- 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 zavihka Actions, ko je vaš agent nameščen, in zagotovite konec točke vašega projekta Foundry in ime agenta. Federirana identiteta potrebuje vlogo Azure AI User na obsegu projekta Foundry. Pomislite na plasti kot na piramido: dimni testi (dosegljiv in odziven?) se izvajajo pri vsakem uvajanju, offline ocenjevanje (dovolj dobro za izdajo?) se izvaja pred promocijo, in online ocenjevanje (kako se obnese v praksi?) poteka neprekinjeno.
Preizkusite svoje razumevanje, preden nadaljujete z nalogo.
1. Približno koliko produkcijskega agenta je “model” in kaj je ostalo?
2. Kdaj bi izbrali gostujočega agenta namesto na odjemalcu gostujočega agenta?
3. Zakaj mora biti skalabilen agent brezstaten v svojem procesnem pomnilniku?
4. Kateri problem rešuje usmerjanje modelov in kako se povezuje z ocenjevanjem?
5. Kaj je “vrata ocenjevanja” in kje se nahajajo v življenjskem ciklu?
6. Zakaj je MCP strežnik v produkciji treba obravnavati kot nezaupljivo mejo?
7. Katera ena sama sprememba običajno najbolj vpliva na stroške produkcijskega agenta in zakaj?
8. Kakšno vlogo imajo atributi razpona, kot sta customer.tier in routed.model, pri opazljivosti?
Vzemite agenta za podporo strankam iz laboratorija in ga utrdite za določen scenarij: agent za podporo za obračun naročnin SaaS podjetja.
Vaša oddaja naj vključuje:
get_subscription_status, get_invoice in issue_credit (krediti nad 50 $ zahtevajo človeško odobritev).Napišite kratek odstavek (v markdown celici), ki pojasnjuje, katero pravilo usmerjanja modelov ste izbrali in kako bi ga preverili z realnim prometom. Pravilnega odgovora ni — ocenjevali vas bodo glede na to, ali so produkcijske skrbi povezane smiselno.
V tej lekciji ste premaknili agenta iz prototipa v produkcijo z Microsoft Foundry:
Naslednja lekcija bo obratna pot: namesto skaliranja agentov v oblak jih boste prenesli dol na eno razvijalsko napravo in jih poganjali povsem lokalno.
Ustvarjanje 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.