(Нажмите на изображение выше, чтобы посмотреть видео этого урока)
Фреймворки AI-агентов — это программные платформы, предназначенные для упрощения создания, развертывания и управления AI-агентами. Эти фреймворки предоставляют разработчикам готовые компоненты, абстракции и инструменты, которые упрощают разработку сложных AI-систем.
Эти фреймворки помогают разработчикам сосредоточиться на уникальных аспектах своих приложений, предоставляя стандартизированные подходы к распространённым задачам в разработке AI-агентов. Они повышают масштабируемость, доступность и эффективность создания AI-систем.
В этом уроке мы рассмотрим:
Цели этого урока — помочь вам понять:
Традиционные AI-фреймворки могут помочь интегрировать AI в ваши приложения и улучшить их следующим образом:
Фреймворки AI-агентов — это не просто AI-фреймворки. Они предназначены для создания интеллектуальных агентов, которые могут взаимодействовать с пользователями, другими агентами и окружающей средой для достижения конкретных целей. Эти агенты могут проявлять автономное поведение, принимать решения и адаптироваться к меняющимся условиям. Рассмотрим ключевые возможности, которые предоставляют фреймворки AI-агентов:
Таким образом, агенты позволяют сделать больше, вывести автоматизацию на новый уровень, создавать более интеллектуальные системы, которые могут адаптироваться и учиться на основе окружения.
Это быстро меняющийся ландшафт, но есть некоторые общие особенности большинства AI-фреймворков агентов, которые могут помочь быстро прототипировать и итеративно улучшать — это модульные компоненты, инструменты совместной работы и обучение в реальном времени. Рассмотрим их подробнее:
SDK, такие как Microsoft Agent Framework, предлагают готовые компоненты — AI-коннекторы, определения инструментов и управление агентами.
Как команды могут использовать их: Команды могут быстро собрать функциональный прототип без написания с нуля, что позволяет быстро экспериментировать и итеративно улучшать.
Как это работает на практике: Можно использовать готовый парсер для извлечения информации из пользовательского ввода, модуль памяти для хранения и извлечения данных, генератор запросов для взаимодействия с пользователями — всё это без создания компонентов с нуля.
Пример кода. Рассмотрим пример того, как использовать Microsoft Agent Framework с FoundryChatClient для того, чтобы модель отвечала на ввод пользователя с вызовом инструментов:
# Пример на Python для Microsoft Agent Framework
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())
Из этого примера видно, как можно использовать готовый парсер для извлечения ключевой информации из пользовательского ввода, такой как origin, destination и дата запроса на бронирование рейса. Такой модульный подход позволяет сосредоточиться на логике высокого уровня.
Фреймворки, такие как 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 предоставляет упрощённый SDK для создания AI-агентов с использованием FoundryChatClient. Это позволяет разработчикам создавать агентов с использованием моделей Azure OpenAI с встроенным вызовом инструментов, управлением беседой и корпоративной защитой через Azure identity.
Сценарии использования: Создание готовых к производству AI-агентов с использованием инструментов, многошаговыми рабочими процессами и интеграцией в корпоративные среды.
Вот некоторые важные ключевые понятия в Microsoft Agent Framework:
FoundryChatClient и настраивается с именем, инструкциями и инструментами. Агент может:
Вот пример кода, показывающий создание агента:
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)
Инструменты. Фреймворк поддерживает определение инструментов как функций Python, которые агент может автоматически вызывать. Инструменты регистрируются при создании агента:
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],
)
Координация нескольких агентов. Можно создавать нескольких агентов с разными специализациями и координировать их работу:
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 (или DefaultAzureCredential) для безопасной аутентификации без ключей, исключая необходимость прямо управлять API-ключами.Microsoft Foundry Agent Service — это более новый продукт, представленный на Microsoft Ignite 2024. Он позволяет разрабатывать и развертывать AI-агентов с более гибкими моделями, такими как вызов open-source 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-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. В Foundry AI Agent выступает как «умный» микросервис, который можно использовать для ответов на вопросы (RAG), выполнения действий или полной автоматизации рабочих процессов. Это достигается за счёт сочетания генеративных AI-моделей с инструментами, позволяющими обращаться и взаимодействовать с реальными источниками данных. Вот пример агента:
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,
)
В этом примере агент создаётся с моделью gpt-5-mini, именем my-agent и инструкциями You are helpful agent. Агент оснащён инструментами и ресурсами для выполнения задач интерпретации кода.
Поток и сообщения. Поток — ещё одна важная концепция. Он представляет собой беседу или взаимодействие между агентом и пользователем. Потоки используются для отслеживания хода беседы, хранения контекстной информации и управления состоянием взаимодействия. Вот пример потока:
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",
)
# Попросить агента выполнить работу в потоке
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"Messages: {messages}")
В приведённом коде создаётся поток. Затем в поток отправляется сообщение. Вызовом create_and_process_run агенту поручается выполнить работу в рамках потока. Наконец, сообщения извлекаются и логируются для просмотра ответа агента. Сообщения отражают ход беседы между пользователем и агентом. Важно понимать, что сообщения могут быть разных типов, таких как текст, изображение или файл — то есть работа агента может привести к созданию, например, изображения или текстового ответа. Как разработчик, вы можете использовать эту информацию для дальнейшей обработки ответа или его отображения пользователю.
Интеграция с Microsoft Agent Framework. Microsoft Foundry Agent Service работает безупречно с Microsoft Agent Framework, что позволяет строить агентов с помощью FoundryChatClient и развертывать их через Agent Service для производственных сценариев.
Сценарии использования: Microsoft Foundry Agent Service предназначен для корпоративных приложений, требующих безопасного, масштабируемого и гибкого развертывания AI-агентов.
Кажется, что они пересекаются, но есть ключевые различия в дизайне, возможностях и целевых сценариях использования:
Всё ещё не уверены, что выбрать?
Попробуем помочь, рассмотрев несколько распространённых сценариев:
В: Я создаю производственные AI-агент приложения и хочу начать быстро
О: Microsoft Agent Framework — отличный выбор. Он предоставляет простой, питоничный API через
FoundryChatClient, который позволяет определять агентов с инструментами и инструкциями всего в нескольких строках кода.
В: Мне нужно корпоративное развертывание с интеграциями Azure, такими как Поиск и выполнение кода
О: Лучший вариант — Microsoft Foundry Agent Service. Это платформа с встроенными возможностями для нескольких моделей, Azure AI Search, Bing Search и Azure Functions. Она позволяет легко создавать агентов в Foundry Portal и масштабировать их развертывание.
В: Всё ещё запутался, просто дай один вариант
О: Начните с Microsoft Agent Framework для создания агентов, а затем используйте Microsoft Foundry Agent Service, когда потребуется развертывание и масштабирование в производстве. Такой подход позволяет быстро итеративно разрабатывать логику агентов с чётким путём для корпоративного развертывания.
Подведём ключевые различия в таблице:
| Фреймворк | Фокус | Основные понятия | Сценарии использования |
|---|---|---|---|
| Microsoft Agent Framework | Упрощённый SDK для агентов с вызовом инструментов | Агенты, Инструменты, Azure Identity | Создание AI-агентов, использование инструментов, многошаговые рабочие процессы |
| Microsoft Foundry Agent Service | Гибкие модели, корпоративная безопасность, генерация кода, вызов инструментов | Модульность, Совместная работа, Организация процессов | Безопасное, масштабируемое и гибкое развертывание AI-агентов |
Ответ — да, вы можете интегрировать ваши существующие инструменты из экосистемы Azure напрямую с Microsoft Foundry Agent Service, особенно учитывая, что он был создан для бесшовной работы с другими сервисами Azure. Например, вы можете интегрировать Bing, Azure AI Search и Azure Functions. Также существует глубокая интеграция с Microsoft Foundry.
Фреймворк Microsoft Agent также интегрируется с сервисами Azure через FoundryChatClient и Azure identity, позволяя вызывать сервисы Azure напрямую из ваших агентских инструментов.
Присоединяйтесь к Microsoft Foundry Discord, чтобы встретиться с другими обучающимися, участвовать в часах консультаций и получить ответы на ваши вопросы о AI агентах.
Введение в AI Агентов и сценарии их использования
Понимание агентных дизайн-паттернов
Отказ от ответственности: Этот документ был переведен с использованием сервиса машинного перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется обратиться к профессиональному человеческому переводу. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода.