![]()
Zatiaľ ste v kurze vytvorili agentov, ktorí bežia na vašom notebooku, v rámci poznámkového bloku, ovládaní pomocou az login a niekoľkých premenných prostredia. To je presne správny spôsob, ako sa učiť. Nie je to však správny spôsob, ako prevádzkovať agenta, na ktorom závisia tisíce zákazníkov o 3 hodine ráno.
Táto lekcia sa týka rozdielu medzi „funguje to na mojom počítači“ a „funguje to spoľahlivo a cenovo dostupne v produkcii.“ Tento rozdiel zacielime pomocou Microsoft Foundry a Microsoft Foundry Agent Service, a urobíme to vytvorením skutočného zákazníckeho podporného agenta, ktorý má nástroje, vyhľadávanie, pamäť, hodnotenie a monitoring.
Táto lekcia pokrýva:
Po dokončení tejto lekcie budete vedieť:
Táto lekcia predpokladá, že ste absolvovali predchádzajúce lekcie a rozumiete:
Tiež budete potrebovať:
az login).requirements.txt.Prototypový agent a produkčný agent zdieľajú rovnakú základnú slučku — rozumovanie, volanie nástrojov, odpoveď. Čo sa mení, je všetko okolo tejto slučky. Model tvorí možno 20 % produkčného agenta; zvyšných 80 % je operačný základ.
| Obava | Prototyp | Produkcia |
|---|---|---|
| Hosťovanie | Beží vo vašom poznámkovom bloku | Beží ako hosťovaná služba, verzovaná a postupne nasadzovaná |
| Identita | váš token z az login |
Spravovaná identita s obmedzeným RBAC |
| Stav | V pamäti, stratený po reštarte | Externý (uloženie vlákien, servis pamäte) |
| Zlyhanie | Vidíte trasovanie chýb | Opakované pokusy, záložné mechanizmy, dead-letter, upozornenia |
| Náklady | “Je to len pár centov” | Sleduje sa na požiadavku, smeruje sa, kešuje sa, rozpočtuje sa |
| Kvalita | Pozriete si výstup | Automaticky hodnotené pred každým vydaním |
| Dôvera | Schválite každú akciu | Politika + človek v slučke pre rizikové akcie |
Majte túto tabuľku na pamäti. Každá sekcia nižšie sa vzťahuje na jeden riadok.
Existujú tri vzory, ktoré často použijete v kombinácii.
Agent objekt žije vo vašom aplikačnom procese. Váš kód volá poskytovateľa modelu priamo; rozumová slučka beží vo vašej službe. To je to, čo ste robili v každej predchádzajúcej lekcii.
Agent je registrovaný ako zdroj v Microsoft Foundry. Foundry hosťuje rozumovú slučku, ukladá vlákna, vynucuje bezpečnosť obsahu a RBAC a robí agenta viditeľným v foundry portáli. Vaša aplikácia sa stáva tenkým klientom, ktorý vytvára vlákna a číta odpovede.
Viacerí agenti (a nástroje) sú zložené do grafu s explicitným riadením toku — sekvenčné kroky, vetvenie, uzly ľudského schválenia a trvanlivé kontrolné body, ktoré sa môžu pozastaviť a obnoviť. Toto je schopnosť Workflows v Microsoft Agent Framework aplikovaná pri škálovaní nasadenia.
flowchart TB
subgraph P1[Hosťované klientom]
A1[Proces vašej aplikácie] --> M1[Poskytovateľ modelu]
end
subgraph P2[Hosťovaný agent]
A2[Tenký klient] --> F2[Služba agenta Foundry]
F2 --> M2[Model + Nástroje + Úložisko vlákien]
end
subgraph P3[Pracovný tok agenta]
A3[Orchestrátor] --> S1[Agent na triedenie]
S1 --> S2[Riešiaci agent]
S2 --> H[Uzol schválenia človekom]
H --> S3[Akčný agent]
end
Nasadenie agenta nie je jednorazový push. Je to slučka, ktorá veľmi pripomína vydávací cyklus softvéru, pretože presne taká je.
flowchart LR
Create[Vytvoriť / Autor] --> Version[Verzia]
Version --> Evaluate[Vyhodnotiť offline]
Evaluate -->|prejde bránou| Deploy[Nasadiť hosťované]
Evaluate -->|neprejde bránou| Create
Deploy --> Observe[Sledovať online]
Observe --> Improve[Zhromaždiť chyby]
Improve --> Create
Deploy --> Retire[Stiahnuť starú verziu]
Kľúčová myšlienka, prevzatá z Lekcie 10: offline hodnotenie je brána, nie dodatočná záležitosť. Nová verzia agenta sa neodošle, pokiaľ neprejde vašimi hodnotiacimi prahmi. Online pozorovateľnosť potom živí skutočné zlyhania späť do offline testovacieho súboru. Toto je celý cyklus.
Škálovanie agenta sa líši od škálovania bezstavového webového API, pretože každá požiadavka môže spustiť viacero nákladných volaní modelu a nástrojov. Štyri techniky nesú väčšinu záťaže.
Bezstavná správa požiadaviek. Neuchovávajte žiadny používateľský stav v pamäti procesu. Uchovávajte konverzačné vlákna v Foundry úložisku vlákien alebo v pamäťovej službe, aby ktorákolvek inštancia mohla spracovať ktorúkoľvek požiadavku. Toto umožňuje horizontálne škálovanie — pridajte inštancie, žiadne viazané relácie.
Smerovanie modelov. Nie každá požiadavka potrebuje váš najvýkonnejší (a najdrahší) model. Smerujte jednoduché požiadavky — klasifikácia zámeru, krátke faktické odpovede — do malého, rýchleho modelu a veľký model rezervujte na skutočné rozumovanie. Foundry Model Router to môže urobiť za vás, alebo si môžete implementovať vlastného ľahkého klasifikátora. DIY verziu vybudujete v laboratóriu.
Ukladanie odpovedí do cache. Mnohé dotazy na podporu sú takmer duplicitné („ako si resetujem heslo?“). Ukladajte odpovede na bežné otázky a poskytujte ich bez toho, aby ste oslovili model. Aj primeraná miera cache zásahu významne znižuje náklady a latenciu.
Súbežnosť a spätný tlak. Poskytovatelia modelov majú obmedzenia rýchlosti. Obmedzte súbežnosť, používajte opakované pokusy s exponenciálnym oneskorením a zlyhajte elegantne (odpoveď „pracujeme na tom“ v poradí je lepšia než 500).
flowchart LR
Q[Užívateľský dopyt] --> C{Hit v cache?}
C -->|áno| R[Vrátiť uloženú odpoveď]
C -->|nie| Router{Zložitosť?}
Router -->|jednoduché| SLM[Malý model]
Router -->|zložité| LLM[Veľký model]
SLM --> Out[Odpoveď]
LLM --> Out
Out --> Store[Cache + stopa]
Nemôžete prevádzkovať, čo nevidíte. Ako bolo pokryté v Lekcii 10, Microsoft Agent Framework emitujem natívne OpenTelemetry stopy — každé volanie modelu, vyvolanie nástroja a krok orchestrácie sa stáva spanom. V produkcii tieto span-y exportujete do Microsoft Foundry (alebo akéhokoľvek backendu kompatibilného s OTel), aby ste mohli:
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")
# vykonávanie agenta je v tomto rozsahu automaticky sledované
Atribúty ako customer.tier a routed.model menia hromadu stop na zodpovedateľné otázky („sú podnikové zákazníci príliš často smerovaní na malý model?“).
Náklady v produkčných agentoch dominujú tokeny. Tri páky, podľa dopadu:
Hodnotiace brány a kontrola nákladov sú tá istá disciplína z dvoch uhlov pohľadu: hodnotenie vám hovorí kvalitný základ, smerovanie a kešovanie udržujú náklady čo najbližšie k tomuto základu.
Správa. Hosťovaní agenti zdedia RBAC, bezpečnosť obsahu a auditovanie Foundry. Dajte každému agentovi spravovanú identitu s najmenšími oprávneniami, ktoré potrebuje — prístup len na čítanie do znalostnej databázy, obmedzený prístup k ticketovaniu API, nič viac.
Človek v slučke. Niektoré akcie sú príliš vážne na plnú automatizáciu — vrátenie peňazí, zmazanie účtu, eskalácia k právnemu tímu. Microsoft Agent Framework podporuje nástroje vyžadujúce schválenie: agent navrhne akciu, vykonanie sa pozastaví, človek schváli alebo odmietne a pracovný tok pokračuje. Primitív ste videli v Lekcii 6; tu ho nasadíte.
MCP v produkcii. MCP umožňuje agentovi využívať externé nástroje cez štandardné rozhranie. V produkcii považujte každý MCP server za nedôveryhodnú hranicu: pevne nastavte verziu servera, spúšťajte ho so škálovanou identitou, overujte jeho výstupy a nikdy ho nespojujte so žiadnymi tajomstvami. MCP server je závislosť, ktorá musí byť patchovaná, auditovaná a obmedzovaná podľa rýchlosti.
flowchart TB
subgraph Dev[Vývojová architektúra]
D1[Notebook] --> D2[Agentový rámec]
D2 --> D3[Poskytovateľ modelu]
D2 --> D4[Lokálne nástroje]
end
subgraph Deploy[Nasadzovacia architektúra]
E1[CI pipeline] --> E2[Brána hodnotenia]
E2 -->|prejsť| E3[Služba agenta Foundry]
E3 --> E4[Verzionovaný hostený agent]
end
subgraph Run[Architektúra behu]
F1[Klientská aplikácia] --> F2[Hostený agent]
F2 --> F3[Router modelov]
F2 --> F4[Azure AI Search RAG]
F2 --> F5[Služba pamäte]
F2 --> F6[MCP nástroje]
F2 --> F7[OTel -> Foundry trasovanie]
F2 --> F8[Schválenie človekom]
end
Tieto tri diagramy — vývoj, nasadenie, beh — sú ten istý agent v troch štádiách života. Nasledujúce laboratórium vás prevedie jeho tvorbou.
Otvorte code_samples/16-python-agent-framework.ipynb a prejdite ho od začiatku do konca. Skompletizujete zákazníckeho podporného agenta Contoso so všetkými produkčnými aspektmi zapojenými:
Poznámkový blok je organizovaný tak, aby každá produkčná záležitosť bola samostatná, spustiteľná sekcia. Jadro tvorí spracovateľ požiadaviek so smerovaním a kešovaním:
async def handle_support_request(query: str, customer_id: str) -> str:
# 1. Podávať z vyrovnávacej pamäte, keď je to možné.
cached = response_cache.get(normalize(query))
if cached:
return cached
# 2. Smerovať podľa zložitosti na kontrolu nákladov.
model = "gpt-5-nano" if is_simple(query) else "gpt-5-mini"
# 3. Spustiť agenta vo vnútri trasy sledovania pre pozorovateľnosť.
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. Uložiť do vyrovnávacej pamäte a vrátiť.
response_cache.set(normalize(query), response.text)
return response.text
Hodnotiaca brána, ktorá stráži vydanie, vyzerá takto:
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 # nasadiť iba ak brána prejde
Prečítajte si každý riadok — poznámkový blok si úmyselne ponecháva primitíva malé, aby nič nebolo skryté za výzvou na rámec.
Vyššie uvedená hodnotiaca brána beží offline proti vášmu agent objektu. Keď je agent nasadený ako Hosťovaný Agent, potrebujete ešte jednu, ešte lacnejšiu kontrolu: naozaj odpovedá nasadený endpoint?
“Úspešné” nasadenie dokazuje len to, že riadiaca rovina akceptovala definíciu — nedokazuje, že agent odpovedá. Chýbajúca závislosť, nesprávne smerovanie modelu alebo expirované pripojenie môžu zanechať zelené nasadenie, ktoré nič nevracia. Smoke test to zachytí za sekundy, pri každom nasadení, bez nákladov plného hodnotenia.
Tento repozitár dodáva pripravenú smoke-test pipeline postavenú na AI Smoke Test GitHub Akcii:
tests/lesson-16-smoke-tests.json obsahuje prompti a asercie pre agenta podpory Contoso (odôvodnené odpovede o politike, vyhľadávanie objednávky, dodržiavanie témy a kontinuita vlákna v viackolových konverzáciách). Katalógy pre agentov z iných lekcií sú vedľa neho — pozri tests/README.md..github/workflows/smoke-test.yml sa prihlási cez Azure OIDC a POSTne každý prompt na endpoint odpovedí agenta, zlyhanie na akejkoľvek asercie spôsobí neúspech úlohy.- name: Smoke-test hosted agent
uses: JFolberth/ai-smoketest@v1
with:
project_endpoint: $
agent_name: ContosoSupportAgent
tests_file: tests/lesson-16-smoke-tests.json
Spustite to z karty Actions po nasadení vášho agenta, pričom zadáte koncový bod projektu Foundry a názov agenta. Federovaná identita potrebuje v rámci projektu Foundry rolu Azure AI User. Predstavte si vrstvy ako pyramídu: smoke testy (dostupné a reagujúce?) sa spúšťajú pri každom nasadení, offline hodnotenie (dosť dobré na vydanie?) sa spúšťa pred povýšením a online hodnotenie (ako si vedie v reálnom prostredí?) beží nepretržite.
Otestujte svoje porozumenie pred pokračovaním k úlohe.
1. Približne koľko produkčného agenta je “model” a čo tvorí zvyšok?
2. Kedy by ste si vybrali Hosted Agenta namiesto agenta hosťovaného klientom?
3. Prečo musí byť škálovateľný agent bezstavový v pamäti svojho procesu?
4. Aký problém rieši smerovanie modelu a ako súvisí s hodnotením?
5. Čo je to “hodnotiaca brána” a kde sa nachádza v životnom cykle?
6. Prečo by mal byť MCP server v produkcii považovaný za nedôveryhodnú hranicu?
7. Ktorá jediná zmena zvyčajne najviac ovplyvňuje náklady produkčného agenta a prečo?
8. Akú úlohu zohrávajú atribúty spanov ako customer.tier a routed.model v pozorovateľnosti?
Vezmite zákazníckeho podporného agenta z laboratória a zosilnite ho pre špecifický scenár: agent podpory pre fakturáciu predplatného pre SaaS spoločnosť.
Vaša úloha by mala:
get_subscription_status, get_invoice a issue_credit (kredity nad 50 $ vyžadujú schválenie človekom).Napíšte krátky odsek (v bunke markdown) vysvetľujúci, ktoré pravidlo smerovania modelov ste si zvolili a ako by ste ho overili na skutočnej prevádzke. Nie je jediná správna odpoveď — hodnotí sa, či sú produkčné obavy spojene koherentne.
V tejto lekcii ste presunuli agenta z prototypu do produkcie s Microsoft Foundry:
Nasledujúca lekcia podnikne opačnú cestu: namiesto škálovania agentov do cloudu ich prinesiete dolé na jeden vývojársky počítač a budete ich spúšťať úplne lokálne.
Budovanie agentov pre použitie počítača (CUA)
Vytváranie lokálnych AI agentov
Vyhlásenie o zodpovednosti: Tento dokument bol preložený pomocou AI prekladateľskej služby Co-op Translator. Hoci sa snažíme o presnosť, vezmite prosím na vedomie, že automatické preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho natívnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.