Microsoft Intro to AI Agent: изучение платформы AI Agent Framework
Фреймворки AI Agent - это программные платформы, предназначенные для упрощения создания, развертывания и управления AI Agents. Эти платформы предоставляют разработчикам готовые компоненты, абстракции и инструменты для упрощения разработки сложных систем ИИ.
Эти фреймворки помогают разработчикам сосредоточиться на уникальных аспектах своих приложений, обеспечивая стандартизированный подход к решению общих проблем при разработке агентов ИИ. Они повышают масштабируемость, доступность и эффективность создания систем ИИ.
краткое содержание
В этом курсе будут рассмотрены:
- Что такое фреймворки AI Agent и что они позволяют делать разработчикам?
- Как команды могут использовать эти фреймворки для быстрого создания прототипов, итераций и улучшения возможностей Agent?
- В чем разница между фреймворками и инструментами, созданными Microsoft AutoGen, Semantic Kernel и Azure AI Agent?
- Возможна ли прямая интеграция с существующими инструментами экосистемы Azure или мне нужно отдельное решение?
- Что такое служба Azure AI Agents и как она может помочь?
цель обучения
Цель этого курса - помочь вам понять:
- Роль фреймворков AI Agent в разработке ИИ.
- Как создавать интеллектуальные агенты с помощью AI Agent Framework.
- Ключевые функции, реализованные в рамках AI Agent.
- Различия между AutoGen, Semantic Kernel и Azure AI Agent Service.
Что такое фреймворки AI Agent и что они позволяют делать разработчикам?
Традиционные фреймворки для ИИ помогут вам интегрировать ИИ в ваши приложения и сделать их лучше:
- персонализированныйИИ может анализировать поведение и предпочтения пользователей, чтобы предоставлять персонализированные рекомендации, контент и опыт. Например, потоковые сервисы, такие как Netflix, используют ИИ для рекомендации фильмов и передач на основе истории просмотров, чтобы повысить вовлеченность и удовлетворенность пользователей.
- Автоматизация и эффективностьИИ позволяет автоматизировать повторяющиеся задачи, оптимизировать рабочие процессы и повысить эффективность работы. Например, в приложениях для обслуживания клиентов используются чат-боты на базе ИИ для обработки обычных запросов, что сокращает время ответа и позволяет сотрудникам заниматься более сложными вопросами.
- Улучшенный пользовательский опытИИ может улучшить общий пользовательский опыт, предоставляя интеллектуальные функции, такие как распознавание речи, обработка естественного языка и предиктивный текст. Например, виртуальные помощники, такие как Siri и Google Assistant, используют ИИ для понимания и реагирования на голосовые команды, облегчая пользователям взаимодействие с устройствами.
Все это звучит замечательно, верно? Так зачем же нам нужен фреймворк AI Agent?
Фреймворки AI Agent - это не просто фреймворки AI. Они предназначены для создания интеллектуальных агентов, которые могут взаимодействовать с пользователем, другими агентами и окружающей средой для достижения определенных целей, а также демонстрировать автономное поведение, принимать решения и адаптироваться к изменяющимся условиям. Давайте рассмотрим некоторые ключевые функции, реализованные во фреймворках AI Agent:
- Сотрудничество и координация агентов: Поддерживает создание нескольких агентов ИИ, которые могут работать вместе, общаться и координировать свои действия для решения сложных задач.
- Автоматизация и управление задачами: Предоставляет механизмы для автоматизации многоэтапных рабочих процессов, делегирования задач и динамического управления задачами между агентами.
- Понимание контекста и адаптация: Позволяет агенту понимать контекст, адаптироваться к изменяющимся условиям и принимать решения на основе информации в реальном времени.
Одним словом, агенты позволяют вам делать больше, выводить автоматизацию на новый уровень и создавать более интеллектуальные системы, которые могут адаптироваться и обучаться на основе окружающей среды.
Как я могу быстро создавать прототипы, итерации и улучшать возможности Агента?
Это быстро развивающаяся область, но большинство фреймворков AI Agent имеют несколько общих черт, которые помогут вам быстро создавать прототипы и итерации, а именно: модульные компоненты, инструменты для совместной работы и обучение в реальном времени. Давайте рассмотрим их подробнее:
- Использование модульных компонентов: Фреймворк AI предоставляет готовые компоненты, такие как подсказки, парсеры и управление памятью.
- Использование инструментов для совместной работыАгенты дизайна с определенными ролями и задачами, чтобы они могли тестировать и улучшать совместные рабочие процессы.
- Обучение в реальном времени: Создается петля обратной связи, в которой агент учится на основе взаимодействия и динамически адаптирует свое поведение.
Использование модульных компонентов
Такие фреймворки, как LangChain и Microsoft Semantic Kernel, предоставляют готовые компоненты, такие как подсказки, парсеры и управление памятью.
Как команды используют этиКоманды могут быстро собрать эти компоненты для создания функционального прототипа без необходимости начинать с нуля, что позволяет быстро проводить эксперименты и итерации.
Как это работает на практике: Вы можете использовать готовые парсеры для извлечения информации из пользовательского ввода, модули in-memory для хранения и получения данных и генераторы подсказок для взаимодействия с пользователями, и все это без необходимости создавать эти компоненты с нуля.
пример кода (вычисления). Рассмотрим пример извлечения информации из пользовательского ввода с помощью встроенного парсера:
// Semantic Kernel 示例
ChatHistory chatHistory = [];
chatHistory.AddUserMessage("I'd like to go To New York");
// 定义一个包含预订旅行功能的插件
public class BookTravelPlugin(
IPizzaService pizzaService,
IUserContext userContext,
IPaymentService paymentService)
{
[KernelFunction("book_flight")]
[Description("Book travel given location and date")]
public async Task<Booking> BookFlight(
DateTime date,
string location,
)
{
// 根据日期、地点预订旅行
}
}
IKernelBuilder kernelBuilder = new KernelBuilder();
kernelBuilder..AddAzureOpenAIChatCompletion(
deploymentName: "NAME_OF_YOUR_DEPLOYMENT",
apiKey: "YOUR_API_KEY",
endpoint: "YOUR_AZURE_ENDPOINT"
);
kernelBuilder.Plugins.AddFromType<BookTravelPlugin>("BookTravel");
Kernel kernel = kernelBuilder.Build();
/*
在后台,它识别要调用的工具、它已经具有的参数 (location) 和它需要的参数 (date)
{
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "BookTravelPlugin-book_flight",
"arguments": "{\n\"location\": \"New York\",\n\"date\": \"\"\n}"
}
}
]
*/
ChatResponse response = await chatCompletion.GetChatMessageContentAsync(
chatHistory,
executionSettings: openAIPromptExecutionSettings,
kernel: kernel)
Console.WriteLine(response);
chatHistory.AddAssistantMessage(response);
// AI 响应:"Before I can book your flight, I need to know your departure date. When are you planning to travel?"
// 也就是说,在前面的代码中,它找出了要调用的工具,它已经拥有的参数 (location) 以及它从用户输入中需要的参数 (date),此时它最终会向用户询问缺失的信息
Из этого примера видно, как можно использовать готовый парсер для извлечения ключевой информации из пользовательского ввода, такой как пункт отправления, пункт назначения и дата запроса на бронирование авиабилета. Такой модульный подход позволяет сосредоточиться на логике высокого уровня.
Использование инструментов для совместной работы
CrewAI и Microsoft AutoGen Рамки, подобные этой, облегчают создание множества Агентов, которые могут работать вместе.
Как команды используют этиКоманды могут создавать агентов с определенными ролями и задачами, что позволяет им тестировать и совершенствовать совместные рабочие процессы и повышать общую эффективность системы.
Как это работает на практике: Вы можете создать команду агентов, каждый из которых выполняет специализированную функцию, например поиск данных, анализ или принятие решений. Эти агенты могут общаться и обмениваться информацией для достижения общих целей, таких как ответы на запросы пользователей или выполнение задач.
Код примера (AutoGen)::
# 创建 Agent,然后创建一个循环调度,让他们可以协同工作,在本例中是按顺序
# 数据检索 Agent
# 数据分析 Agent
# 决策 Agent
agent_retrieve = AssistantAgent(
name="dataretrieval",
model_client=model_client,
tools=[retrieve_tool],
system_message="Use tools to solve tasks."
)
agent_analyze = AssistantAgent(
name="dataanalysis",
model_client=model_client,
tools=[analyze_tool],
system_message="Use tools to solve tasks."
)
# 当用户说 "APPROVE" 时,对话结束
termination = TextMentionTermination("APPROVE")
user_proxy = UserProxyAgent("user_proxy", input_func=input)
team = RoundRobinGroupChat([agent_retrieve, agent_analyze, user_proxy], termination_condition=termination)
stream = team.run_stream(task="Analyze data", max_turns=10)
# 在脚本中运行时使用 asyncio.run(...)。
await Console(stream)
В приведенном выше коде вы увидели, как создать задачу, в которой несколько агентов работают вместе, чтобы проанализировать данные. Каждый агент выполняет определенную функцию и координирует работу агентов для достижения желаемых результатов. Создавая специальных Агентов со специализированными ролями, вы можете повысить эффективность и производительность задачи.
Обучение в реальном времени
Усовершенствованная система обеспечивает понимание и адаптацию контекста в режиме реального времени.
Как команды используют эти рамкиКоманды могут реализовывать петли обратной связи, которые позволяют агентам учиться на основе взаимодействия и динамически корректировать свое поведение, что ведет к постоянному улучшению и совершенствованию возможностей.
практическое применениеАгенты могут анализировать отзывы пользователей, данные об окружающей среде и результаты выполнения задач, чтобы обновлять свою базу знаний, адаптировать алгоритмы принятия решений и улучшать производительность с течением времени. Этот итеративный процесс обучения позволяет агентам адаптироваться к изменяющимся условиям и предпочтениям пользователей, тем самым повышая общую эффективность системы.
В чем разница между AutoGen, Semantic Kernel и фреймворком Azure AI Agent Service?
Существует множество способов сравнить эти фреймворки, но давайте рассмотрим некоторые ключевые различия с точки зрения их дизайна, функциональности и целевых сценариев использования:
AutoGen
Фреймворк с открытым исходным кодом, разработанный лабораторией Microsoft Research's AI Frontiers Lab. Ориентирован на событийно-управляемые, распределенные агентурный Приложения, поддерживающие множество больших языковых моделей (LLM) и SLM, инструменты и передовые паттерны проектирования Multi-Agent.
Основной концепцией AutoGen являются агенты - автономные сущности, способные воспринимать окружающую среду, принимать решения и выполнять действия для достижения определенных целей. Агенты общаются между собой посредством асинхронного обмена сообщениями, что позволяет им работать независимо и параллельно, повышая масштабируемость и скорость реакции системы.
Агенты основаны на моделях актеров. Согласно Википедии, актер - это Основные строительные блоки параллельных вычислений. В ответ на входящее сообщение агент может: принимать локальные решения, создавать других агентов, отправлять новые сообщения и определять, как ответить на следующее входящее сообщение..
пример использованияАвтоматизация генерации кода, задач анализа данных и создание пользовательских интеллектов (агентов) для планирования и исследований.
Вот некоторые из важных основных концепций AutoGen:
- Агенты. Интеллектуальный организм (агент) - это программный объект, который:
- Общение с помощью сообщенийЭти сообщения могут быть синхронными или асинхронными.
- Поддержание своего статусаЭто состояние может быть изменено входящими сообщениями.
- исполняемая операция в ответ на полученное сообщение или изменение состояния. Эти действия могут изменять состояние агента и иметь внешние эффекты, такие как обновление журнала сообщений, отправка новых сообщений, выполнение кода или вызов API.
Ниже приведен небольшой фрагмент кода, в котором вы можете создать агента с функцией чата:
from autogen_agentchat.agents import AssistantAgent from autogen_agentchat.messages import TextMessage from autogen_ext.models.openai import OpenAIChatCompletionClient class MyAssistant(RoutedAgent): def __init__(self, name: str) -> None: super().__init__(name) model_client = OpenAIChatCompletionClient(model="gpt-4o") self._delegate = AssistantAgent(name, model_client=model_client) @message_handler async def handle_my_message_type(self, message: MyMessageType, ctx: MessageContext) -> None: print(f"{self.id.type} received message: {message.content}") response = await self._delegate.on_messages( [TextMessage(content=message.content, source="user")], ctx.cancellation_token ) print(f"{self.id.type} responded: {response.chat_message.content}")
В предыдущем коде
MyAssistant
был создан и унаследован отRoutedAgent
. В нем есть обработчик сообщений, который печатает содержимое сообщения, а затем использует функциюAssistantAgent
Делегируйте отправку ответа. Обратите особое внимание на то, как мы делегируемAssistantAgent
Экземплярself._delegate
(математика) родAssistantAgent
это предварительно созданный интеллект (агент), который может обрабатывать дополнения к чату.
Затем сообщите AutoGen тип агента и запустите программу:# main.py runtime = SingleThreadedAgentRuntime() await MyAgent.register(runtime, "my_agent", lambda: MyAgent()) runtime.start() # Start processing messages in the background. await runtime.send_message(MyMessageType("Hello, World!"), AgentId("my_agent", "default"))
В предыдущем коде агенты регистрируются во времени выполнения, а затем агенту отправляются сообщения, чтобы получить следующий результат:
# Output from the console: my_agent received message: Hello, World! my_assistant received message: Hello, World! my_assistant responded: Hello! How can I assist you today?
- МультиагентыAutoGen поддерживает создание нескольких агентов, которые могут работать вместе для выполнения сложных задач. Агенты могут общаться, обмениваться информацией и координировать свои действия для более эффективного решения проблем. Чтобы создать многоагентную систему, вы определяете различные типы агентов со специализированными функциями и ролями, такими как поиск данных, анализ, принятие решений и взаимодействие с пользователем. Давайте посмотрим, как выглядит такая система, чтобы понять ее суть:
editor_description = "Editor for planning and reviewing the content."
# Example of declaring an Agent
editor_agent_type = await EditorAgent.register(
runtime,
editor_topic_type, # Using topic type as the agent type.
lambda: EditorAgent(
description=editor_description,
group_chat_topic_type=group_chat_topic_type,
model_client=OpenAIChatCompletionClient(
model="gpt-4o-2024-08-06",
# api_key="YOUR_API_KEY",
),
),
)
# remaining declarations shortened for brevity
# Group chat
group_chat_manager_type = await GroupChatManager.register(
runtime,
"group_chat_manager",
lambda: GroupChatManager(
participant_topic_types=[writer_topic_type, illustrator_topic_type, editor_topic_type, user_topic_type],
model_client=OpenAIChatCompletionClient(
model="gpt-4o-2024-08-06",
# api_key="YOUR_API_KEY",
),
participant_descriptions=[
writer_description,
illustrator_description,
editor_description,
user_description
],
),
)
В предыдущем коде у нас есть GroupChatManager
Он регистрируется в среде выполнения. Этот менеджер отвечает за координацию взаимодействия между различными типами Агентов, такими как писатели, иллюстраторы, редакторы и пользователи.
- Время выполнения агентаФреймворк предоставляет среду выполнения, поддерживающую взаимодействие между Агентами и обеспечивающую безопасность и конфиденциальность. Фреймворк предоставляет среду выполнения, которая поддерживает взаимодействие между Агентами, управляет их идентификацией и жизненным циклом, а также обеспечивает безопасность и конфиденциальность. Это означает, что вы можете запускать свои агенты в безопасной и контролируемой среде, обеспечивая их безопасное и эффективное взаимодействие. Интерес представляют две среды выполнения:
- Автономное время выполненияЭто хороший выбор для однопроцессных приложений, где все агенты реализованы на одном языке программирования и выполняются в одном процессе. Это хороший выбор для однопроцессных приложений, где все агенты реализованы на одном языке программирования и выполняются в одном процессе. Вот диаграмма того, как это работает:
Автономное время выполнения
стек приложений
Агенты общаются между собой посредством сообщений через среду выполнения, которая управляет жизненным циклом агентов. - Распределенная среда выполнения агентовЭто применимо к многопроцессным приложениям, где агенты могут быть реализованы на разных языках программирования и выполняться на разных машинах. Вот иллюстрация того, как это работает:
Распределенное время выполнения
- Автономное время выполненияЭто хороший выбор для однопроцессных приложений, где все агенты реализованы на одном языке программирования и выполняются в одном процессе. Это хороший выбор для однопроцессных приложений, где все агенты реализованы на одном языке программирования и выполняются в одном процессе. Вот диаграмма того, как это работает:
Семантическое ядро + агентский фреймворк
Семантическое ядро состоит из двух частей: Semantic Kernel Agent Framework и собственно Семантическое ядро.
Давайте немного поговорим о семантическом ядре. Оно включает в себя следующие основные понятия:
- Соединения: Это интерфейс к внешним сервисам ИИ и источникам данных.
using Microsoft.SemanticKernel;
// Create kernel
var builder = Kernel.CreateBuilder();
// Add a chat completion service:
builder.Services.AddAzureOpenAIChatCompletion(
"your-resource-name",
"your-endpoint",
"your-resource-key",
"deployment-model");
var kernel = builder.Build();
Вот простой пример того, как создать ядро и добавить службу Chat Completion.Semantic Kernel создает соединение с внешней службой искусственного интеллекта, в данном случае Azure OpenAI Chat Completion.
- Плагины: Инкапсулирует функции, которые может использовать приложение. Существуют как готовые плагины, так и плагины, которые вы можете создать сами. Существует концепция, называемая семантическими функциями. Семантичность заключается в том, что вы предоставляете ей семантическую информацию, которая помогает семантическому ядру определить, что ему нужно вызвать функцию. Вот пример:
var userInput = Console.ReadLine();
// Define semantic function inline.
string skPrompt = @"Summarize the provided unstructured text in a sentence that is easy to understand.
Text to summarize: {{$userInput}}";
// Register the function
kernel.CreateSemanticFunction(
promptTemplate: skPrompt,
functionName: "SummarizeText",
pluginName: "SemanticFunctions"
);
Начните с подсказки-шаблона. skPrompt
Он оставляет пользователю возможность вводить текст $userInput
пространство плагина. Затем вы используете плагин SemanticFunctions
зарегистрированная функция SummarizeText
. Обратите внимание на имя функции, которое помогает Семантическому ядру понять, что делает функция и когда ее следует вызывать.
- Родная функция: Существуют также собственные функции, которые фреймворк может вызывать напрямую для выполнения задач. Ниже приведен пример такой функции, извлекающей содержимое из файла:
public class NativeFunctions {
[SKFunction, Description("Retrieve content from local file")]
public async Task<string> RetrieveLocalFile(string fileName, int maxSize = 5000)
{
string content = await File.ReadAllTextAsync(fileName);
if (content.Length <= maxSize) return content;
return content.Substring(0, maxSize);
}
}
//Import native function
string plugInName = "NativeFunction";
string functionName = "RetrieveLocalFile";
var nativeFunctions = new NativeFunctions();
kernel.ImportFunctions(nativeFunctions, plugInName);
- Планировщик: Планировщик организует планы выполнения и политики на основе пользовательского ввода. Идея заключается в том, чтобы выразить, как должно быть выполнено задание, а затем сделать его инструкцией для Семантического ядра, которой оно должно следовать. Затем оно вызывает необходимые функции для выполнения задач. Ниже приведен пример такого плана:
string planDefinition = "Read content from a local file and summarize the content.";
SequentialPlanner sequentialPlanner = new SequentialPlanner(kernel);
string assetsFolder = @"../../assets";
string fileName = Path.Combine(assetsFolder,"docs","06_SemanticKernel", "aci_documentation.txt");
ContextVariables contextVariables = new ContextVariables();
contextVariables.Add("fileName", fileName);
var customPlan = await sequentialPlanner.CreatePlanAsync(planDefinition);
// Execute the plan
KernelResult kernelResult = await kernel.RunAsync(contextVariables, customPlan);
Console.WriteLine($"Summarization: {kernelResult.GetValue<string>()}");
особое внимание planDefinition
это простая инструкция, которой следует планировщик. Затем в соответствии с этим планом вызывается соответствующая функция, в данном случае наша семантическая функция SummarizeText
и собственные функции RetrieveLocalFile
.
- Память: Абстракция и упрощение управления контекстом для приложений ИИ. Идея памяти заключается в том, что это то, что должна знать Большая языковая модель (LLM). Эту информацию можно хранить в векторном хранилище, которое в конечном итоге становится базой данных in-memory или векторной базой данных, или чем-то подобным. Вот очень упрощенный пример сценария, в котором Факты добавляется в память:
var facts = new Dictionary<string,string>();
facts.Add(
"Azure Machine Learning; https://learn.microsoft.com/azure/machine-learning/",
@"Azure Machine Learning is a cloud service for accelerating and
managing the machine learning project lifecycle. Machine learning professionals,
data scientists, and engineers can use it in their day-to-day workflows"
);
facts.Add(
"Azure SQL Service; https://learn.microsoft.com/azure/azure-sql/",
@"Azure SQL is a family of managed, secure, and intelligent products
that use the SQL Server database engine in the Azure cloud."
);
string memoryCollectionName = "SummarizedAzureDocs";
foreach (var fact in facts) {
await memoryBuilder.SaveReferenceAsync(
collection: memoryCollectionName,
description: fact.Key.Split(";")[1].Trim(),
text: fact.Value,
externalId: fact.Key.Split(";")[2].Trim(),
externalSourceName: "Azure Documentation"
);
}
Затем эти факты сохраняются в коллекции памяти. SummarizedAzureDocs
в памяти. Это очень упрощенный пример, но вы можете увидеть, как информация может храниться в памяти для использования в Большой модели языка (LLM).
Это основы фреймворка Semantic Kernel, а что насчет Agent Framework?
Служба агентов искусственного интеллекта Azure
Служба Azure AI Agent Service - это более новый участник, представленный на Microsoft Ignite 2024. Она позволяет разрабатывать и развертывать агенты ИИ с более гибкими моделями, например, напрямую вызывать открытые большие языковые модели (LLM), такие как Llama 3, Mistral и Cohere.
Служба Azure AI Agent Service обеспечивает более надежные механизмы безопасности и методы хранения данных, что делает ее подходящей для корпоративных приложений.
Он работает "из коробки" с мультиагентными оркестровочными фреймворками, такими как AutoGen и Semantic Kernel.
В настоящее время этот сервис находится в стадии публичного предварительного просмотра и поддерживает Python и C# для создания Агентов.
Основные понятия
Служба Azure AI Agent Service включает в себя следующие основные концепции:
- АгентСлужба Azure AI Agent Service интегрируется с Azure AI Foundry. В AI Foundry интеллекты ИИ (агенты) выступают в роли "умных" микросервисов, которые можно использовать для ответов на вопросы (RAG), выполнять операции или полностью автоматизировать рабочие процессы. Для этого необходимо объединить возможности генеративных моделей ИИ с инструментами, позволяющими им получать доступ к реальным источникам данных и взаимодействовать с ними. Ниже приведен пример агента:
agent = project_client.agents.create_agent(
model="gpt-4o-mini",
name="my-agent",
instructions="You are helpful agent",
tools=code_interpreter.definitions,
tool_resources=code_interpreter.resources,
)
В этом примере модель создается с помощью команды model gpt-4o-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",
)
# 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
Затем агента просят выполнить работу в потоке. Наконец, сообщения перехватываются и регистрируются, чтобы увидеть реакцию агента. Сообщения показывают ход диалога между пользователем и агентом. Также важно понимать, что сообщения могут быть разных типов, например текст, изображения или файлы, когда работа Агентов приводит, например, к ответу в виде изображения или текста. Как разработчик, вы можете использовать эту информацию для дальнейшей обработки ответа или представления его пользователю.
- Интеграция с другими фреймворками искусственного интеллектаСлужба Azure AI Agent Service может взаимодействовать с другими фреймворками, такими как AutoGen и Semantic Kernel, что означает, что вы можете построить часть своего приложения в одном из фреймворков, например, используя службу Agent Service в качестве орхистратора, или же вы можете построить все в службе Agent Service.
пример использованияAzure AI Agent Service: Azure AI Agent Service предназначена для корпоративных приложений, которым требуется безопасное, масштабируемое и гибкое развертывание интеллектуальных систем искусственного интеллекта (агентов).
В чем разница между этими фреймворками?
Кажется, что эти фреймворки во многом пересекаются, но есть несколько ключевых различий в их дизайне, функциональности и целевых сценариях использования:
- AutoGen: фокусируется на событийно-управляемых распределенных агентных приложениях с поддержкой множества больших языковых моделей (LLM) и SLM, инструментов и передовых паттернов проектирования Multi-Agent.
- Семантическое ядро: Ориентирован на понимание и генерирование человекоподобного текстового контента путем улавливания глубокого семантического смысла. Он предназначен для автоматизации сложных рабочих процессов и инициирования задач на основе целей проекта.
- Служба агентов искусственного интеллекта Azure: Обеспечивает более гибкие модели, например, прямые вызовы открытых моделей больших языков (LLM), таких как Llama 3, Mistral и Cohere. Обеспечивает более надежные механизмы безопасности и методы хранения данных, что делает его подходящим для корпоративных приложений.
Все еще не уверены, какой из них выбрать?
пример использования
Давайте рассмотрим несколько распространенных вариантов использования, чтобы понять, сможем ли мы вам помочь:
Вопрос: Моя команда разрабатывает проект, включающий автоматическую генерацию кода и задачи анализа данных. Какой фреймворк нам следует использовать?
О: AutoGen - хороший выбор в данном случае, поскольку он ориентирован на событийно-управляемые распределенные агентные приложения и поддерживает передовые паттерны проектирования Multi-Agent.
Вопрос: Чем AutoGen лучше Semantic Kernel и Azure AI Agent Service для данного случая использования?
О: AutoGen разработан для событийно-управляемых распределенных агентных приложений, что делает его идеально подходящим для автоматизации задач генерации кода и анализа данных. Он предоставляет инструменты и возможности, необходимые для эффективного построения сложных мультиагентных систем.
В: Похоже, что служба Azure AI Agent Service тоже работает здесь, и у нее есть инструменты для генерации кода и тому подобное?
О: Да, служба Azure AI Agent Service также поддерживает задачи генерации кода и анализа данных, но она может лучше подойти для корпоративных приложений, требующих безопасного, масштабируемого и гибкого развертывания агентов ИИ. autoGen больше ориентирован на событийные, распределенные агентные приложения и передовые паттерны проектирования Multi-Agent. AutoGen в большей степени ориентирован на управляемые событиями распределенные агентные приложения и передовые паттерны проектирования Multi-Agent.
В: То есть вы хотите сказать, что если я хочу работать в корпоративном секторе, мне следует выбрать Azure AI Agent Service?
О: Да, служба Azure AI Agent Service предназначена для корпоративных приложений, которым требуется безопасное, масштабируемое и гибкое развертывание интеллектуальных систем искусственного интеллекта (агентов). Она обеспечивает более надежные механизмы безопасности и методы хранения данных, что делает ее подходящей для корпоративных приложений.
Давайте сведем основные различия в таблицу:
рисунок | пересчет (например, результатов выборов) | Основные понятия | пример использования |
---|---|---|---|
AutoGen | Распределенные агентские приложения, управляемые событиями | Агенты, персоны, функции, данные | Создание кода, задачи анализа данных |
Семантическое ядро | Понимание и генерирование текстового контента гуманоидов | Агенты, модульные компоненты, совместная работа | Понимание естественного языка, создание контента |
Служба агентов искусственного интеллекта Azure | Гибкое моделирование, безопасность предприятия, генерация кода, вызов инструментов | Модульность, совместная работа, оркестровка процессов | Безопасное, масштабируемое и гибкое развертывание ИИ-интеллектуалов (агентов) |
Каков идеальный вариант использования каждого из этих фреймворков?
- AutoGen: Событийно-управляемые, распределенные агентные приложения, продвинутый паттерн проектирования Multi-Agent. Идеально подходит для автоматизированной генерации кода, задач анализа данных.
- Семантическое ядро: Понимайте и генерируйте человекоподобный текстовый контент, автоматизируйте сложные рабочие процессы и инициируйте задачи в зависимости от целей проекта. Идеально подходит для понимания естественного языка и создания контента.
- Служба агентов искусственного интеллекта Azure: гибкие модели, корпоративные механизмы безопасности и методы хранения данных. Идеально подходит для безопасного, масштабируемого и гибкого развертывания AI Intelligence (Agent) в корпоративных приложениях.
Можно ли интегрировать их непосредственно с существующими инструментами экосистемы Azure или необходимо отдельное решение?
Ответ - да, вы можете интегрировать существующие инструменты экосистемы Azure непосредственно с Azure AI Agent Service, тем более что она разработана для бесшовной работы с другими службами Azure. Например, вы можете интегрировать Bing, Azure AI Search и Azure Functions. Также существует глубокая интеграция с Azure AI Foundry.
Для AutoGen и Semantic Kernel также можно интегрироваться со службами Azure, но для этого может потребоваться вызов служб Azure из кода. Другой способ интеграции - использование Azure SDK для взаимодействия со службами Azure из ваших агентов. Кроме того, как упоминалось ранее, вы можете использовать службу Azure AI Agent Service в качестве оркестратора для агентов, созданных в AutoGen или Semantic Kernel, что обеспечит вам легкий доступ к экосистеме Azure.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...