ai-agents-for-beginners

Изучение фреймворков AI-агентов

(Нажмите на изображение выше, чтобы посмотреть видео этого урока)

Изучение фреймворков AI-агентов

Фреймворки AI-агентов — это программные платформы, предназначенные для упрощения создания, развертывания и управления AI-агентами. Эти фреймворки предоставляют разработчикам готовые компоненты, абстракции и инструменты, которые упрощают разработку сложных AI-систем.

Эти фреймворки помогают разработчикам сосредоточиться на уникальных аспектах своих приложений, предоставляя стандартизированные подходы к общим задачам в разработке AI-агентов. Они повышают масштабируемость, доступность и эффективность при создании AI-систем.

Введение

В этом уроке мы рассмотрим:

Цели обучения

Цели этого урока — помочь вам понять:

Что такое фреймворки AI-агентов и что они позволяют разработчикам делать?

Традиционные AI-фреймворки помогают интегрировать AI в ваши приложения и улучшить эти приложения следующими способами:

Звучит отлично, но зачем нужен фреймворк AI-агентов?

Фреймворки AI-агентов — это не просто AI-фреймворки. Они созданы для создания интеллектуальных агентов, которые могут взаимодействовать с пользователями, другими агентами и окружающей средой для достижения конкретных целей. Эти агенты могут демонстрировать автономное поведение, принимать решения и адаптироваться к меняющимся условиям. Рассмотрим ключевые возможности, которые предоставляют фреймворки AI-агентов:

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

Как быстро прототипировать, итеративно улучшать и совершенствовать возможности агента?

Это быстро развивающаяся сфера, но есть общие черты большинства фреймворков AI-агентов, которые помогают быстро прототипировать и итеративно улучшать — это модульные компоненты, инструменты для сотрудничества и обучение в реальном времени. Рассмотрим подробнее:

Использование модульных компонентов

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

Как команды могут использовать это: команды могут быстро собирать эти компоненты для создания функционального прототипа без необходимости начинать с нуля, что позволяет быстро экспериментировать и итеративно улучшать.

Как это работает на практике: можно использовать готовый парсер для извлечения информации из пользовательского ввода, модуль памяти для хранения и извлечения данных, а также генератор подсказок для взаимодействия с пользователями — всё это без необходимости создавать компоненты с нуля.

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

# Пример использования Microsoft Agent Framework на Python

import asyncio
import os
from typing import Annotated

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


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


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

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

Использование инструментов для сотрудничества

Фреймворки типа Microsoft Agent Framework облегчают создание нескольких агентов, которые могут работать совместно.

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

Как это работает на практике: вы можете создать команду агентов, каждый из которых выполняет специализированную функцию, например, извлечение данных, анализ или принятие решений. Эти агенты могут общаться и обмениваться информацией для достижения общей цели, например, ответа на пользовательский запрос или выполнения задачи.

Пример кода (Microsoft Agent Framework):

# Создание нескольких агентов, которые работают вместе с использованием Microsoft Agent Framework

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

provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())

# Агент извлечения данных
agent_retrieve = await provider.create_agent(
    name="dataretrieval",
    instructions="Retrieve relevant data using available tools.",
    tools=[retrieve_tool],
)

# Агент анализа данных
agent_analyze = await provider.create_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 и Azure AI Agent Service?

Существует множество способов сравнить эти подходы, но рассмотрим ключевые различия с точки зрения дизайна, возможностей и целевых сценариев использования:

Microsoft Agent Framework (MAF)

Microsoft Agent Framework предоставляет легкий в использовании SDK для создания AI-агентов с использованием AzureAIProjectAgentProvider. Он позволяет разработчикам создавать агентов, которые используют модели Azure OpenAI с встроенным вызовом инструментов, управлением диалогом и корпоративной безопасностью через Azure identity.

Сценарии использования: создание готовых к производству AI-агентов с использованием инструментов, многошаговых рабочих процессов и сценариев интеграции для предприятий.

Вот несколько важных основных концепций Microsoft Agent Framework:

Azure AI Agent Service

Azure AI Agent Service — более новая платформа, представленная на Microsoft Ignite 2024. Она позволяет разрабатывать и развертывать AI-агентов с использованием более гибких моделей, таких как открытые LLM, например Llama 3, Mistral и Cohere.

Azure AI Agent Service предлагает более строгие механизмы корпоративной безопасности и методы хранения данных, что делает ее подходящей для корпоративных приложений.

Сервис работает из коробки с Microsoft Agent Framework для создания и развертывания агентов.

В настоящее время сервис находится в публичной предварительной версии и поддерживает Python и C# для создания агентов.

Используя Python SDK Azure AI 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-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())

Основные концепции

Azure AI Agent Service включает следующие основные концепции:

Сценарии использования: Azure AI Agent Service предназначен для корпоративных приложений, требующих безопасного, масштабируемого и гибкого развертывания AI-агентов.

В чем же разница между этими подходами?

Очевиден некоторый пересмотр, но ключевые различия заключаются в дизайне, возможностях и целевых случаях использования:

Все еще не знаете, что выбрать?

Сценарии использования

Давайте посмотрим, сможем ли мы помочь, пройдя через распространенные случаи:

В: Я создаю приложения для продакшн AI-агентов и хочу быстро начать

О: Microsoft Agent Framework — отличный выбор. Он предоставляет простой Python API через AzureAIProjectAgentProvider, позволяющий определить агентов с инструментами и инструкциями всего в несколько строк кода.

В: Мне нужно корпоративное развертывание с интеграцией Azure, например, Search и выполнение кода

О: Azure AI Agent Service подходит лучше всего. Это платформенный сервис с готовыми возможностями для множества моделей, Azure AI Search, Bing Search и Azure Functions. Вы можете легко создавать агентов в Foundry Portal и масштабировать их развертывание.

В: Я все еще в сомнениях, просто дайте один вариант

О: Начните с Microsoft Agent Framework для создания агентов, а потом используйте Azure AI Agent Service для продакшн-развертывания и масштабирования. Такой подход позволяет быстро итерировать логику агентов и при этом иметь четкий путь к корпоративному развертыванию.

Сводим ключевые различия в таблицу:

Фреймворк Фокус Основные концепции Сценарии использования
Microsoft Agent Framework Упрощенный SDK с вызовом инструментов Агенты, Инструменты, Azure Identity Создание AI-агентов, использование инструментов, многошаговые процессы
Azure AI Agent Service Гибкие модели, корпоративная безопасность, генерация кода, вызов инструментов Модульность, сотрудничество, оркестрация процессов Безопасное, масштабируемое и гибкое развертывание AI-агентов

Могу ли я интегрировать свои существующие инструменты экосистемы Azure напрямую или нужны отдельные решения?

Ответ — да, вы можете интегрировать ваши существующие инструменты экосистемы Azure напрямую с сервисом Azure AI Agent Service, особенно учитывая, что он был создан для бесшовной работы с другими сервисами Azure. Например, вы можете интегрировать Bing, Azure AI Search и Azure Functions. Также предусмотрена глубокая интеграция с Microsoft Foundry.

Фреймворк Microsoft Agent Framework также интегрируется с сервисами Azure с помощью AzureAIProjectAgentProvider и Azure identity, позволяя вызывать сервисы Azure напрямую из ваших агентских инструментов.

Примеры кода

Есть вопросы по AI Agent Framework?

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

Ссылки

Предыдущий урок

Introduction to AI Agents and Agent Use Cases

Следующий урок

Understanding Agentic Design Patterns


Отказ от ответственности:
Этот документ был переведён с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, просим учесть, что машинный перевод может содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неверные толкования, возникшие вследствие использования данного перевода.