(Нажмите на изображение выше, чтобы посмотреть видео этого урока)
Изучение фреймворков ИИ-агентов
Примечание AI University. Примеры кода в оригинале курса рассчитаны на Azure AI Foundry, Azure OpenAI или GitHub Models. Идеи урока не привязаны к Azure: похожих агентов можно собрать на OpenAI API или другом провайдере, но названия классов, параметры и настройка подключения будут отличаться, сверяйтесь с документацией выбранного фреймворка.
Фреймворки ИИ-агентов, это программные платформы, предназначенные для упрощения создания, развёртывания и управления ИИ-агентами. Эти фреймворки предоставляют разработчикам готовые компоненты, абстракции и инструменты, которые упрощают разработку сложных ИИ-систем.
Фреймворки помогают разработчикам сосредоточиться на уникальных аспектах своих приложений, предлагая стандартизированные подходы к распространённым задачам при разработке ИИ-агентов. Они повышают масштабируемость, доступность и эффективность при создании ИИ-систем.
Введение
В этом уроке мы рассмотрим:
- Что такое фреймворки ИИ-агентов и что они позволяют разработчикам достичь?
- Как команды могут использовать их для быстрого прототипирования, итераций и улучшения возможностей своих агентов?
- В чём различия между фреймворками и инструментами, созданными Microsoft (Microsoft Foundry Agent Service и Microsoft Agent Framework)?
- Можете ли вы интегрировать существующие инструменты экосистемы Azure напрямую или вам потребуются автономные решения?
- Что такое Microsoft Foundry Agent Service и как он вам помогает?
Цели обучения
Цели этого урока: помочь вам понять:
- Роль фреймворков ИИ-агентов в разработке ИИ.
- Как использовать фреймворки ИИ-агентов для создания интеллектуальных агентов.
- Ключевые возможности, предоставляемые фреймворками ИИ-агентов.
- Различия между Microsoft Agent Framework и Microsoft Foundry Agent Service.
Что такое фреймворки ИИ-агентов и что они позволяют разработчикам делать?
Традиционные ИИ-фреймворки могут помочь вам интегрировать ИИ в ваши приложения и улучшить эти приложения следующими способами:
- Персонализация: ИИ может анализировать поведение и предпочтения пользователей, чтобы предоставлять персонализированные рекомендации, контент и опыт. Пример: Стриминговые сервисы, такие как Netflix, используют ИИ для предложения фильмов и шоу на основе истории просмотров, повышая вовлечённость и удовлетворённость пользователей.
- Автоматизация и эффективность: ИИ может автоматизировать повторяющиеся задачи, оптимизировать рабочие процессы и повышать операционную эффективность. Пример: Приложения для обслуживания клиентов используют чат-ботов на базе ИИ для обработки распространённых запросов, сокращая время ответа и освобождая сотрудников для решения более сложных вопросов.
- Улучшенный пользовательский опыт: ИИ может улучшать общий пользовательский опыт, предоставляя интеллектуальные функции, такие как распознавание голоса, обработка естественного языка и предиктивный ввод. Пример: Виртуальные помощники, такие как Siri и Google Assistant, используют ИИ для понимания и реагирования на голосовые команды, облегчая пользователям взаимодействие с их устройствами.
Всё это звучит отлично, но зачем нам фреймворк ИИ-агентов?
Фреймворки ИИ-агентов представляют собой нечто большее, чем просто ИИ-фреймворки. Они предназначены для создания интеллектуальных агентов, которые могут взаимодействовать с пользователями, другими агентами и окружающей средой для достижения конкретных целей. Эти агенты могут демонстрировать автономное поведение, принимать решения и адаптироваться к меняющимся условиям. Давайте рассмотрим некоторые ключевые возможности, предоставляемые фреймворками ИИ-агентов:
- Взаимодействие и координация агентов: Позволяют создавать несколько ИИ-агентов, которые могут работать вместе, общаться и координироваться для решения сложных задач.
- Автоматизация и управление задачами: Предоставляют механизмы для автоматизации многошаговых рабочих процессов, делегирования задач и динамического управления задачами между агентами.
- Контекстуальное понимание и адаптация: Наделяют агентов способностью понимать контекст, адаптироваться к изменяющимся условиям и принимать решения на основе информации в реальном времени.
Таким образом, агенты позволяют вам делать больше, выводить автоматизацию на новый уровень, создавать более интеллектуальные системы, которые могут адаптироваться и учиться на основе своего окружения.
Как быстро прототипировать, выполнять итерации и улучшать возможности агента?
Это быстро развивающаяся область, но есть некоторые общие черты большинства фреймворков ИИ-агентов, которые могут помочь вам быстро прототипировать и выполнять итерации, а именно: модульные компоненты, инструменты для совместной работы и обучение в реальном времени. Давайте рассмотрим их подробнее:
- Использование модульных компонентов: SDK для ИИ предлагают готовые компоненты, такие как коннекторы ИИ и памяти, вызов функций с использованием естественного языка или плагинов кода, шаблоны промптов и многое другое.
- Использование инструментов для совместной работы: Проектируйте агентов с определёнными ролями и задачами, что позволяет тестировать и совершенствовать рабочие процессы совместной работы.
- Обучение в реальном времени: Реализуйте циклы обратной связи, в которых агенты учатся на взаимодействиях и динамически корректируют своё поведение.
Использование модульных компонентов
SDK, такие как Microsoft Agent Framework, предлагают готовые компоненты, например, коннекторы ИИ, определения инструментов и управление агентами.
Как команды могут использовать их: Команды могут быстро собирать эти компоненты для создания функционального прототипа, не начиная с нуля, что позволяет быстро экспериментировать и выполнять итерации.
Как это работает на практике: Вы можете использовать готовый парсер для извлечения информации из пользовательского ввода, модуль памяти для хранения и извлечения данных и генератор промптов для взаимодействия с пользователями, при этом вам не придётся создавать эти компоненты с нуля.
Пример кода. Давайте рассмотрим пример того, как вы можете использовать Microsoft Agent Framework с FoundryChatClient, чтобы модель отвечала на пользовательский ввод с вызовом инструментов:
# Microsoft Agent Framework Python Example
import asyncio
import os
from agent_framework import tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
# Define a sample tool function to book travel
@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)
# Example output: Your flight to New York on January 1, 2025, has been successfully booked. Safe travels! ✈️🗽
if __name__ == "__main__":
asyncio.run(main())
Из этого примера видно, как можно использовать готовый парсер для извлечения ключевой информации из пользовательского ввода, такой как пункт отправления, пункт назначения и дата запроса на бронирование рейса. Такой модульный подход позволяет сосредоточиться на высокоуровневой логике.
Использование инструментов для совместной работы
Фреймворки, такие как Microsoft Agent Framework, облегчают создание нескольких агентов, которые могут работать вместе.
Как команды могут использовать их: Команды могут проектировать агентов с определёнными ролями и задачами, что позволяет тестировать и совершенствовать рабочие процессы совместной работы и повышать общую эффективность системы.
Как это работает на практике: Вы можете создать команду агентов, где каждый агент выполняет специализированную функцию, например, извлечение данных, анализ или принятие решений. Эти агенты могут общаться и обмениваться информацией для достижения общей цели, например, ответа на запрос пользователя или выполнения задачи.
Пример кода (Microsoft Agent Framework):
# Creating multiple agents that work together using the 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(),
)
# Data Retrieval Agent
agent_retrieve = provider.as_agent(
name="dataretrieval",
instructions="Retrieve relevant data using available tools.",
tools=[retrieve_tool],
)
# Data Analysis Agent
agent_analyze = provider.as_agent(
name="dataanalysis",
instructions="Analyze the retrieved data and provide insights.",
tools=[analyze_tool],
)
# Run agents in sequence on a task
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 identity.
Сценарии использования: создание готовых к производству ИИ-агентов с использованием инструментов, многошаговыми рабочими процессами и сценариями корпоративной интеграции.
Ниже приведены некоторые важные основные концепции Microsoft Agent Framework:
Агенты. Агент создаётся через
FoundryChatClientи настраивается с именем, инструкциями и инструментами. Агент может:- Обрабатывать сообщения пользователя и генерировать ответы с помощью моделей Azure OpenAI.
- Вызывать инструменты автоматически на основе контекста диалога.
- Поддерживать состояние диалога на протяжении нескольких взаимодействий.
Вот фрагмент кода, показывающий, как создать агента:
```pythonimport 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)
Инструменты. Фреймворк поддерживает определение инструментов как функций Python, которые агент может вызывать автоматически. Инструменты регистрируются при создании агента:
```pythondef 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], )
Координация нескольких агентов. Вы можете создать несколько агентов с различными специализациями и координировать их работу:
```pythonplanner = 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}")
Интеграция с Azure Identity. Фреймворк использует
AzureCliCredential(илиDefaultAzureCredential) для безопасной аутентификации без ключей, что устраняет необходимость напрямую управлять ключами API.
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
# Define tool functions
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 имеет следующие основные концепции:
Агент. Microsoft Foundry Agent Service интегрируется с Microsoft Foundry. В рамках Microsoft Foundry ИИ-агент действует как «умный» микросервис, который можно использовать для ответов на вопросы (RAG), выполнения действий или полной автоматизации рабочих процессов. Это достигается за счёт сочетания возможностей генеративных ИИ-моделей с инструментами, которые позволяют ему получать доступ к реальным источникам данных и взаимодействовать с ними. Вот пример агента:
```pythonagent = 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, )
В этом примере агент создаётся с моделью `gpt-5-mini`, именем `my-agent` и инструкциями `You are helpful agent`. Агент оснащён инструментами и ресурсами для выполнения задач интерпретации кода.Поток и сообщения. Поток является ещё одной важной концепцией. Он представляет собой диалог или взаимодействие между агентом и пользователем. Потоки можно использовать для отслеживания хода диалога, хранения контекстной информации и управления состоянием взаимодействия. Вот пример потока:
```pythonthread = 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", )
Ask the agent to perform work on the thread
run = project_client.agents.create_and_process_run(thread_id=thread.id, agent_id=agent.id)
Fetch and log all messages to see the agent's response
messages = project_client.agents.list_messages(thread_id=thread.id) print(f"Messages: {messages}")
В предыдущем коде создаётся поток. Затем в поток отправляется сообщение. Вызывая `create_and_process_run`, агенту предлагается выполнить работу в потоке. Наконец, сообщения извлекаются и записываются в журнал, чтобы увидеть ответ агента. Сообщения показывают ход диалога между пользователем и агентом. Также важно понимать, что сообщения могут быть разных типов, например, текст, изображение или файл, то есть работа агента может привести, например, к изображению или текстовому ответу. Как разработчик, вы можете использовать эту информацию для дальнейшей обработки ответа или его представления пользователю.Интеграция с Microsoft Agent Framework. Microsoft Foundry Agent Service беспрепятственно работает с Microsoft Agent Framework, что означает, что вы можете создавать агентов с помощью
FoundryChatClientи развёртывать их через Agent Service для производственных сценариев.
Сценарии использования: Microsoft Foundry Agent Service разработан для корпоративных приложений, которым требуется безопасное, масштабируемое и гибкое развёртывание ИИ-агентов.
В чём разница между этими подходами?
Кажется, что они пересекаются, но есть некоторые ключевые различия в их дизайне, возможностях и целевых сценариях использования:
- Microsoft Agent Framework (MAF): это готовый к производству SDK для создания ИИ-агентов. Он предоставляет упрощённый API для создания агентов с вызовом инструментов, управлением диалогами и интеграцией с Azure identity.
- Microsoft Foundry Agent Service: это платформа и служба развёртывания агентов в Microsoft Foundry. Она предлагает встроенное подключение к таким службам, как Azure OpenAI, Azure AI Search, Bing Search и выполнение кода.
Всё ещё не уверены, что выбрать?
Сценарии использования
Давайте посмотрим, сможем ли мы помочь вам, рассмотрев некоторые распространённые сценарии использования:
В: Я создаю производственные приложения ИИ-агентов и хочу быстро начать работу.
О: Microsoft Agent Framework, отличный выбор. Он предоставляет простой, «питоновский» API через
FoundryChatClient, который позволяет определять агентов с инструментами и инструкциями всего в нескольких строках кода.
В: Мне требуется корпоративное развёртывание с интеграцией Azure, такой как Search и выполнение кода.
О: 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 Agent Framework также интегрируется со службами Azure через FoundryChatClient и Azure identity, что позволяет вызывать службы Azure напрямую из инструментов вашего агента.
Примеры кода
- Python: Agent Framework (Microsoft Foundry)
- Python: Agent Framework (Azure OpenAI Responses API)
- .NET: Agent Framework
Есть ещё вопросы об ИИ-агентных фреймворках?
Присоединяйтесь к Microsoft Foundry Discord, чтобы встретиться с другими учащимися, посетить часы консультаций и получить ответы на свои вопросы об ИИ-агентах.
Ресурсы
- Служба Azure Agent
- Microsoft Agent Framework - Azure OpenAI Responses
- Microsoft Foundry Agent Service
Предыдущий урок
Введение в ИИ-агенты и сценарии их использования
Следующий урок
Понимание агентных паттернов проектирования
Источник: урок курса Microsoft «AI Agents for Beginners», © Microsoft Corporation, лицензия MIT. Перевод и адаптация на русский: AI University. Мы не являемся официальным партнёром или представителем Microsoft.