Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Powiązania agentów dla aplikacji funkcyjnych w Python pozwalają dodawać zachowania agenticzne do istniejących funkcji. Gdy funkcja się uruchamia, rozszerzenie konstruuje agenta lub sesję specyficzną dla SDK z instrukcji Markdown i wstrzykuje ją do handlera jako parametr określonego typu. Twój kod decyduje, kiedy i jak wywołać agenta, wraz z deterministyczną logiką aplikacji.
Ważna
Powiązania agentów dla aplikacji funkcji w języku Python są obecnie dostępne w wersji zapoznawczej. Funkcje, nazwy pakietów i konfiguracja mogą się zmieniać przed ogólną dostępnością.
Aby porównać powiązania agentów z innymi funkcjami związanymi z AI, takimi jak umiejętności hostowane w Azure Functions oraz narzędzia Model Context Protocol (MCP), zobacz opcje integracji AI dla Azure Functions.
Czym jest powiązanie agenta?
Wiązanie agenta to wiązanie wejściowe, które udostępnia skonfigurowanego agenta lub sesję jako parametr typowany funkcji Python. Rozszerzenie łączy instrukcje Markdown z konfiguracją i narzędziami dostawcy aplikacji, dzięki czemu Twój handler nie musi budować i konfigurować agenta dla każdego wywołania.
Powiązanie nie zastępuje twojej funkcji ani jej trigera. Twój kod nadal waliduje wejścia, decyduje, kiedy wywołać agenta, obsługuje błędy i generuje wyjście. Instrukcje znajdują się w pliku .agent.md , natomiast konfiguracja klienta, modelu i narzędzia pozostaje w kodzie aplikacji i ustawieniach. Pakiety dostawców łączą ten model współdzielonego wiązania z różnymi SDK agentów.
Kiedy używać wiązań agentowych
Używaj wiązań agentów, gdy funkcja Azure potrzebuje rozumowania agentycznego dla części workflow, ale aplikacja musi zachować kontrolę nad wyzwalaczem, walidacją, rozgałęzieniem, obsługą błędów i odpowiedzią. Typowe scenariusze obejmują:
- Oceń żądanie HTTP. Zweryfikować zamówienie za pomocą kodu deterministycznego, poproś agenta o ocenę ryzyka realizacji i wykorzystać wynik do skonstruowania odpowiedzi HTTP.
- Wzbogacaj lub klasyfikuj wydarzenia. Odbierz komunikat kolejki, zdarzenie usługi Event Grid lub inne dane wejściowe wyzwalacza i użyj agenta, aby sklasyfikować, podsumować lub wzbogacić dane, zanim funkcja zapisze wynik.
- Dodaj mechanizm wnioskowania do trwałego przepływu pracy. Wywołaj agenta z programu orchestratora Durable Functions za pośrednictwem interfejsu API
context.call_agent(), który jest bezpieczny przy odtwarzaniu, a następnie użyj wyniku w kolejnych etapach orkiestracji.
Funkcja pozostaje koordynatorem: przygotowuje zadanie, wywołuje agenta i decyduje, co zrobić z wynikiem. Bindingi redukują kod inicjalizacyjny, oddzielają instrukcje Markdown od konfiguracji w czasie działania i działają z dobrze znanymi wyzwalaczami Azure Functions oraz lokalnymi narzędziami do debugowania.
Jeśli wolisz definiować zachowanie i wyzwalacze głównie przez Markdown i konfigurację deklaratywną zamiast za pomocą procedury obsługi w Pythonie, rozważ umiejętności hostowane w Azure Functions.
Dostępne pakiety
Pakiety rozszerzeń specyficzne dla dostawcy łączą wspólny model powiązań z SDK agenta. Następujące pakiety są dostępne w wersji podglądowej i wymagają Python 3.13 lub nowszy:
| SDK | Package | Wprowadzenie |
|---|---|---|
| Microsoft — Struktura agentów | azurefunctions-agents-extensions-agent-framework | Przewodnik Szybki start dotyczący funkcji w języku Python · Przewodnik Szybki start dotyczący trwałej aranżacji |
| GitHub Copilot SDK | azurefunctions-agents-extensions-copilot-sdk | Szybki start funkcji Python · HTTP i próbka kolejki · Przykład trwałej orkiestracji |
Każdy pakiet definiuje obsługiwane typy, uwierzytelnianie, konfigurację modelu oraz API wywołań. Skorzystaj z przewodnika Szybki start lub przykładu, aby poznać wymagania dotyczące konfiguracji i wdrożenia specyficzne dla SDK.
Jak działa wiązanie agentowe
AgentFunctionApp dziedziczy po azure.functions.FunctionApp, więc ma takie same możliwości jak FunctionApp. Dekorator markdown_agent dodaje do funkcji parametr wejściowy agenta.
Dla każdego powiązania agentów rozszerzenie wykonuje następujące operacje:
- Rozwiązuje żądany
.agent.mdplik z root aplikacji function lub jejagents/katalogu. - Ładuje cały plik jako surowe instrukcje UTF-8.
- Łączy instrukcje z konfiguracją dostawcy, narzędziami explicitnymi oraz umiejętnościami odkrytych agentów i serwerami MCP.
- Tworzy świeżego agenta lub sesję specyficzną dla SDK i otwiera zasoby należące do wywołania.
- Wprowadza agenta lub sesję do parametru handlera.
- Zamyka zasoby przypisane do wywołania po zakończeniu wykonywania.
Dostawca zarządza własnym cyklem życia klienta. Zasoby należące do wywołania są zamykane po sukcesie, porażce lub anulacji.
Zdefiniuj powiązanie agenta
Aby dodać powiązanie do aplikacji funkcji w Python v2:
- Zainstaluj pakiet dostawcy i zaimportuj jego
AgentFunctionApp. - Konfiguruj klienta, model, uwierzytelnianie i narzędzia zgodnie z wymaganiami tego pakietu.
- Dodaj
.agent.mdplik instrukcji w katalogu głównym aplikacji lub w kataloguagents/. Plik to surowy tekst UTF-8; system nie analizuje sekcji nagłówkowej YAML ani konfiguracji uruchomieniowej. - Dodaj
markdown_agentdo funkcji wyzwalanej. Ustawarg_nametak, aby odpowiadała parametrowi procedury obsługi o określonym typie, aagent_nameidentyfikowała plik instrukcji. - Wywołaj wstrzyknięty obiekt przez jego API SDK i obsłuż wynik w kodzie funkcji.
Na przykład można za pomocą agent_name="order-fulfillment" identyfikować element order-fulfillment.agent.md w jednym z obsługiwanych katalogów, ale nie w obu. Nazwy muszą jednoznacznie wskazywać lokalizację w katalogu głównym aplikacji i nie mogą zawierać separatorów ścieżek ani sekwencji przejścia katalogów. Aby wstrzyknąć wielu agentów, nakładaj dekoratory jeden na drugim z różnymi wartościami arg_name i dopasowanymi parametrami procedury obsługi.
Pełne przykłady kodu można znaleźć w pakietach szybkiego startu i przykładach.
Współdzielone umiejętności agenta i serwery MCP
Rozszerzenie automatycznie wykrywa możliwości współdzielonego agenta z rootu aplikacji:
| Zdolność | Lokalizacja | Behavior |
|---|---|---|
| Umiejętności agenta |
skills/<skill-name>/SKILL.md lub Skills/<skill-name>/SKILL.md |
Pakiet dostawcy ładuje i weryfikuje umiejętność agenta opartą na plikach. |
| Zdalne serwery MCP | mcp.json |
Rozszerzenie konfiguruje obsługiwane serwery HTTP lub serwery HTTP obsługujące strumieniowanie oraz opcjonalne listy dozwolonych narzędzi. |
| Narzędzia dostawców | Konfiguracja aplikacji lub wiązania | Narzędzia specyficzne dla SDK lub wywołania Python obsługiwane przez dostawcę są udostępniane jawnie zamiast być odkrywane. |
Pamiętaj o tych kwestiach, korzystając z funkcji współdzielonego agenta:
- Każde powiązanie agenta w aplikacji funkcyjnej otrzymuje wszystkie odkryte umiejętności agenta oraz serwery MCP.
- Umiejętności agenta opartego na plikach to zdolności, które agent może załadować. To nie są umiejętności hostowane w Azure Functions, które korzystają z osobnego modelu wykonywania.
- Obecna wersja zapoznawcza rozszerzenia agenta nie obsługuje wybierania podzbioru możliwości dla aplikacji lub pojedynczego powiązania.
- Umiejętności agenta i narzędzia MCP mogą wykonywać operacje uprzywilejowane. Umieszczaj tylko funkcje, które każdy agent w aplikacji może używać, a osobne aplikacje funkcyjne używaj, gdy agenci wymagają różnych granic możliwości.
Konfiguracja MCP może odwoływać się do zmiennych środowiskowych dla adresów URL, nagłówków, zakresów uwierzytelniania i identyfikatorów klientów. Referencje są ustalane dla każdego wywołania, zanim rozszerzenie połączy się z serwerem. Nie przechowuj poufnych danych bezpośrednio w pliku mcp.json znajdującym się pod kontrolą wersji.
Serwery MCP z procesem lokalnym oraz standardowym wejściem/wyjściem (stdio) nie są obsługiwane. Wsparcie dla MCP jest opcjonalną zależnością, a normalne importy pakietów pozostają bezpieczne, gdy nie są zainstalowane.
Używaj wiązań agentów z Durable Functions
Gdy instalujesz opcjonalną integrację Durable Functions dostawcy, synchroniczny generator koordynatora zwraca context.call_agent(agent_name, input_). Rozszerzenie wykonuje pracę agenta w ukrytej aktywności, zachowując wywołania modelu, narzędzia i inne niedeterministyczne operacje poza odtwarzaniem orchestratora.
Wejścia i wyjścia muszą być serializowane przez JSON. Połączenia wykorzystują dostawcę i współdzielone możliwości skonfigurowane przez aplikację. Zobacz przewodniki szybkiego startu pakietu oraz przykłady kodu instalacji i orkiestracji.
pliki projektu
Aplikacja z agentem to standardowa aplikacja funkcjonalna Python v2 z zależnościami rozszerzenia agenta oraz jednym lub więcej plikami instrukcji:
| Plik lub folder | Purpose |
|---|---|
function_app.py |
Definiuje AgentFunctionApp, standardowe wyzwalacze Funkcji, powiązania agentów, fabryki klientów oraz wyraźnie skonfigurowane narzędzia dostawców. |
host.json |
Konfiguruje hosta Azure Functions. |
requirements.txt |
Zawiera pakiet dostawcy oraz wymagane zależności. Opcjonalne dodatki mogą umożliwić wsparcie Durable Functions i MCP. |
*.agent.md lub agents/*.agent.md |
Zawiera surowe instrukcje UTF-8 dla agenta. Każda nazwa, do której istnieje odwołanie, musi wskazywać dokładnie jeden plik. |
skills/ lub Skills/ |
(Opcjonalne) Zawiera umiejętności agenta oparte na plikach, współdzielone przez wszystkie powiązania agentów. |
mcp.json |
(Opcjonalnie) Definiuje zdalne serwery MCP oparte na HTTP współdzielone przez wszystkie powiązania agentów. |
Standardową strukturę projektu Python można znaleźć w Azure Functions Python przewodniku dla deweloperów.
Walidacja i diagnostyka
Rozszerzenie sprawdza poprawność definicji agentów przed kompilacją powiązań lub w jej trakcie, dzięki czemu problemy z konfiguracją są zgłaszane w postaci błędów zawierających wskazówki do działania. Walidacja obejmuje:
- Brakujące
.agent.mdlub niejednoznaczne pliki. - Nieprawidłowe sygnatury handlera, w tym brakujący lub niedopasowany parametr wstrzykiwany.
- Nieobsługiwane opcje lub możliwości dostawcy.
- Nieprawidłowe katalogi umiejętności i zdeformowana konfiguracja MCP.
- Nieobsługiwane metody transportu MCP i brakujące wartości zmiennych środowiskowych.
- Nieprawidłowe trwałe ładunki danych lub wartości, których nie można serializować do formatu JSON.
Tam, gdzie jest dostępne, rozszerzenie zachowuje nazwę funkcji Azure, identyfikator wywołania oraz trwały identyfikator instancji na granicy dostawcy, aby wspierać korelację i diagnostykę.
Artykuły pokrewne
- Opcje integracji AI dla Azure Functions
- Użyj agenta Microsoft Agent Framework w funkcji Python
- Użyj agenta SDK GitHub Copilot w funkcji Python
- Użyj powiązania agenta platformy Microsoft Agent Framework w orkiestracji Durable
- Hybrydowy przykład hostowanej umiejętności w repozytorium środowiska uruchomieniowego agentów Azure Functions (AFAR) — osobny model wywoływania hostowanej umiejętności ze zwykłego kodu funkcji.