ai-agents-for-beginners

Eksploracja frameworków agentów AI

(Kliknij obraz powyżej, aby obejrzeć wideo z tej lekcji)

Eksploracja frameworków agentów AI

Frameworki agentów AI to platformy programistyczne zaprojektowane w celu uproszczenia tworzenia, wdrażania i zarządzania agentami AI. Frameworki te dostarczają programistom 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, zapewniając ustandaryzowane podejścia do powszechnych wyzwań w tworzeniu agentów AI. Zwiększają skalowalność, dostępność i efektywność budowy systemów AI.

Wprowadzenie

Ta lekcja obejmie:

Cele nauki

Celem tej lekcji jest pomóc Ci zrozumieć:

Czym są frameworki agentów AI i co pozwalają programistom zrobić?

Tradycyjne frameworki AI mogą pomóc Ci zintegrować AI z Twoimi aplikacjami i uczynić je lepszymi na następujące sposoby:

To wszystko brzmi świetnie, prawda? To po co nam framework agentów AI?

Frameworki agentów AI to coś więcej niż zwykłe frameworki AI. Zostały zaprojektowane, by umożliwić tworzenie inteligentnych agentów, którzy mogą wchodzić w interakcje z użytkownikami, innymi agentami i środowiskiem, by osiągać określone cele. Ci agenci mogą wykazywać autonomiczne zachowania, podejmować decyzje i dostosowywać się do zmieniających się warunków. Spójrzmy na niektóre kluczowe możliwości udostępniane przez frameworki agentów AI:

Podsumowując, agenci pozwalają robić więcej, podnieść automatyzację na wyższy poziom oraz tworzyć inteligentniejsze systemy, które mogą się uczyć i adaptować w swoim otoczeniu.

Jak szybko prototypować, iterować i ulepszać możliwości agenta?

To dynamicznie rozwijające się środowisko, ale są pewne elementy wspólne dla większości frameworków agentów AI, które mogą pomóc w szybkim prototypowaniu i iteracji, mianowicie komponenty modułowe, narzędzia współpracy oraz uczenie się w czasie rzeczywistym. Przyjrzyjmy się temu bliżej:

Używaj komponentów modułowych

SDK takie jak Microsoft Agent Framework oferują gotowe komponenty, takie jak konektory AI, definicje narzędzi i zarządzanie agentem.

Jak zespoły mogą tego używać: Zespoły mogą szybko zestawiać te komponenty, by stworzyć funkcjonalny prototyp bez rozpoczynania od zera, co umożliwia szybkie eksperymenty i iteracje.

Jak to działa w praktyce: Możesz użyć gotowego parsera do wyodrębniania informacji z wejścia użytkownika, modułu pamięci do przechowywania i pobierania danych oraz generatora promptów do interakcji z użytkownikami, wszystko bez konieczności budowania tych komponentów od podstaw.

Przykładowy kod. Spójrzmy na przykład użycia Microsoft Agent Framework z AzureAIProjectAgentProvider, by model odpowiadał na wejście użytkownika z wywoływaniem narzędzi:

# Przykład Microsoft Agent Framework w Pythonie

import asyncio
import os
from typing import Annotated

from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential


# Zdefiniuj przykładową funkcję narzędzia do rezerwacji podróży
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 = AzureAIProjectAgentProvider(credential=AzureCliCredential())
    agent = await provider.create_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ładowe wyjście: Twój lot do Nowego Jorku w dniu 1 stycznia 2025 został pomyślnie zarezerwowany. Udanej podróży! ✈️🗽


if __name__ == "__main__":
    asyncio.run(main())

Z tego przykładu widać, jak można wykorzystać gotowy parser do wyodrębniania kluczowych informacji z wejścia użytkownika, takich jak miejsce wylotu, miejsce przeznaczenia i data zapytania o rezerwację lotu. Takie modularne podejście pozwala skupić się na logice wysokiego poziomu.

Wykorzystuj narzędzia współpracy

Frameworki takie jak Microsoft Agent Framework ułatwiają tworzenie wielu agentów, którzy mogą współpracować.

Jak zespoły mogą tego używać: Zespoły mogą projektować agentów z określonymi rolami i zadaniami, umożliwiając testowanie i udoskonalanie współpracy w przepływach pracy, co zwiększa efektywność systemu.

Jak to działa w praktyce: Możesz stworzyć zespół agentów, z których każdy ma specjalistyczną funkcję, na przykład pobieranie danych, analizę lub podejmowanie decyzji. Agenci ci komunikują się i dzielą informacjami, by osiągnąć wspólny cel, np. odpowiedzieć na zapytanie użytkownika lub wykonać zadanie.

Przykładowy kod (Microsoft Agent Framework):

# Tworzenie wielu agentów współpracujących ze sobą przy użyciu Microsoft Agent Framework

import os
from agent_framework.azure import AzureAIProjectAgentProvider
from azure.identity import AzureCliCredential

provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())

# Agent pobierania danych
agent_retrieve = await provider.create_agent(
    name="dataretrieval",
    instructions="Retrieve relevant data using available tools.",
    tools=[retrieve_tool],
)

# Agent analizy danych
agent_analyze = await provider.create_agent(
    name="dataanalysis",
    instructions="Analyze the retrieved data and provide insights.",
    tools=[analyze_tool],
)

# Uruchamianie agentów sekwencyjnie dla zadania
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)

Z powyższego kodu wynika, jak można stworzyć zadanie obejmujące współpracę wielu agentów do analizy danych. Każdy agent pełni określoną funkcję, a zadanie jest wykonywane poprzez koordynację agentów, aby osiągnąć pożądany wynik. Tworząc dedykowanych agentów ze specjalistycznymi rolami, można poprawić efektywność i wydajność zadania.

Ucz się w czasie rzeczywistym

Zaawansowane frameworki oferują możliwości zrozumienia kontekstu i adaptacji w czasie rzeczywistym.

Jak zespoły mogą tego używać: Zespoły mogą wdrażać pętle zwrotne, w których agenci uczą się na podstawie interakcji i dynamicznie dostosowują swoje zachowanie, prowadząc do ciągłego ulepszania i udoskonalania możliwości.

Jak to działa w praktyce: Agenci mogą analizować opinie użytkowników, dane środowiskowe i wyniki zadań, by aktualizować swoją bazę wiedzy, dostosowywać algorytmy podejmowania decyzji i poprawiać wydajność w czasie. Ten iteracyjny proces uczenia pozwala agentom adaptować się do zmieniających się warunków i preferencji użytkowników, zwiększając skuteczność całego systemu.

Jakie są różnice między Microsoft Agent Framework a Azure AI Agent Service?

Istnieje wiele sposobów porównania tych podejść, spójrzmy na kluczowe różnice pod względem projektowania, możliwości i docelowych zastosowań:

Microsoft Agent Framework (MAF)

Microsoft Agent Framework dostarcza uproszczone SDK do tworzenia agentów AI za pomocą AzureAIProjectAgentProvider. Pozwala programistom tworzyć agentów wykorzystujących modele Azure OpenAI z wbudowanym wywoływaniem narzędzi, zarządzaniem konwersacją i bezpieczeństwem klasy enterprise poprzez identyfikację Azure.

Zastosowania: Budowanie gotowych do produkcji agentów AI z wywoływaniem narzędzi, wieloetapowymi przepływami pracy i scenariuszami integracji enterprise.

Oto ważne podstawowe pojęcia Microsoft Agent Framework:

Azure AI Agent Service

Azure AI Agent Service to nowsze rozwiązanie, wprowadzone podczas Microsoft Ignite 2024. Pozwala na rozwój i wdrażanie agentów AI z bardziej elastycznymi modelami, takimi jak bezpośrednie wywoływanie open-source’owych LLM, np. Llama 3, Mistral czy Cohere.

Azure AI Agent Service oferuje silniejsze mechanizmy zabezpieczeń klasy enterprise i metody przechowywania danych, co czyni go odpowiednim dla aplikacji enterprise.

Działa natywnie z Microsoft Agent Framework do budowania i wdrażania agentów.

Usługa jest obecnie w publicznej wersji zapoznawczej (Public Preview) i wspiera Pythona oraz C# do tworzenia agentów.

Korzystając z Python SDK Azure AI 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-4o-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())

Podstawowe koncepcje

Azure AI Agent Service zawiera następujące kluczowe pojęcia:

Zastosowania: Azure AI Agent Service jest zaprojektowany dla aplikacji enterprise, które wymagają bezpiecznego, skalowalnego i elastycznego wdrożenia agentów AI.

Jaka jest różnica między tymi podejściami?

Można dostrzec pewne nakładanie się, ale istnieją kluczowe różnice pod względem konstrukcji, możliwości i docelowych zastosowań:

Wciąż nie wiesz, który wybrać?

Przypadki użycia

Spróbujmy pomóc, przechodząc przez popularne przypadki użycia:

P: Buduję produkcyjne aplikacje agentów AI i chcę zacząć szybko

O: Microsoft Agent Framework to świetny wybór. Oferuje prostą, pythonową API przez AzureAIProjectAgentProvider, która pozwala zdefiniować agentów z narzędziami i instrukcjami w kilku linijkach kodu.

P: Potrzebuję wdrożenia klasy enterprise z integracjami Azure takimi jak Search i wykonywanie kodu

O: Azure AI Agent Service jest najlepszym wyborem. To usługa platformowa z wbudowanymi możliwościami dla wielu modeli, Azure AI Search, Bing Search i Azure Functions. Umożliwia łatwe budowanie agentów w portalu Foundry i wdrażanie ich na dużą skalę.

P: Wciąż się zastanawiam, podaj mi jedną opcję

O: Zacznij od Microsoft Agent Framework do tworzenia agentów, a potem użyj Azure AI Agent Service, gdy potrzebujesz wdrożyć i skalować ich pracę w produkcji. Takie podejście pozwoli szybko iterować na logice agenta, mając jednocześnie jasną drogę do wdrożenia enterprise.

Podsumujmy kluczowe różnice w tabeli:

Framework Skupienie Podstawowe pojęcia Zastosowania
Microsoft Agent Framework Uproszczone SDK agentów z wywoływaniem narzędzi Agenci, Narzędzia, Tożsamość Azure Tworzenie agentów AI, użycie narzędzi, wieloetapowe przepływy pracy
Azure AI Agent Service Elastyczne modele, bezpieczeństwo enterprise, generowanie kodu, wywoływanie narzędzi Modularność, Współpraca, Orkiestracja procesów Bezpieczne, skalowalne i elastyczne wdrażanie agentów AI

Czy mogę integrować moje istniejące narzędzia ekosystemu Azure bezpośrednio, czy potrzebuję rozwiązań niezależnych?

Odpowiedź brzmi tak, możesz zintegrować swoje istniejące narzędzia ekosystemu Azure bezpośrednio z usługą Azure AI Agent Service, zwłaszcza że została ona zaprojektowana do bezproblemowej współpracy z innymi usługami Azure. Na przykład możesz zintegrować Bing, Azure AI Search oraz Azure Functions. Istnieje również głęboka integracja z Microsoft Foundry.

Microsoft Agent Framework integruje się również z usługami Azure za pośrednictwem AzureAIProjectAgentProvider oraz tożsamości Azure, co pozwala na bezpośrednie wywoływanie usług Azure z narzędzi agenta.

Sample Codes

Masz więcej pytań dotyczących AI Agent Frameworks?

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 AI Agents.

Referencje

Poprzednia lekcja

Introduction to AI Agents and Agent Use Cases

Następna lekcja

Understanding Agentic Design Patterns


Zastrzeżenie: Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Mimo że dokładamy starań, aby tłumaczenie było prawidłowe, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym powinien być traktowany jako źródło autorytatywne. W przypadku informacji krytycznych zaleca się skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za ewentualne nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia.