Dodawanie narzędzi do agenta sztucznej inteligencji platformy Azure
Tip
Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .
Narzędzia umożliwiają agentowi podejmowanie działań — wywoływanie interfejsów API, wykonywanie kodu, wyszukiwanie plików lub interakcja z usługami zewnętrznymi. Bez narzędzi agent może wygenerować tekst tylko na podstawie tego, co już wie. Dzięki narzędziom zyskuje zdolność oddziaływania na świat.
Platforma Microsoft Agent Framework obsługuje dwie szerokie kategorie narzędzi: narzędzia dostarczane przez usługę, które są hostowane i zarządzane przez dostawcę, oraz niestandardowe narzędzia funkcji, które piszesz samodzielnie i rejestrujesz się w agencie.
Narzędzia dostarczane przez usługę
W przypadku korzystania z dostawcy usługi Foundry dostępnych jest szereg hostowanych narzędzi bez dodatkowej implementacji. Włączasz je, uwzględniając je w konfiguracji agenta — dostawca odpowiada za faktyczne wykonanie.
Najczęściej używane narzędzia dostarczane przez usługę to:
| Narzędzie | Do czego służy |
|---|---|
| Interpreter kodów | Wykonuje kod Python w środowisku piaskownicy na potrzeby obliczeń i analizy danych |
| Wyszukiwanie plików | Wyszukuje i pobiera informacje z przekazanych dokumentów |
| Wyszukiwanie w Sieci Web | Pobiera aktualne informacje z internetu |
| Hostowane narzędzia MCP | Serwery MCP (Model Context Protocol) wywoływane bezpośrednio przez środowisko uruchomieniowe dostawcy |
| Wyszukiwanie AI platformy Azure | Wykonuje zapytania dotyczące indeksu Wyszukiwanie AI platformy Azure za pośrednictwem połączenia z usługą Foundry |
| Przyborniki Foundry | Nazwane i wersjonowane pakiety hostowanych konfiguracji narzędzi zarządzane w projekcie Foundry |
Note
Niektóre narzędzia, w tym Wyszukiwanie AI platformy Azure, Bing Grounding, SharePoint i inne, są w wersji zapoznawczej lub eksperymentalnej. Są one dostępne dla agentów usługi Foundry, ale mogą mieć ograniczoną obsługę u innych dostawców.
Niestandardowe narzędzia funkcji
Narzędzia funkcji niestandardowych umożliwiają rozszerzanie agenta za pomocą dowolnej potrzebnej logiki — wywoływanie wewnętrznych interfejsów API, wykonywanie zapytań dotyczących baz danych, wykonywanie obliczeń lub wykonywanie dowolnych innych czynności Python.
Aby zarejestrować funkcję jako narzędzie, należy przekazać ją bezpośrednio do agenta podczas tworzenia. Struktura sprawdza podpis funkcji i generuje schemat, który informuje model o tym, co robi funkcja, jakie parametry oczekuje i jakie zwraca.
Aby model mógł niezawodnie wywoływać narzędzie, funkcja musi być jasno opisana. Struktura agentów obsługuje dwa podejścia:
-
Wpisz adnotacje z opisami — użyj typu Python
Annotatedz opisem pola dla każdego parametru. Łańcuch dokumentacyjny funkcji służy jako opis narzędzia. -
Dekorator
@tool— jawnie określ nazwę i opis narzędzia jako argumenty dekoratora, co daje pełną kontrolę nad tym, co widzi model. Możesz również podać jawny schemat przy użyciu modelu Pydantic, jeśli potrzebujesz dokładnej kontroli nad strukturą danych wejściowych.
W obu przypadkach platforma automatycznie obsługuje generowanie schematów i wywołanie narzędzi. Gdy model określi, że należy wywołać narzędzie, platforma wykonuje funkcję i zwraca wynik z powrotem do modelu przed wygenerowaniem ostatecznej odpowiedzi.
Dodawanie wielu narzędzi
Można zarejestrować wiele narzędzi za pomocą jednego agenta. Przekaż listę funkcji podczas tworzenia agenta, a model automatycznie wybiera najbardziej odpowiednie narzędzie dla każdej części konwersacji. Nie musisz pisać żadnej logiki routingu — platforma obsługuje aranżację narzędzi na podstawie kontekstu konwersacji i podanego opisu narzędzi.
Zatwierdzanie narzędzi
W scenariuszach, w których wywołania narzędzi powinny wymagać przeglądu przez człowieka przed wykonaniem, struktura agenta obsługuje wzorzec zatwierdzania narzędzi . Gdy tryb zatwierdzania jest włączony w narzędziu, agent wstrzymuje się przed wywołaniem tej funkcji i żąda potwierdzenia. Jest to przydatne w przypadku akcji, które są nieodwracalne, kosztowne lub obejmują poufne dane. Zachowanie zatwierdzania można skonfigurować dla każdego narzędzia za pomocą parametru approval_mode w dekoratorze @tool.
Używanie agenta jako narzędzia
Agenty można łączyć, wykorzystując jednego agenta jako narzędzie dla innego. Przekonwertujesz agenta wewnętrznego na narzędzie funkcji i przekazujesz go do agenta zewnętrznego, który następnie może delegować do niego określone zadania. Umożliwia to modułowe projekty, w których wyspecjalizowani agenci obsługują określone domeny i koordynują żądania agentów między nimi — wzorzec zbadany bardziej szczegółowo w module obejmującym wielu agentów.
Najlepsze rozwiązania dotyczące narzędzi niestandardowych
- Pisz jasne opisy — zdolność modelu do wyboru odpowiedniego narzędzia zależy całkowicie od opisów, które podajesz. Określ, co robi funkcja i kiedy należy jej używać.
- Dodaj adnotację do każdego parametru — opisz każde dane wejściowe, aby model mógł konstruować prawidłowe wywołania, zwłaszcza gdy same nazwy parametrów nie są objaśniające.
- Zwracanie znaczących danych — narzędzia powinny zwracać dane wyjściowe ustrukturyzowane, z możliwością interpretacji. Model używa wartości zwracanej bezpośrednio podczas tworzenia odpowiedzi.
- Zachowaj koncentrację na narzędziach — każde narzędzie powinno zrobić jedną rzecz. Połączenie wielu obowiązków w jedną funkcję utrudnia modelowi poprawne wywołanie go.
- Obsługuj błędy w sposób elegancki — jeśli narzędzie napotka nieoczekiwane dane wejściowe lub zewnętrzna usługa ulegnie awarii, zwróć czytelny komunikat o błędzie zamiast zgłaszać wyjątek, aby model mógł odpowiedzieć w pomocny sposób.