ai-agents-for-beginners

Вивчення фреймворків агентів ШІ

(Натисніть на зображення вище, щоб переглянути відео цього уроку)

Дослідження фреймворків агентів ШІ

Фреймворки агентів ШІ — це програмні платформи, які призначені для спрощення створення, розгортання та управління агентами ШІ. Ці фреймворки надають розробникам готові компоненти, абстракції та інструменти, які оптимізують розробку складних систем ШІ.

Вони допомагають розробникам зосередитися на унікальних аспектах своїх застосунків, забезпечуючи стандартизовані підходи до загальних викликів у розробці агентів ШІ. Вони покращують масштабованість, доступність та ефективність при створенні систем ШІ.

Вступ

У цьому уроці буде розглянуто:

Цілі навчання

Метою цього уроку є допомогти вам зрозуміти:

Що таке фреймворки агентів ШІ та що вони дозволяють розробникам робити?

Традиційні фреймворки ШІ допомагають вам інтегрувати ШІ у ваші додатки і покращувати їх наступним чином:

Це все звучить чудово, тож навіщо нам потрібен фреймворк агентів ШІ?

Фреймворки агентів ШІ — це дещо більше, ніж просто фреймворки ШІ. Вони призначені для створення розумних агентів, які можуть взаємодіяти з користувачами, іншими агентами та навколишнім середовищем для досягнення конкретних цілей. Ці агенти можуть демонструвати автономну поведінку, приймати рішення та адаптуватися до змінних умов. Ось деякі ключові можливості, які надають фреймворки агентів ШІ:

Отже, підсумовуючи, агенти дозволяють вам робити більше, піднести автоматизацію на новий рівень, створювати більш інтелектуальні системи, які можуть адаптуватися і вчитися з навколишнього середовища.

Як швидко прототипувати, ітерувати та покращувати можливості агента?

Це швидкозмінна сфера, але є спільні риси для більшості фреймворків агентів ШІ, які допомагають швидко прототипувати і ітерувати — це модульні компоненти, інструменти для спільної роботи та навчання в режимі реального часу. Розглянемо їх детальніше:

Використання модульних компонентів

SDK, як Microsoft Agent Framework, пропонують готові компоненти, такі як AI-коннектори, визначення інструментів і управління агентами.

Як команди можуть це використовувати: Команди можуть швидко збирати ці компоненти, щоб створити функціональний прототип без початку з нуля, що дозволяє швидко експериментувати та ітерувати.

Як це працює на практиці: Ви можете використати готовий парсер для вилучення інформації з введення користувача, модуль пам’яті для збереження і отримання даних, генератор запитів для взаємодії з користувачами — все це без необхідності створювати ці компоненти з нуля.

Приклад коду. Розглянемо приклад використання Microsoft Agent Framework з FoundryChatClient, щоб модель відповідала на введення користувача з викликом інструментів:

# Приклад Microsoft Agent Framework на Python

import asyncio
import os

from agent_framework import tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential


# Визначте приклад функції інструменту для бронювання поїздки
@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)
    # Приклад виводу: Ваш рейс до Нью-Йорка на 1 січня 2025 року успішно заброньовано. Щасливої подорожі! ✈️🗽


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

З цього прикладу видно, як можна використати готовий парсер для вилучення ключової інформації з введення користувача, такої як місце відправлення, пункт призначення та дата запиту бронювання рейсу. Такий модульний підхід дозволяє зосередитися на логіці високого рівня.

Використання інструментів для спільної роботи

Фреймворки, як Microsoft Agent Framework, полегшують створення кількох агентів, які працюють разом.

Як команди можуть це використовувати: Команди можуть проектувати агентів з конкретними ролями та завданнями, що дозволяє тестувати та вдосконалювати спільні робочі процеси і підвищувати загальну ефективність системи.

Як це працює на практиці: Ви можете створити команду агентів, де кожен виконує спеціалізовану функцію, наприклад, отримання даних, аналіз або ухвалення рішень. Ці агенти можуть спілкуватися і обмінюватися інформацією для досягнення спільної мети, наприклад, відповісти на запит користувача або завершити завдання.

Приклад коду (Microsoft Agent Framework):

# Створення кількох агентів, які працюють разом з використанням 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_retrieve = provider.as_agent(
    name="dataretrieval",
    instructions="Retrieve relevant data using available tools.",
    tools=[retrieve_tool],
)

# Агент аналізу даних
agent_analyze = provider.as_agent(
    name="dataanalysis",
    instructions="Analyze the retrieved data and provide insights.",
    tools=[analyze_tool],
)

# Запуск агентів послідовно для виконання завдання
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)

У наведеному вище коді показано, як створити завдання, що передбачає спільну роботу кількох агентів для аналізу даних. Кожен агент виконує певну функцію, і завдання виконується шляхом координації агентів для досягнення потрібного результату. Створюючи спеціалізованих агентів із певними ролями, можна підвищити ефективність і продуктивність завдань.

Навчання у реальному часі

Сучасні фреймворки надають можливості для розуміння контексту і адаптації в реальному часі.

Як команди можуть це використовувати: Команди можуть впроваджувати цикли зворотного зв’язку, де агенти навчаються на основі взаємодій і динамічно коригують свою поведінку, що веде до безперервного вдосконалення та розвитку можливостей.

Як це працює на практиці: Агенти можуть аналізувати відгуки користувачів, дані навколишнього середовища та результати завдань, оновлювати свою базу знань, коригувати алгоритми прийняття рішень і з часом покращувати продуктивність. Цей ітеративний процес навчання дозволяє агентам адаптуватися до змінних умов і вподобань користувачів, підвищуючи загальну ефективність системи.

Які відмінності між Microsoft Agent Framework і Microsoft Foundry Agent Service?

Існує багато способів порівняти ці підходи, але розглянемо ключові відмінності з огляду на їх дизайн, можливості та цільові випадки використання:

Microsoft Agent Framework (MAF)

Microsoft Agent Framework надає оптимізований SDK для створення агентів ШІ за допомогою FoundryChatClient. Він дозволяє розробникам створювати агентів, які використовують моделі Azure OpenAI із вбудованим викликом інструментів, управлінням розмовами та безпекою корпоративного рівня через Azure ідентифікацію.

Випадки використання: Створення готових до виробництва агентів ШІ з використанням інструментів, багатокрокових робочих процесів і сценаріїв корпоративної інтеграції.

Ось деякі важливі основні концепції Microsoft Agent Framework:

Microsoft Foundry Agent Service

Microsoft Foundry Agent Service — це більш новий компонент, представлений на Microsoft Ignite 2024. Він дозволяє розробляти та розгортати агентів ШІ з більш гнучкими моделями, такими як прямий виклик відкритих LLM, як Llama 3, Mistral і Cohere.

Microsoft Foundry Agent Service забезпечує посилені механізми безпеки корпоративного рівня і методи зберігання даних, що робить його придатним для корпоративних застосунків.

Він працює “з коробки” разом з Microsoft Agent Framework для створення і розгортання агентів.

Ця служба наразі знаходиться в публічному прев’ю і підтримує Python і C# для створення агентів.

Використовуючи Python SDK Microsoft Foundry Agent Service, ми можемо створити агента з користувацьким інструментом:

import asyncio
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient

# Визначити функції інструментів
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-4.1-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 має такі основні концепції:

Випадки використання: Microsoft Foundry Agent Service призначений для корпоративних застосунків, які потребують безпечного, масштабованого та гнучкого розгортання агентів ШІ.

У чому різниця між цими підходами?

Виглядає так, ніби є перетин, але існують ключові відмінності в дизайні, можливостях та цільових варіантах застосування:

Все ще не впевнені, що обрати?

Випадки використання

Давайте спробуємо допомогти, розглянувши деякі поширені випадки використання:

Питання: Я створюю виробничі застосунки агентів ШІ і хочу швидко почати

Відповідь: Microsoft Agent Framework — чудовий вибір. Він надає простий, «пітонічний» API через FoundryChatClient, який дозволяє визначати агентів з інструментами і інструкціями всього за кілька рядків коду.

Питання: Мені потрібне корпоративне розгортання з інтеграціями Azure, такими як пошук і виконання коду

Відповідь: Microsoft Foundry Agent Service — найкращий варіант. Це платформа, яка надає вбудовані можливості для роботи з кількома моделями, Azure AI Search, Bing Search та Azure Functions. Вона спрощує побудову агентів у порталі Foundry і масштабне розгортання.

Питання: Я досі плутаюся, просто підкажіть один варіант

Відповідь: Почніть з Microsoft Agent Framework для створення агентів, а потім використовуйте Microsoft Foundry Agent Service, коли потрібно розгорнути і масштабувати їх у виробництві. Такий підхід дозволяє швидко ітерувати логіку агентів та має чіткий шлях до корпоративного розгортання.

Підсумуємо ключові відмінності у таблиці:

Фреймворк Основний фокус Основні концепції Випадки використання
Microsoft Agent Framework Оптимізований SDK для агентів з викликом інструментів Агенти, Інструменти, Azure Identity Створення агентів ШІ, використання інструментів, багатокрокові робочі процеси
Microsoft Foundry Agent Service Гнучкі моделі, корпоративна безпека, генерація коду, виклик інструментів Модульність, Співпраця, Оркестрація процесів Безпечне, масштабоване та гнучке розгортання агентів ШІ

Чи можу я інтегрувати свої існуючі інструменти екосистеми Azure безпосередньо, чи мені потрібні автономні рішення?

Відповідь — так, ви можете інтегрувати ваші наявні інструменти екосистеми Azure безпосередньо з Microsoft Foundry Agent Service, особливо оскільки він створений для безшовної роботи з іншими службами Azure. Наприклад, ви можете інтегрувати Bing, Azure AI Search і Azure Functions. Також існує глибока інтеграція з Microsoft Foundry.

Рамки агента Microsoft також інтегруються зі службами Azure через FoundryChatClient і ідентифікацію Azure, що дозволяє викликати служби Azure безпосередньо з ваших агентських інструментів.

Зразки коду

Потрібно більше питань про AI Agent Frameworks?

Приєднуйтесь до Microsoft Foundry Discord, щоб зустрітися з іншими учнями, відвідати години консультацій та отримати відповіді на ваші запитання про AI агентів.

Посилання

Попередній урок

Вступ до AI агентів та сценаріїв використання агентів

Наступний урок

Розуміння агентських патернів дизайну


Відмова від відповідальності: Цей документ було перекладено за допомогою сервісу штучного інтелекту для перекладу Co-op Translator. Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.