(Kliknij powyższy obraz, aby obejrzeć wideo z tej lekcji)
Frameworki agentów AI to platformy programowe zaprojektowane w celu uproszczenia tworzenia, wdrażania i zarządzania agentami AI. Frameworki te dostarczają deweloperom gotowe komponenty, abstrakcje i narzędzia, które usprawniają rozwój złożonych systemów AI.
Frameworki te pomagają programistom skupić się na unikalnych aspektach ich aplikacji, oferując ustandaryzowane podejścia do powszechnych wyzwań w rozwoju agentów AI. Zwiększają skalowalność, dostępność i efektywność w budowaniu systemów AI.
Ta lekcja obejmie:
Celem tej lekcji jest pomoc w zrozumieniu:
Tradycyjne frameworki AI mogą pomóc zintegrować AI z aplikacjami i ulepszyć je na następujące sposoby:
Frameworki agentów AI to coś więcej niż standardowe frameworki AI. Zaprojektowane są, aby umożliwić tworzenie inteligentnych agentów, którzy mogą wchodzić w interakcję z użytkownikami, innymi agentami i środowiskiem, aby realizować określone cele. Agenci ci mogą wykazywać autonomiczne zachowanie, podejmować decyzje i adaptować się do zmieniających się warunków. Spójrzmy na niektóre kluczowe możliwości, które oferują frameworki agentów AI:
Podsumowując, agenci pozwalają zrobić więcej, podnieść automatyzację na wyższy poziom oraz tworzyć inteligentniejsze systemy, które mogą się uczyć i dostosowywać do środowiska.
To dynamiczne środowisko, ale istnieją pewne cechy wspólne w większości frameworków agentów AI, które pomagają szybko prototypować i iterować, mianowicie: składniki modułowe, narzędzia współpracy i uczenie się w czasie rzeczywistym. Przyjrzyjmy się im bliżej:
SDK, takie jak Microsoft Agent Framework, oferują gotowe komponenty, jak konektory AI, definicje narzędzi i zarządzanie agentami.
Jak zespoły mogą to wykorzystać: Zespoły mogą szybko zestawić te komponenty, aby stworzyć funkcjonalny prototyp bez konieczności zaczynania od zera, co pozwala na szybkie eksperymenty i iteracje.
Jak to działa w praktyce: Możesz użyć gotowego parsera do wydobycia informacji z danych wejściowych użytkownika, modułu pamięci do zapisywania i pobierania danych oraz generatora podpowiedzi do interakcji z użytkownikami, wszystko bez konieczności budowania tych komponentów od podstaw.
Przykład kodu. Spójrzmy na przykład użycia Microsoft Agent Framework z FoundryChatClient, aby model odpowiadał na dane wejściowe użytkownika z wywoływaniem narzędzi:
# Przykład użycia Microsoft Agent Framework w Pythonie
import asyncio
import os
from agent_framework import tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
# Zdefiniuj przykładową funkcję narzędzia do rezerwacji podróży
@tool(approval_mode="never_require")
def book_flight(date: str, location: str) -> str:
"""Book travel given location and date."""
return f"Travel was booked to {location} on {date}"
async def main():
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
agent = provider.as_agent(
name="travel_agent",
instructions="Help the user book travel. Use the book_flight tool when ready.",
tools=[book_flight],
)
response = await agent.run("I'd like to go to New York on January 1, 2025")
print(response)
# Przykładowy wynik: Twój lot do Nowego Jorku w dniu 1 stycznia 2025 został pomyślnie zarezerwowany. Bezpiecznej podróży! ✈️🗽
if __name__ == "__main__":
asyncio.run(main())
W tym przykładzie widać, jak można wykorzystać gotowy parser do wydobycia kluczowych informacji z danych użytkownika, takich jak miejsce startu, cel i data rezerwacji lotu. Podejście modułowe pozwala skoncentrować się na logice wysokiego poziomu.
Frameworki takie jak Microsoft Agent Framework umożliwiają tworzenie wielu agentów, którzy mogą ze sobą współpracować.
Jak zespoły mogą to wykorzystać: Zespoły mogą projektować agentów z określonymi rolami i zadaniami, co pozwala testować i udoskonalać procesy współpracy oraz zwiększać efektywność systemu.
Jak to działa w praktyce: Można stworzyć zespół agentów, z których każdy ma specjalistyczną funkcję, np. pobieranie danych, analizę czy podejmowanie decyzji. Agenci komunikują się i wymieniają informacje, aby osiągnąć wspólny cel, np. odpowiedzieć na zapytanie użytkownika lub wykonać zadanie.
Przykład kodu (Microsoft Agent Framework):
# Tworzenie wielu agentów współpracujących za pomocą Microsoft Agent Framework
import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
# Agent pobierania danych
agent_retrieve = provider.as_agent(
name="dataretrieval",
instructions="Retrieve relevant data using available tools.",
tools=[retrieve_tool],
)
# Agent analizy danych
agent_analyze = provider.as_agent(
name="dataanalysis",
instructions="Analyze the retrieved data and provide insights.",
tools=[analyze_tool],
)
# Uruchamianie agentów kolejno na zadaniu
retrieval_result = await agent_retrieve.run("Retrieve sales data for Q4")
analysis_result = await agent_analyze.run(f"Analyze this data: {retrieval_result}")
print(analysis_result)
W powyższym kodzie widać, jak stworzyć zadanie obejmujące współpracę wielu agentów do analizy danych. Każdy agent wykonuje określoną funkcję, a zadanie jest realizowane poprzez koordynację pracy agentów, aby osiągnąć zamierzony wynik. Tworząc dedykowanych agentów o specjalistycznych rolach, można poprawić wydajność i efektywność wykonywania zadań.
Zaawansowane frameworki oferują funkcje rozumienia kontekstu i adaptacji w czasie rzeczywistym.
Jak zespoły mogą to wykorzystać: Zespoły mogą implementować pętle sprzężenia zwrotnego, gdzie agenci uczą się z interakcji i dynamicznie dostosowują swoje zachowanie, co prowadzi do ciągłego doskonalenia i ulepszania możliwości.
Jak to działa w praktyce: Agenci analizują opinie użytkowników, dane środowiskowe oraz wyniki zadań, aby aktualizować swoją bazę wiedzy, dostosowywać algorytmy podejmowania decyzji i podnosić wydajność z czasem. Ten iteracyjny proces uczenia pozwala agentom adaptować się do zmieniających się warunków oraz preferencji użytkowników, zwiększając skuteczność systemu.
Istnieje wiele aspektów do porównania tych rozwiązań, ale spójrzmy na kluczowe różnice pod względem konstrukcji, możliwości i docelowych zastosowań:
Microsoft Agent Framework to uproszczone SDK do tworzenia agentów AI za pomocą FoundryChatClient. Umożliwia programistom tworzenie agentów wykorzystujących modele Azure OpenAI z wbudowanym wywoływaniem narzędzi, zarządzaniem rozmową oraz bezpieczeństwem klasy korporacyjnej dzięki tożsamości Azure.
Zastosowania: Budowanie produkcyjnych agentów AI z obsługą narzędzi, procesów wieloetapowych i integracji korporacyjnych.
Oto kilka ważnych podstawowych koncepcji Microsoft Agent Framework:
FoundryChatClient i konfigurowany nazwą, instrukcjami i narzędziami. Agent może:
Oto fragment kodu pokazujący, jak utworzyć agenta:
import os
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
provider = FoundryChatClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
model=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
agent = provider.as_agent(
name="my_agent",
instructions="You are a helpful assistant.",
)
response = await agent.run("Hello, World!")
print(response)
Narzędzia. Framework wspiera definiowanie narzędzi jako funkcji Pythona, które agent może wywoływać automatycznie. Narzędzia rejestruje się podczas tworzenia agenta:
def get_weather(location: str) -> str:
"""Get the current weather for a location."""
return f"The weather in {location} is sunny, 72\u00b0F."
agent = provider.as_agent(
name="weather_agent",
instructions="Help users check the weather.",
tools=[get_weather],
)
Koordynacja wielu agentów. Możesz tworzyć wielu agentów o różnych specjalizacjach i koordynować ich pracę:
planner = provider.as_agent(
name="planner",
instructions="Break down complex tasks into steps.",
)
executor = provider.as_agent(
name="executor",
instructions="Execute the planned steps using available tools.",
tools=[execute_tool],
)
plan = await planner.run("Plan a trip to Paris")
result = await executor.run(f"Execute this plan: {plan}")
AzureCliCredential (lub DefaultAzureCredential) do bezpiecznej, bezkluczowej autoryzacji, eliminując konieczność zarządzania kluczami API.Microsoft Foundry Agent Service to nowsze rozwiązanie, przedstawione na Microsoft Ignite 2024. Umożliwia rozwój i wdrażanie agentów AI z większą elastycznością modeli, np. bezpośrednie wywoływanie otwartoźródłowych LLM, takich jak Llama 3, Mistral czy Cohere.
Microsoft Foundry Agent Service oferuje silniejsze mechanizmy bezpieczeństwa korporacyjnego i metody przechowywania danych, co czyni go odpowiednim dla zastosowań korporacyjnych.
Świetnie współpracuje z Microsoft Agent Framework w zakresie tworzenia i wdrażania agentów.
Usługa jest obecnie w Public Preview i wspiera Pythona oraz C# do tworzenia agentów.
Korzystając z Python SDK Microsoft Foundry Agent Service, możemy stworzyć agenta z narzędziem zdefiniowanym przez użytkownika:
import asyncio
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
# Zdefiniuj funkcje narzędziowe
def get_specials() -> str:
"""Provides a list of specials from the menu."""
return """
Special Soup: Clam Chowder
Special Salad: Cobb Salad
Special Drink: Chai Tea
"""
def get_item_price(menu_item: str) -> str:
"""Provides the price of the requested menu item."""
return "$9.99"
async def main() -> None:
credential = DefaultAzureCredential()
project_client = AIProjectClient.from_connection_string(
credential=credential,
conn_str="your-connection-string",
)
agent = project_client.agents.create_agent(
model="gpt-5-mini",
name="Host",
instructions="Answer questions about the menu.",
tools=[get_specials, get_item_price],
)
thread = project_client.agents.create_thread()
user_inputs = [
"Hello",
"What is the special soup?",
"How much does that cost?",
"Thank you",
]
for user_input in user_inputs:
print(f"# User: '{user_input}'")
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content=user_input,
)
run = project_client.agents.create_and_process_run(
thread_id=thread.id, agent_id=agent.id
)
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"# Agent: {messages.data[0].content[0].text.value}")
if __name__ == "__main__":
asyncio.run(main())
Microsoft Foundry Agent Service ma następujące podstawowe koncepcje:
Agent. Microsoft Foundry Agent Service integruje się z Microsoft Foundry. W ramach Microsoft Foundry agent AI działa jako “inteligentny” mikrousługa, która może odpowiadać na pytania (RAG), wykonywać akcje lub całkowicie automatyzować przepływy pracy. Osiąga to przez łączenie generatywnych modeli AI z narzędziami umożliwiającymi dostęp i interakcję z rzeczywistymi źródłami danych. Oto przykład agenta:
agent = project_client.agents.create_agent(
model="gpt-5-mini",
name="my-agent",
instructions="You are helpful agent",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
W tym przykładzie agent jest tworzony z modelem gpt-5-mini, nazwą my-agent i instrukcjami Jesteś pomocnym agentem. Agent jest wyposażony w narzędzia i zasoby do zadań interpretacji kodu.
Wątki i wiadomości. Wątek to kolejna ważna koncepcja. Reprezentuje rozmowę lub interakcję między agentem a użytkownikiem. Wątki mogą służyć do śledzenia postępu rozmowy, przechowywania informacji kontekstowych i zarządzania stanem interakcji. Oto przykład wątku:
thread = project_client.agents.create_thread()
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="Could you please create a bar chart for the operating profit using the following data and provide the file to me? Company A: $1.2 million, Company B: $2.5 million, Company C: $3.0 million, Company D: $1.8 million",
)
# Poproś agenta o wykonanie pracy na wątku
run = project_client.agents.create_and_process_run(thread_id=thread.id, agent_id=agent.id)
# Pobierz i zapisz wszystkie wiadomości, aby zobaczyć odpowiedź agenta
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")
W powyższym kodzie tworzony jest wątek. Następnie wysyłana jest wiadomość do wątku. Poprzez wywołanie create_and_process_run agent zostaje poproszony o wykonanie pracy na wątku. Ostatecznie pobierane są wiadomości i logowane, aby zobaczyć odpowiedź agenta. Wiadomości wskazują na postęp rozmowy między użytkownikiem a agentem. Ważne jest również zrozumienie, że wiadomości mogą być różnego typu, jak tekst, obraz czy plik – to znaczy, że praca agenta mogła skutkować na przykład obrazem lub odpowiedzią tekstową. Jako deweloper możesz wykorzystać te informacje do dalszego przetwarzania odpowiedzi lub przedstawienia jej użytkownikowi.
Integracja z Microsoft Agent Framework. Microsoft Foundry Agent Service działa bezproblemowo z Microsoft Agent Framework, co oznacza, że można budować agentów za pomocą FoundryChatClient i wdrażać ich przez Agent Service w scenariuszach produkcyjnych.
Zastosowania: Microsoft Foundry Agent Service jest przeznaczony dla aplikacji korporacyjnych wymagających bezpiecznego, skalowalnego i elastycznego wdrażania agentów AI.
Rzeczywiście istnieją nakładające się cechy, ale są kluczowe różnice pod względem konstrukcji, możliwości i zastosowań:
Nadal nie jesteś pewien, co wybrać?
Sprawdźmy, czy możemy pomóc, przechodząc przez kilka typowych zastosowań:
P: Buduję produkcyjne aplikacje agentów AI i chcę zacząć szybko
O: Microsoft Agent Framework to świetny wybór. Zapewnia proste, Pythoniczne API przez
FoundryChatClient, które pozwala definiować agentów z narzędziami i instrukcjami w zaledwie kilku linijkach kodu.
P: Potrzebuję wdrożenia klasy korporacyjnej z integracjami Azure, takimi jak Search i wykonanie kodu
O: Microsoft Foundry Agent Service jest najlepszym rozwiązaniem. To platforma oferująca wbudowane funkcje dla wielu modeli, Azure AI Search, Bing Search i Azure Functions. Umożliwia łatwe tworzenie agentów w Foundry Portal i ich wdrażanie na dużą skalę.
P: Nadal jestem zagubiony, podaj mi jedną opcję
O: Zacznij od Microsoft Agent Framework do budowy agentów, a następnie użyj Microsoft Foundry Agent Service, gdy będziesz potrzebować wdrożenia i skalowania w produkcji. Takie podejście pozwala szybko iterować nad logiką agenta, mając jednocześnie jasno określoną ścieżkę do wdrożenia korporacyjnego.
Podsumujmy kluczowe różnice w tabeli:
| Framework | Fokus | Podstawowe koncepcje | Zastosowania |
|---|---|---|---|
| Microsoft Agent Framework | Uproszczone SDK dla agentów z wywoływaniem narzędzi | Agenci, Narzędzia, Tożsamość Azure | Budowa agentów AI, użycie narzędzi, procesy wieloetapowe |
| Microsoft Foundry Agent Service | Elastyczne modele, bezpieczeństwo korporacyjne, generowanie kodu, wywoływanie narzędzi | Modułowość, współpraca, orkiestracja procesów | Bezpieczne, skalowalne i elastyczne wdrażanie agentów AI |
Odpowiedź brzmi tak, możesz zintegrować swoje istniejące narzędzia ekosystemu Azure bezpośrednio z usługą Microsoft Foundry Agent Service, zwłaszcza że została ona zaprojektowana tak, aby współpracować bezproblemowo z innymi usługami Azure. Możesz na przykład zintegrować Bing, Azure AI Search oraz Azure Functions. Istnieje także głęboka integracja z Microsoft Foundry.
Microsoft Agent Framework również integruje się z usługami Azure za pośrednictwem FoundryChatClient i tożsamości Azure, co pozwala wywoływać usługi Azure bezpośrednio z narzędzi Twojego agenta.
Dołącz do Microsoft Foundry Discord, aby spotkać się z innymi uczącymi się, uczestniczyć w godzinach konsultacji i uzyskać odpowiedzi na pytania dotyczące Twoich agentów AI.
Wprowadzenie do agentów AI i przypadków użycia agentów
Zrozumienie wzorców projektowych Agentic
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.