Wdrażanie skalowalnych agentów z Microsoft Foundry
Umiejętność towarzysząca do Lekcji 16 – Wdrażanie skalowalnych agentów.
Użyj jej, aby pomóc uczącemu się przenieść agenta z prototypu do skalowalnego, obserwowalnego
wdrożenia produkcyjnego. Oparte każdą rekomendację na treści lekcji i
działającej notatce; nie wymyślaj API Foundry.
Wyzwalacze
Aktywuj tę umiejętność, gdy uczący się chce:
- Wdrożyć agenta w Microsoft Foundry jako hostowanego agenta i uczynić go wersjonowanym/obserwowalnym.
- Wybrać między wzorcami wdrożenia hostowane przez klienta, hostowanego agenta oraz agent-workflow.
- Dodać rutowanie modelu, buforowanie odpowiedzi lub ograniczoną współbieżność, aby kontrolować opóźnienia i koszty.
- Dodać bramkę oceny, aby zła wersja agenta nie została wysłana.
- Dodać krok zatwierdzenia z udziałem człowieka dla działań wysokiego ryzyka.
- Instrumentować agenta śledzeniem OpenTelemetry dla obserwowalności produkcyjnej.
- Test dymny wdrożonego agenta jako szybka bramka po wdrożeniu.
Główny model mentalny
Agent produkcyjny to w dużej mierze operacyjny szkielet wokół modelu (~80%),
a nie sam model. Odnieś każdą rekomendację do jednego z tych aspektów:
| Aspekt |
Prototyp → Produkcja |
| Hosting |
notatnik → wersjonowana usługa hostowana |
| Tożsamość |
twoje az login → zarządzana tożsamość + ograniczony RBAC |
| Stan |
w pamięci → zewnętrzny magazyn wątków/pamięci |
| Błąd |
traceback → ponowne próby, zapasowe działania, alerty |
| Koszt |
"kilka centów" → monitorowany, kierowany, buforowany, budżetowany |
| Jakość |
ocenianie wzrokowe → zautomatyzowana bramka oceny |
| Zaufanie |
twoja akceptacja → polityka + człowiek w pętli |
Wzorce wdrożenia (wybierz jeden lub połącz)
- Hostowane przez klienta — pętla rozumowania działa w twoim procesie. Maksymalna kontrola; ty zarządzasz skalowaniem/stanem.
- Hostowany agent (Foundry Agent Service) — Foundry hostuje pętlę, przechowuje wątki, wymusza RBAC/bezpieczeństwo treści, pokazuje agenta w portalu. Mniej kontroli, znacznie mniejsza powierzchnia operacyjna.
- Agent workflow — wielu agentów/narzędzi połączonych w graf z rozgałęzieniami, węzłami zatwierdzającymi i trwałymi punktami kontrolnymi.
Cykl życia (pętla wysyłająca agenta)
create → wersjonuj → oceniaj (bramka) → wdrażaj jako hostowanego → obserwuj online → zbieraj błędy → powtórz.
Ocena offline to bramka, nie dodatek — wersja nie zostanie wysłana
, jeśli nie przejdzie progu. Obserwowalność online przekazuje rzeczywiste błędy
do zestawu testów offline.
Dźwignie skalowania i kosztów (w kolejności priorytetu)
- Dopasuj rozmiar modelu — użyj najmniejszego modelu, który przejdzie bramkę oceny.
- Routowanie według złożoności — mały/szybki model do prostych zapytań, duży model do prawdziwego rozumowania (własny klasyfikator lub Foundry Model Router).
- Buforowanie — obsługuj niemal identyczne zapytania bez wywołania modelu.
- Projekt bezstanowy + ograniczona współbieżność — zewnętrzny stan; ponawiaj próby z opóźnieniem.
Kluczowe wzorce do odwzorowania
Wskaż uczącemu się te fragmenty w notatniku
16-python-agent-framework.ipynb:
- Obsługa żądań: cache → routowanie według złożoności → śledzenie span → wykonanie → cache.
- Bramka oceny: oceniaj zestaw testowy offline; zwracaj
pass_rate >= threshold i wdrażaj tylko jeśli prawda.
- Zatwierdzenie człowieka:
@tool(approval_mode="always_require") dla działań takich jak duże zwroty.
- Śledzenie: owijaj każde żądanie w
tracer.start_as_current_span(...) i ustawiaj atrybuty takie jak routed.model, customer.id.
Test dymny wdrożonego agenta
Po wdrożeniu sprawdź, czy punkt końcowy faktycznie odpowiada (zielone wdrożenie może być
ciche). Użyj akcji AI Smoke Test
przez .github/workflows/smoke-test.yml
z katalogiem w tests/. Runner wysyła POST każdego
promptu do POST {project_endpoint}/agents/{agent_name}/endpoint/protocols/openai/responses
i sprawdza tekst odpowiedzi. Tożsamość potrzebuje roli Azure AI User
w zakresie projektu Foundry; audiencja tokena musi być https://ai.azure.com/.
Nakładaj bramki: test dymny (osiągalność/odpowiedź, każde wdrożenie) → ocena offline
(wystarczająco dobra do wysłania, przed promocją) → ocena online (jak sobie radzi w praktyce, ciągła).
Kontrole przedsiębiorstwa
- RBAC: daj każdemu hostowanemu agentowi zarządzaną tożsamość z minimalnymi uprawnieniami.
- MCP w produkcji: traktuj każdy serwer MCP jako nieufną granicę — przypnij wersję, ogranicz tożsamość, weryfikuj wyniki, ograniczaj tempo, nigdy nie ujawniaj sekretów.
Bariery ochronne dla asystenta
- Preferuj kanoniczny wzorzec
FoundryChatClient(...) + provider.as_agent(...) używany w całym kursie.
- Nie obiecuj wyników live-Azure, których nie zweryfikowałeś; zalecaj workflow testu dymnego, aby potwierdzić wdrożenie.
- Trzymaj ocenę i porady kosztowe powiązane: ocena ustala minimalną jakość, routowanie/buforowanie utrzymują koszt blisko tego poziomu.
Zastrzeżenie:
Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Choć dążymy do dokładności, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku źródłowym należy uznawać za autorytatywne źródło. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.
1---2name: deploying-scalable-agents-193description: Wdrażanie skalowalnych agentów z Microsoft Foundry4license: MIT5---6# Wdrażanie skalowalnych agentów z Microsoft Foundry78> Umiejętność towarzysząca do [Lekcji 16 – Wdrażanie skalowalnych agentów](../../../16-deploying-scalable-agents/README.md).9> Użyj jej, aby pomóc uczącemu się przenieść agenta z prototypu do skalowalnego, obserwowalnego10> wdrożenia produkcyjnego. Oparte każdą rekomendację na treści lekcji i11> działającej notatce; nie wymyślaj API Foundry.1213## Wyzwalacze1415Aktywuj tę umiejętność, gdy uczący się chce:16- Wdrożyć agenta w Microsoft Foundry jako **hostowanego agenta** i uczynić go wersjonowanym/obserwowalnym.17- Wybrać między wzorcami wdrożenia **hostowane przez klienta, hostowanego agenta oraz agent-workflow**.18- Dodać **rutowanie modelu**, **buforowanie odpowiedzi** lub **ograniczoną współbieżność**, aby kontrolować opóźnienia i koszty.19- Dodać **bramkę oceny**, aby zła wersja agenta nie została wysłana.20- Dodać krok **zatwierdzenia z udziałem człowieka** dla działań wysokiego ryzyka.21- Instrumentować agenta śledzeniem **OpenTelemetry** dla obserwowalności produkcyjnej.22- **Test dymny** wdrożonego agenta jako szybka bramka po wdrożeniu.2324## Główny model mentalny2526Agent produkcyjny to w dużej mierze operacyjny szkielet *wokół* modelu (~80%),27a nie sam model. Odnieś każdą rekomendację do jednego z tych aspektów:2829| Aspekt | Prototyp → Produkcja |30|---------|------------------------|31| Hosting | notatnik → wersjonowana usługa hostowana |32| Tożsamość | twoje `az login` → zarządzana tożsamość + ograniczony RBAC |33| Stan | w pamięci → zewnętrzny magazyn wątków/pamięci |34| Błąd | traceback → ponowne próby, zapasowe działania, alerty |35| Koszt | "kilka centów" → monitorowany, kierowany, buforowany, budżetowany |36| Jakość | ocenianie wzrokowe → zautomatyzowana bramka oceny |37| Zaufanie | twoja akceptacja → polityka + człowiek w pętli |3839## Wzorce wdrożenia (wybierz jeden lub połącz)40411. **Hostowane przez klienta** — pętla rozumowania działa w twoim procesie. Maksymalna kontrola; ty zarządzasz skalowaniem/stanem.422. **Hostowany agent (Foundry Agent Service)** — Foundry hostuje pętlę, przechowuje wątki, wymusza RBAC/bezpieczeństwo treści, pokazuje agenta w portalu. Mniej kontroli, znacznie mniejsza powierzchnia operacyjna.433. **Agent workflow** — wielu agentów/narzędzi połączonych w graf z rozgałęzieniami, węzłami zatwierdzającymi i trwałymi punktami kontrolnymi.4445## Cykl życia (pętla wysyłająca agenta)4647`create → wersjonuj → oceniaj (bramka) → wdrażaj jako hostowanego → obserwuj online → zbieraj błędy → powtórz`.48**Ocena offline to bramka, nie dodatek** — wersja nie zostanie wysłana49, jeśli nie przejdzie progu. Obserwowalność online przekazuje rzeczywiste błędy50do zestawu testów offline.5152## Dźwignie skalowania i kosztów (w kolejności priorytetu)53541. **Dopasuj rozmiar modelu** — użyj najmniejszego modelu, który przejdzie bramkę oceny.552. **Routowanie według złożoności** — mały/szybki model do prostych zapytań, duży model do prawdziwego rozumowania (własny klasyfikator lub Foundry Model Router).563. **Buforowanie** — obsługuj niemal identyczne zapytania bez wywołania modelu.574. **Projekt bezstanowy + ograniczona współbieżność** — zewnętrzny stan; ponawiaj próby z opóźnieniem.5859## Kluczowe wzorce do odwzorowania6061Wskaż uczącemu się te fragmenty w notatniku62[`16-python-agent-framework.ipynb`](../../../16-deploying-scalable-agents/code_samples/16-python-agent-framework.ipynb):6364- **Obsługa żądań**: cache → routowanie według złożoności → śledzenie span → wykonanie → cache.65- **Bramka oceny**: oceniaj zestaw testowy offline; zwracaj `pass_rate >= threshold` i wdrażaj tylko jeśli prawda.66- **Zatwierdzenie człowieka**: `@tool(approval_mode="always_require")` dla działań takich jak duże zwroty.67- **Śledzenie**: owijaj każde żądanie w `tracer.start_as_current_span(...)` i ustawiaj atrybuty takie jak `routed.model`, `customer.id`.6869## Test dymny wdrożonego agenta7071Po wdrożeniu sprawdź, czy punkt końcowy faktycznie odpowiada (zielone wdrożenie może być72ciche). Użyj akcji [AI Smoke Test](https://github.com/marketplace/actions/ai-smoke-test)73przez [`.github/workflows/smoke-test.yml`](../../../../../.github/workflows/smoke-test.yml)74z katalogiem w [`tests/`](../../../tests/README.md). Runner wysyła POST każdego75promptu do `POST {project_endpoint}/agents/{agent_name}/endpoint/protocols/openai/responses`76i sprawdza tekst odpowiedzi. Tożsamość potrzebuje roli **Azure AI User**77w zakresie projektu Foundry; audiencja tokena musi być `https://ai.azure.com/`.7879Nakładaj bramki: **test dymny** (osiągalność/odpowiedź, każde wdrożenie) → **ocena offline**80(wystarczająco dobra do wysłania, przed promocją) → **ocena online** (jak sobie radzi w praktyce, ciągła).818283## Kontrole przedsiębiorstwa8485- **RBAC**: daj każdemu hostowanemu agentowi zarządzaną tożsamość z minimalnymi uprawnieniami.86- **MCP w produkcji**: traktuj każdy serwer MCP jako nieufną granicę — przypnij wersję, ogranicz tożsamość, weryfikuj wyniki, ograniczaj tempo, nigdy nie ujawniaj sekretów.8788## Bariery ochronne dla asystenta8990- Preferuj kanoniczny wzorzec `FoundryChatClient(...)` + `provider.as_agent(...)` używany w całym kursie.91- Nie obiecuj wyników live-Azure, których nie zweryfikowałeś; zalecaj workflow testu dymnego, aby potwierdzić wdrożenie.92- Trzymaj ocenę i porady kosztowe powiązane: ocena ustala minimalną jakość, routowanie/buforowanie utrzymują koszt blisko tego poziomu.9394---9596<!-- CO-OP TRANSLATOR DISCLAIMER START -->97**Zastrzeżenie**:98Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Choć dążymy do dokładności, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub niedokładności. Oryginalny dokument w jego języku źródłowym należy uznawać za autorytatywne źródło. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.99<!-- CO-OP TRANSLATOR DISCLAIMER END -->