![]()
Do te točke v tečaju ste zgradili agente, ki tečejo na vašem prenosniku, znotraj zvezka, vodeni z az login in nekaj spremenljivkami okolja. To je natanko pravi način za učenje. Ni pa pravi način za zagon agenta, na katerega se zanaša tisoče strank ob 3. uri zjutraj.
Ta lekcija govori o vrzeli med “deluje na mojem računalniku” in “deluje zanesljivo in poceni v produkciji.” To vrzel zapremo s pomočjo Microsoft Foundry in Microsoft Foundry Agent Service, in to storimo tako, da zgradimo resničnega agenta za podporo strankam, ki ima orodja, iskanje, pomnilnik, ocenjevanje in nadzor.
Ta lekcija obravnava:
Po končani tej lekciji boste znali:
Ta lekcija predvideva, da ste zaključili prejšnje lekcije in se udobno spoznate z:
Prav tako boste potrebovali:
az login).requirements.txt.Prototipni agent in produkcijski agent imata skupno jedro zanke — sklepanje, klic orodij, odziv. Spremeni se vse, kar je zavito okoli te zanke. Model predstavlja morda 20 % produkcijskega agenta; preostalih 80 % je operativni okvir.
| Skrb | Prototip | Produkcija |
|---|---|---|
| Gostovanje | Teče v vašem zvezku | 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 | Eksternalizirano (shranjevanje nitk, servis pomnilnika) |
| Napaka | Vidite sled napake | Poskusi, rezervne poti, mrtve črke, opozorila |
| Stroški | “To je nekaj centov” | Spremljano na zahtevo, usmerjeno, predpomnjeno, proračunano |
| Kakovost | Ocena po občutku | Samodejno ocenjevano pred vsako izdajo |
| Zaupanje | Potrjujete vsak ukrep | Politika + človek v zanki za tvegane akcije |
Zadržite ta tabelo v mislih. Vsak spodnji razdelek ustreza enemu od teh vrstic.
Obstajajo trije vzorci, ki jih boste uporabljali, pogosto v kombinaciji.
Agent objekt prebiva znotraj vašega procesa aplikacije. Vaša koda kliče model neposredno; zanka sklepov teče v vaši storitvi. To je tisto, kar so naredile vse prejšnje lekcije.
Agent je registriran kot sredstvo v Microsoft Foundry. Foundry gostuje zanko sklepov, shranjuje nitke, izvaja varnost vsebine in RBAC, ter omogoča, da je agent viden v portalu Foundry. Vaša aplikacija postane tanek odjemalec, ki ustvarja nitke in bere odgovore.
Več agentov (in orodij) je sestavljeno v graf z eksplicitnim tokom kontrole — zaporedni koraki, vejitve, vozlišča človeške potrditve in vzdržljivi kontrolni točki, ki lahko premorijo in nadaljujejo. To je zmožnost Microsoft Agent Framework Workflows uporabljena na skali uvajanja.
flowchart TB
subgraph P1[Gostovano pri odjemalcu]
A1[Proces vaše aplikacije] --> M1[Ponudnik modela]
end
subgraph P2[Gostovano agent]
A2[Tanki odjemalec] --> F2[Storitev agentov Foundry]
F2 --> M2[Model + Orodja + Shramba niti]
end
subgraph P3[Potek dela agenta]
A3[Orkestrator] --> S1[Agent za triažo]
S1 --> S2[Agent za reševanje]
S2 --> H[Vozlišče človeškega odobritja]
H --> S3[Akcijski agent]
end
Uvajanje agenta ni enkraten push. Je zanka in zelo spominja na cikel izdaje programske opreme, ker je to natanko to.
flowchart LR
Create[Ustvari / Avtor] --> Version[Različica]
Version --> Evaluate[Oceni brez povezave]
Evaluate -->|prestavi preizkus| Deploy[Namesti gostovano]
Evaluate -->|ne prestavi preizkusa| Create
Deploy --> Observe[Opazuj na spletu]
Observe --> Improve[Zberi napake]
Improve --> Create
Deploy --> Retire[Umakni staro različico]
Ključna ideja, prevzeta iz Lekcije 10: ocenjevanje brez povezave je vrata, ne stranski produkt. Nova verzija agenta ne izide, če ne prestane vaših ocenjevalnih pragov. Opazljivost v spletu nato vrača resnične napake nazaj v vaš offline testni nabor. To je celotna zanka.
Skaliranje agenta se razlikuje od skaliranja brezstatenega spletnega API-ja, ker vsak zahtevek lahko sproži več dragih klicev modela in orodij. Štiri tehnike nosijo največ obremenitve.
Obdelava brezstatenih zahtev. V svojem pomnilniku procesa ne hranite stanja posameznega uporabnika. Shranite niti pogovorov v Foundry threadstore ali memorijski servis, tako da lahko katerakoli instanca obdela katerokoli zahtevo. To vam omogoča horizontalno skaliranje — dodajte instance, brez lepljivih sej.
Usmerjanje modela. Ne vsaka zahteva potrebuje vaš najbolj zmogljiv (in najdražji) model. Preproste zahteve — klasifikacija namena, kratki dejanski odgovori — usmerite na majhen, hiter model, velikega pa rezervirajte za pravo sklepanje. Foundryjev Model Router to lahko stori namesto vas, ali pa sami implementirate lahkoten klasifikator. Ta različica bo relativno enostavna in jo boste zgradili v laboratoriju.
Predpomnjenje odzivov. Veliko poizvedb podpore je skoraj enakih (“kako ponastavim geslo?”). Predpomnite odgovore na pogosta vprašanja in jih strežite brez klica modela. Tudi zmerna stopnja udarcev v predpomnilnik znatno zniža stroške in latenco.
Sočasnost in povratni tlak. Ponudniki modelov imajo omejitve hitrosti. Omejite svojo sočasnost, uporabite poskuse z eksponentnim vračanjem nazaj, in neuspeli pokušaji naj prijazno odpovejo (vrstni odgovor “ukvarjamo se s tem” je boljši kot 500 napaka).
flowchart LR
Q[Poizvedba uporabnika] --> C{Zadetek v predpomnilniku?}
C -->|da| R[Vrni shranjen odgovor]
C -->|ne| Router{Kompleksnost?}
Router -->|enostavno| SLM[Majhen model]
Router -->|zapleteno| LLM[Velik model]
SLM --> Out[Odgovor]
LLM --> Out
Out --> Store[Predpomnilnik + sled]
Ne morete upravljati tistega, česar ne vidite. Kot je razloženo v Lekciji 10, Microsoft Agent Framework zadrži OpenTelemetry sledi nativno — vsak klic modela, orodja in korak orkestracije postane sledi. V produkciji izvažate te sledi v Microsoft Foundry (ali katerokoli OTel-kompatibilno ozadje), 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-4.1-mini")
# izvajanje agenta se samodejno sledi znotraj tega obsega
Atributi kot customer.tier in routed.model so tisti, ki spremenijo zid sledi v vprašanja z odgovori (“ali podjetniške stranke preveč pogosto usmerjamo v majhen model?”).
Stroški v produkcijskih agentih so dominirani s tokeni. Tri ročice, po vplivu:
Ocenjevalna vrata in nadzor stroškov sta ista disciplina iz dveh vidikov: ocenjevanje vam pove kakovostno spodnjo mejo, usmerjanje in predpomnjenje pa vas držijo čim bližje stroškovni meji te spodnje meje.
Upravljanje. Gostovani agenti dedujejo Foundryjev RBAC, varnost vsebine in revizijske zapise. Vsakemu agentu dajte upravljano identiteto z najmanj pravicami, ki jih potrebuje — samo za branje baze znanja, omejen dostop do vmesnika za prijavo vozovnic, nič več.
Človek v zanki. Nekateri ukrepi so preveč pomembni, da bi jih avtomatizirali brez nadzora — vračilo denarja, brisanje računa, eskalacija pravni ekipi. Microsoft Agent Framework podpira orodja, ki zahtevajo odobritev: agent predlaga ukrep, izvedba se začasno ustavi, človek potrdi ali zavrne, potek dela se nadaljuje. Primitiv ste videli v Lekciji 6; tukaj jo uvajate.
MCP v produkciji. MCP omogoča vašemu agentu uporabo zunanjih orodij preko standardnega vmesnika. V produkciji ravnajte z vsakim MCP strežnikom kot z neizkušenim prehodom: določite verzijo strežnika, ga poganjajte z omejeno identiteto, preverite njegove izhode in nikoli mu ne razkrivajte skrivnosti. MCP strežnik je odvisnost, odvisnosti pa je treba popraviti, pregledati in omejiti hitrost.
flowchart TB
subgraph Dev[Razvojna arhitektura]
D1[Zvezek] --> D2[Okvir za agente]
D2 --> D3[Ponudnik modela]
D2 --> D4[Lokalna orodja]
end
subgraph Deploy[Arhitektura uvajanja]
E1[CI cevovod] --> E2[Vrata ocenjevanja]
E2 -->|uspešno| E3[Storitev Foundry Agent]
E3 --> E4[Različica gostujočega agenta]
end
subgraph Run[Arhitektura za izvajanje]
F1[Klientska aplikacija] --> F2[Gostujoči agent]
F2 --> F3[Usmerjevalnik modela]
F2 --> F4[Azure AI Search RAG]
F2 --> F5[Storitev pomnilnika]
F2 --> F6[Orodja MCP]
F2 --> F7[OTel -> Foundry sledenje]
F2 --> F8[Človeško odobritev]
end
Ti trije diagrami — razvoj, uvajanje, izvajanje — predstavljajo istega agenta v treh življenjskih fazah. Sledijoča vaja vas vodi skozi njegovo izdelavo.
Odprite code_samples/16-python-agent-framework.ipynb in ga preizkusite od začetka do konca. Sestavili boste agenta za podporo strankam Contoso, ki vključuje vse produkcijske skrbi:
Zvezek je organiziran tako, da je vsaka produkcijska skrb samostojni, izvajalni odsek. Središče je obdelovalec zahtevka z usmerjanjem in predpomnjenjem:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. Postrezi iz predpomnilnika, kadar je mogoče.
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. Usmeri glede na kompleksnost za nadzor stroškov.
model = "gpt-4.1-mini" if is_simple(query) else "gpt-4.1"
# 3. Za opazovanje poženi agenta znotraj sledi.
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
Ocenjevalna vrata, ki varujejo izdajo, izgledajo tako:
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 # namesti samo, če vrata prestanejo preverjanje
Preberite vsako vrstico — zvezek ohranja primitivne dele namensko majhne, da ne ostane nič skrito za klicem okvirja.
Ocenjevalna vrata zgoraj delujejo offline na vašem agentu. Ko je agent uveden kot Hosted Agent, potrebujete še en, še cenejši test: ali dejanski konec odgovarja?
Uspešno uvajanje dokazuje le, da je kontrolna ravnina 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č. Smoke test to ujame v nekaj sekundah, pri vsakem uvajanju, brez stroškov popolnega ocenjevanja.
Ta repozitorij vsebuje pripravljeno pipelines za smoke test, zgrajeno na osnovi GitHub akcije AI Smoke Test:
tests/lesson-16-smoke-tests.json vsebuje pozive in trditve za podpornega agenta Contoso (zadržani odgovori o politiki, iskanje po naročilu, ostajanje v temi in večvstranska koherenca pogovora). Katalogi za agente drugih lekcij so shranjeni zraven — glejte tests/README.md..github/workflows/smoke-test.yml se prijavi z Azure OIDC in vsakega poziva pošlje v agentov konec “Responses”, ter prekine nalogo, če katera koli trditev ni izpolnjena.- 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 Dejanja (Actions), ko je vaš agent nameščen, in posredujte končno točko projekta Foundry ter 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 ob vsakem uvajanju, offline ocenjevanje (dovolj dobro za pošiljanje?) pred promocijo, in spletno ocenjevanje (kako deluje v naravi?) poteka neprekinjeno.
Preizkusite svoje razumevanje, preden preidete na nalogo.
1. Približno koliko produkcijskega agenta je “model,” in kaj je ostalo?
2. Kdaj bi izbrali gostovanega agenta namesto agenta, gostovanega pri odjemalcu?
3. Zakaj mora biti skalabilni agent brezstanjenski v svojem procesnem pomnilniku?
4. Kateri problem rešuje usmerjanje modela in kako je povezano z ocenjevanjem?
5. Kaj je “evalvacijski prehod” in kje v življenjskem ciklu se nahaja?
6. Zakaj je treba v produkciji MCP strežnik obravnavati kot nezaupanja vreden mejnik?
7. Katera posamezna sprememba običajno najbolj vpliva na stroške produkcijskega agenta in zakaj?
8. Kakšno vlogo imajo atributi obsega, kot so customer.tier in routed.model v opazljivosti?
Vzemite agenta za podporo strankam iz laboratorija in ga utrdite za določen scenarij: agent za podporo naročninam pri SaaS podjetju.
Vaša oddaja mora:
get_subscription_status, get_invoice in issue_credit (dobropisi nad 50 USD zahtevajo človeško odobritev).Napišite kratek odstavek (v markdown celici), ki pojasnjuje, katero pravilo usmerjanja modela ste izbrali in kako bi ga validirali z realnim prometom. Obstaja več pravih odgovorov — ocenjevali vas bodo glede koherentnosti povezanosti produkcijskih skrbi.
V tej lekciji ste premaknili agenta iz prototipa v produkcijo z Microsoft Foundry:
Naslednja lekcija gre v nasprotno smer: namesto razširitve agentov v oblak jih boste zmanjšali na en sam razvijalski računalnik in jih poganjali povsem lokalno.
Izgradnja 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.