Microsoft Intro to AI Agent: Exploración del marco del agente de IA
Información sobre el cursoPublicado hace 6 meses Círculo de intercambio de inteligencia artificial 9.3K 00
Los marcos de agentes de IA son plataformas de software diseñadas para simplificar la creación, despliegue y gestión de agentes de IA. Estos marcos proporcionan a los desarrolladores componentes, abstracciones y herramientas preconstruidos para simplificar el desarrollo de sistemas de IA complejos.
Estos marcos ayudan a los desarrolladores a centrarse en los aspectos exclusivos de sus aplicaciones proporcionando un enfoque estandarizado para los retos comunes en el desarrollo de agentes de IA. Mejoran la escalabilidad, accesibilidad y eficiencia de la creación de sistemas de IA.
breve
Este curso abarcará:
- ¿Qué son los marcos de agentes de IA y qué permiten hacer a los desarrolladores?
- ¿Cómo pueden los equipos utilizar estos marcos para crear rápidamente prototipos, iterar y mejorar las capacidades del Agente?
- ¿Cuál es la diferencia entre los marcos y herramientas creados por Microsoft AutoGen, Semantic Kernel y Azure AI Agent?
- ¿Es posible integrarlo directamente con las herramientas existentes del ecosistema Azure o necesito una solución independiente?
- ¿Qué es el servicio Azure AI Agents y cómo puede ayudar?
objetivo de aprendizaje
El objetivo de este curso es ayudarle a comprender:
- El papel de los marcos de agentes de IA en el desarrollo de la IA.
- Cómo construir agentes inteligentes con el AI Agent Framework.
- Características clave implementadas por el marco del Agente AI.
- Diferencias entre AutoGen, Semantic Kernel y Azure AI Agent Service.
¿Qué son los marcos de agentes de IA y qué permiten hacer a los desarrolladores?
Los marcos tradicionales de IA pueden ayudarle a integrar la IA en sus aplicaciones y mejorarlas:
- personalizadoLa IA puede analizar el comportamiento y las preferencias de los usuarios para ofrecerles recomendaciones, contenidos y experiencias personalizados. Por ejemplo, servicios de streaming como Netflix utilizan la IA para recomendar películas y programas basándose en el historial de visionado para aumentar el compromiso y la satisfacción del usuario.
- Automatización y eficaciaLa IA puede automatizar tareas repetitivas, agilizar los flujos de trabajo y mejorar la eficiencia operativa. Por ejemplo, las aplicaciones de atención al cliente utilizan chatbots basados en IA para gestionar consultas comunes, lo que reduce los tiempos de respuesta y permite a los agentes humanos gestionar cuestiones más complejas.
- Experiencia de usuario mejoradaLa IA puede mejorar la experiencia general del usuario proporcionando funciones inteligentes como el reconocimiento de voz, el procesamiento del lenguaje natural y el texto predictivo. Por ejemplo, asistentes virtuales como Siri y Google Assistant utilizan IA para comprender y responder a comandos de voz, facilitando a los usuarios la interacción con sus dispositivos.
Todo esto suena muy bien, ¿verdad? Entonces, ¿por qué necesitamos un marco para agentes de IA?
Los marcos de agentes de IA son algo más que marcos de IA. Están diseñados para crear agentes inteligentes que puedan interactuar con los usuarios, otros agentes y el entorno para alcanzar objetivos específicos, y que puedan mostrar un comportamiento autónomo, tomar decisiones y adaptarse a condiciones cambiantes. Echemos un vistazo a algunas de las características clave implementadas por los marcos de agentes de IA:
- Agente Colaboración y coordinaciónPermite la creación de múltiples agentes de IA que pueden trabajar juntos, comunicarse y coordinarse para resolver tareas complejas.
- Automatización y gestión de tareasFunciones: Proporciona mecanismos para automatizar flujos de trabajo de varios pasos, delegación de tareas y gestión dinámica de tareas entre Agentes.
- Comprensión del contexto y adaptaciónPermite al agente comprender el contexto, adaptarse a entornos cambiantes y tomar decisiones basadas en información en tiempo real.
En resumen, los Agentes le permiten hacer más, llevar la automatización al siguiente nivel y crear sistemas más inteligentes que pueden adaptarse y aprender de su entorno.
¿Cómo puedo crear rápidamente prototipos, iterar y mejorar las capacidades del Agente?
Se trata de un campo en rápida evolución, pero la mayoría de los marcos de trabajo para agentes de IA tienen algunas cosas en común que pueden ayudarle a crear prototipos e iterar con rapidez: componentes modulares, herramientas de colaboración y aprendizaje en tiempo real. Analicémoslos:
- Uso de componentes modularesEl marco de la IA proporciona componentes predefinidos como sugerencias, analizadores sintácticos y gestión de memoria.
- Uso de herramientas de colaboraciónAgentes de diseño con funciones y tareas específicas para que puedan probar y mejorar los flujos de trabajo colaborativos.
- Aprendizaje en tiempo realSe consigue un bucle de retroalimentación en el que el Agente aprende de la interacción y adapta dinámicamente su comportamiento.
Uso de componentes modulares
Frameworks como LangChain y Microsoft Semantic Kernel proporcionan componentes preconstruidos como sugerencias, analizadores sintácticos y gestión de memoria.
¿Cómo utilizan los equipos estosLos equipos pueden ensamblar rápidamente estos componentes para crear un prototipo funcional sin tener que empezar desde cero, lo que permite una rápida experimentación e iteración.
Cómo funciona en la prácticaLos módulos de memoria permiten almacenar y recuperar datos, mientras que los generadores de mensajes permiten interactuar con los usuarios sin tener que crearlos desde cero.
código de ejemplo (informática). Veamos un ejemplo de cómo extraer información de la entrada del usuario utilizando un analizador pre-construido:
// 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),此时它最终会向用户询问缺失的信息
En este ejemplo se puede ver cómo se puede utilizar un analizador sintáctico predefinido para extraer información clave de los datos introducidos por el usuario, como el origen, el destino y la fecha de una solicitud de reserva de vuelo. Este enfoque modular permite centrarse en la lógica de alto nivel.
Uso de herramientas de colaboración
CrewAI y Microsoft AutoGen Marcos como éste facilitan la creación de múltiples Agentes que pueden trabajar juntos.
¿Cómo utilizan los equipos estosLos equipos pueden diseñar Agentes con funciones y tareas específicas, lo que les permite probar y mejorar los flujos de trabajo colaborativos y aumentar la eficacia general del sistema.
Cómo funciona en la prácticaAgentes: puede crear un equipo de Agentes, cada uno de los cuales tiene una función especializada, como la recuperación de datos, el análisis o la toma de decisiones. Estos Agentes pueden comunicarse y compartir información para alcanzar objetivos comunes, como responder a las consultas de los usuarios o completar tareas.
Código de ejemplo (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)
Lo que ha visto en el código anterior es cómo crear una tarea que implica a varios Agentes trabajando juntos para analizar datos. Cada Agente realiza una función específica y coordina a los Agentes para que realicen la tarea y consigan los resultados deseados. Al crear Agentes dedicados con funciones especializadas, puede mejorar la eficacia y el rendimiento de la tarea.
Aprendizaje en tiempo real
El Marco Avanzado proporciona comprensión y adaptación contextual en tiempo real.
Cómo utilizan los equipos estos marcosLos equipos pueden implantar circuitos de retroalimentación que permitan a los Agentes aprender de las interacciones y ajustar dinámicamente sus comportamientos, lo que conduce a una mejora y un perfeccionamiento continuos de las capacidades.
aplicación prácticaLos Agentes pueden analizar los comentarios de los usuarios, los datos del entorno y los resultados de las tareas para actualizar su base de conocimientos, adaptar los algoritmos de toma de decisiones y mejorar su rendimiento a lo largo del tiempo. Este proceso de aprendizaje iterativo permite a los Agentes adaptarse a las condiciones cambiantes y a las preferencias de los usuarios, mejorando así la eficiencia global del sistema.
¿Cuál es la diferencia entre AutoGen, Semantic Kernel y el marco Azure AI Agent Service?
Hay muchas maneras de comparar estos marcos, pero veamos algunas diferencias clave en cuanto a su diseño, funcionalidad y casos de uso objetivo:
AutoGen
Marco de código abierto desarrollado por el laboratorio AI Frontiers de Microsoft Research. Se centra en sistemas distribuidos agentic Aplicaciones compatibles con múltiples modelos de grandes lenguajes (LLM) y SLM, herramientas y patrones avanzados de diseño multiagente.
El concepto central de AutoGen son los agentes, entidades autónomas que pueden percibir su entorno, tomar decisiones y emprender acciones para alcanzar objetivos específicos. Los agentes se comunican mediante mensajería asíncrona, lo que les permite trabajar de forma independiente y en paralelo, aumentando así la escalabilidad y capacidad de respuesta del sistema.
Los agentes se basan en modelos de actores. Según Wikipedia, actor es Los componentes básicos de la computación concurrente. En respuesta a un mensaje entrante, un actor puede: tomar decisiones locales, crear más actores, enviar más mensajes y determinar cómo responder al siguiente mensaje entrante..
caso práctico: Automatice la generación de código, las tareas de análisis de datos y cree inteligencias personalizadas (Agentes) para las funciones de planificación e investigación.
Estos son algunos de los conceptos básicos de AutoGen:
- Agentes. Un organismo inteligente (Agente) es una entidad de software que:
- Comunicación mediante mensajesEstos mensajes pueden ser síncronos o asíncronos.
- Mantener el propio estatusEste estado puede ser modificado por los mensajes entrantes.
- operación ejecutable en respuesta a un mensaje recibido o a un cambio en su estado. Estas acciones pueden modificar el estado del Agente y tener efectos externos, como actualizar el registro de mensajes, enviar nuevos mensajes, ejecutar código o realizar llamadas a la API.
A continuación se muestra un breve fragmento de código en el que puede crear un Agente con funcionalidad de chat:
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}")
En el código anterior, el
MyAssistant
se ha creado y heredado deRoutedAgent
. Tiene un manejador de mensajes que imprime el contenido del mensaje y luego utiliza la funciónAssistantAgent
Delegar el envío de la respuesta. Presta especial atención a cómo estamos delegando elAssistantAgent
La instancia delself._delegate
(matemáticas) géneroAssistantAgent
es una inteligencia pre-construida (Agente) que puede manejar la complementación del chat.
A continuación, comunique a AutoGen el tipo de Agente e inicie el programa:# 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"))
En el código anterior, los Agentes se registran con el runtime, y luego se envían mensajes al Agente, que produce la siguiente salida:
# 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?
- MultiagentesAutoGen permite la creación de múltiples Agentes que pueden trabajar juntos para realizar tareas complejas. Los Agentes pueden comunicarse, compartir información y coordinar sus acciones para resolver problemas con mayor eficacia. Para crear un sistema Multi-Agente, se definen diferentes tipos de Agentes con funciones y roles especializados, como la recuperación de datos, el análisis, la toma de decisiones y la interacción con el usuario. Veamos qué aspecto tiene una creación de este tipo para poder entenderla:
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
],
),
)
En el código anterior, tenemos un GroupChatManager
Se registra en el tiempo de ejecución. Este gestor se encarga de coordinar las interacciones entre los distintos tipos de Agentes, como escritores, ilustradores, editores y usuarios.
- Tiempo de ejecución del agenteEl marco proporciona un entorno de ejecución que soporta la comunicación entre Agentes y refuerza los límites de seguridad y privacidad. El marco proporciona un entorno de ejecución que admite la comunicación entre Agentes, gestiona su identidad y ciclo de vida, y aplica límites de seguridad y privacidad. Esto significa que puede ejecutar sus Agentes en un entorno seguro y controlado, garantizando que puedan interactuar de forma segura y eficiente. Hay dos tiempos de ejecución de interés:
- Tiempo de ejecución autónomoEsta es una buena opción para aplicaciones de un solo proceso en las que todos los Agentes se implementan en el mismo lenguaje de programación y se ejecutan en el mismo proceso. Esta es una buena opción para aplicaciones de un solo proceso en las que todos los Agentes están implementados en el mismo lenguaje de programación y se ejecutan en el mismo proceso. A continuación se muestra un diagrama de su funcionamiento:
Tiempo de ejecución autónomo
pila de aplicaciones
Los Agentes se comunican mediante mensajes a través del tiempo de ejecución, que gestiona el ciclo de vida de los Agentes. - Tiempo de ejecución del agente distribuidoEsto es aplicable a aplicaciones multiproceso en las que los Agentes pueden implementarse en diferentes lenguajes de programación y ejecutarse en diferentes máquinas. He aquí una ilustración de cómo funciona:
Tiempo de ejecución distribuido
- Tiempo de ejecución autónomoEsta es una buena opción para aplicaciones de un solo proceso en las que todos los Agentes se implementan en el mismo lenguaje de programación y se ejecutan en el mismo proceso. Esta es una buena opción para aplicaciones de un solo proceso en las que todos los Agentes están implementados en el mismo lenguaje de programación y se ejecutan en el mismo proceso. A continuación se muestra un diagrama de su funcionamiento:
Núcleo semántico + marco de agentes
El Semantic Kernel consta de dos partes: el Semantic Kernel Agent Framework y el Semantic Kernel propiamente dicho.
Hablemos un momento del Núcleo Semántico. Tiene los siguientes conceptos básicos:
- Conexiones: Es la interfaz con los servicios externos de IA y las fuentes de datos.
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();
He aquí un ejemplo sencillo de cómo crear un kernel y añadir un servicio Chat Completion.Semantic Kernel crea una conexión con un servicio de IA externo, en este caso Azure OpenAI Chat Completion.
- PluginsEncapsula funciones que puede utilizar una aplicación. Existen tanto plug-ins ya hechos como plug-ins que puedes crear tú mismo. Existe un concepto llamado funciones semánticas. La razón por la que es semántico es que le proporcionas información semántica para ayudar al Kernel Semántico a determinar que necesita llamar a la función. He aquí un ejemplo:
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"
);
Aquí se empieza con un consejo de plantilla skPrompt
Deja que el usuario introduzca el texto $userInput
del plugin. A continuación, utilice el plugin SemanticFunctions
función registrada SummarizeText
. Observe el nombre de la función, que ayuda al Núcleo Semántico a entender qué hace la función y cuándo debe ser llamada.
- Función nativaTambién existen funciones nativas que el framework puede llamar directamente para realizar tareas. A continuación se muestra un ejemplo de dichas funciones que recuperan el contenido de un archivo:
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);
- PlanificadorPlanificador: El planificador orquesta planes de ejecución y políticas basadas en la entrada del usuario. La idea es expresar cómo debe realizarse la ejecución y, a continuación, convertirla en una instrucción para que el núcleo semántico la siga. A continuación, llama a las funciones necesarias para ejecutar las tareas. A continuación se muestra un ejemplo de un plan de este tipo:
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>()}");
atención especial planDefinition
que es la instrucción simple seguida por el planificador. A continuación se llama a la función adecuada según este plan, en este caso nuestra función semántica SummarizeText
y funciones nativas RetrieveLocalFile
.
- Memoria: Abstraer y simplificar la gestión del contexto para aplicaciones de IA. La idea de la memoria es que esto es algo que el Gran Modelo de Lenguaje (LLM) debe saber. Puede almacenar esta información en un almacén vectorial, que con el tiempo se convierte en una base de datos en memoria o una base de datos vectorial o algo similar. He aquí un ejemplo muy simplificado de un escenario donde el Hechos se añade a la memoria:
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"
);
}
A continuación, estos hechos se almacenan en la colección de memoria SummarizedAzureDocs
en la memoria. Este es un ejemplo muy simplificado, pero se puede ver cómo la información puede ser almacenada en la memoria para su uso en el Gran Modelo de Lenguaje (LLM).
Esto es lo básico del marco del núcleo semántico, ¿qué hay del marco del agente?
Servicio de agente Azure AI
Azure AI Agent Service es un miembro más reciente, presentado en Microsoft Ignite 2024. Permite el desarrollo y despliegue de agentes de IA con modelos más flexibles, como la invocación directa de Large Language Models (LLM) de código abierto, como Llama 3, Mistral y Cohere.
Azure AI Agent Service proporciona mecanismos de seguridad empresarial y métodos de almacenamiento de datos más sólidos que lo hacen adecuado para aplicaciones empresariales.
Funciona de forma inmediata con marcos de orquestación multiagente como AutoGen y Semantic Kernel.
Este servicio se encuentra actualmente en fase de vista previa pública y es compatible con Python y C# para la creación de Agentes.
Conceptos básicos
El Servicio de Agente Azure AI tiene los siguientes conceptos básicos:
- AgenteAzure AI Agent Service se integra con Azure AI Foundry. En AI Foundry, las inteligencias de IA (agentes) actúan como microservicios "inteligentes" que pueden utilizarse para responder a preguntas (RAG), realizar operaciones o automatizar completamente los flujos de trabajo. Para ello, combina las capacidades de los modelos generativos de IA con herramientas que les permiten acceder a fuentes de datos del mundo real e interactuar con ellas. A continuación se muestra un ejemplo de Agente:
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,
)
En este ejemplo, se crea un modelo con el modelo gpt-4o-mini
Nombre my-agent
y directivas You are helpful agent
El agente está equipado con herramientas y recursos para realizar tareas de interpretación de códigos. El agente está equipado con herramientas y recursos para realizar tareas de interpretación de códigos.
- Hilo y mensajes. El hilo es otro concepto importante. Representa un diálogo o interacción entre un agente y un usuario. Los hilos pueden utilizarse para seguir el progreso de un diálogo, almacenar información contextual y gestionar el estado de una interacción. He aquí un ejemplo de hilo:
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}")
En el código anterior, se creó un hilo. A continuación, se envía un mensaje a la hebra. El mensaje se envía al hilo llamando a la función create_and_process_run
Se pide al Agente que realice un trabajo en el hilo. Finalmente, los mensajes son capturados y registrados para ver la respuesta del Agente. Los mensajes indican el progreso del diálogo entre el usuario y el Agente. También es importante entender que los mensajes pueden ser de diferentes tipos, como texto, imágenes o archivos, donde el trabajo de los Agentes resulta, por ejemplo, en una respuesta de imagen o texto. Como desarrollador, puede utilizar esta información para procesar posteriormente la respuesta o presentarla al usuario.
- Integración con otros marcos de IAEl Servicio de Agente Azure AI puede interactuar con otros frameworks, como AutoGen y Semantic Kernel, lo que significa que puede construir parte de su aplicación en uno de los frameworks, como utilizar el Servicio de Agente como orquestador, o puede construirlo todo en el Servicio de Agente.
caso prácticoAzure AI Agent Service: Azure AI Agent Service está diseñado para aplicaciones empresariales que requieren un despliegue seguro, escalable y flexible de inteligencias de IA (agentes).
¿Cuál es la diferencia entre estos marcos?
Parece que hay mucho solapamiento entre estos marcos, pero hay algunas diferencias clave en su diseño, funcionalidad y casos de uso objetivo:
- AutoGenSe centra en aplicaciones distribuidas basadas en eventos con soporte para múltiples Modelos de Lenguaje Extenso (LLMs) y SLMs, herramientas y patrones avanzados de diseño Multi-Agente.
- Núcleo semánticoEl objetivo es comprender y generar contenido textual similar al humano mediante la captación de un significado semántico más profundo. Está diseñado para automatizar flujos de trabajo complejos e iniciar tareas en función de los objetivos del proyecto.
- Servicio de agente Azure AIProporciona modelos más flexibles, como llamadas directas a Large Language Models (LLM) de código abierto, como Llama 3, Mistral y Cohere. Proporciona mecanismos de seguridad empresarial y métodos de almacenamiento de datos más robustos, lo que lo hace adecuado para aplicaciones empresariales.
¿Aún no sabe cuál elegir?
caso práctico
Repasemos algunos casos de uso comunes para ver si podemos ayudarle:
P: Mi equipo está desarrollando un proyecto que implica tareas automatizadas de generación de código y análisis de datos. Qué framework deberíamos utilizar?
R: AutoGen es una buena opción en este caso, ya que se centra en aplicaciones distribuidas basadas en eventos y soporta patrones de diseño Multi-Agente avanzados.
P: ¿Qué hace que AutoGen sea mejor que Semantic Kernel y Azure AI Agent Service para este caso de uso?
R: AutoGen está diseñado para aplicaciones distribuidas basadas en eventos, por lo que es ideal para automatizar la generación de código y las tareas de análisis de datos. Proporciona las herramientas y características necesarias para construir eficientemente sistemas Multi-Agente complejos.
P: ¿Parece que el servicio Azure AI Agent Service también funciona en este caso y dispone de herramientas para la generación de código y similares?
R: Sí, Azure AI Agent Service también admite tareas de generación de código y análisis de datos, pero puede ser más adecuado para aplicaciones empresariales que requieren despliegues de agentes de IA seguros, escalables y flexibles. autoGen se centra más en aplicaciones de agentes distribuidas y dirigidas por eventos y en patrones de diseño Multi-Agent avanzados. AutoGen se centra más en aplicaciones de agentes distribuidos y dirigidos por eventos y en patrones de diseño Multi-Agent avanzados.
P: ¿Está diciendo que si quiero entrar en el sector empresarial, debería optar por Azure AI Agent Service?
R: Sí, Azure AI Agent Service está diseñado para aplicaciones empresariales que requieren implementaciones seguras, escalables y flexibles de AI Intelligentsia (Agent). Proporciona mecanismos de seguridad empresarial y métodos de almacenamiento de datos más sólidos que lo hacen adecuado para casos de uso empresarial.
Resumamos las principales diferencias en un cuadro:
fig. patrón | recuento (por ejemplo, resultados de las elecciones) | Conceptos básicos | caso práctico |
---|---|---|---|
AutoGen | Aplicaciones distribuidas basadas en eventos | Agentes, Personas, Funciones, Datos | Generación de código, tareas de análisis de datos |
Núcleo semántico | Comprender y generar contenidos textuales humanoides | Agentes, componentes modulares, colaboración | Comprensión del lenguaje natural, generación de contenidos |
Servicio de agente Azure AI | Modelización flexible, seguridad empresarial, generación de código, llamada a herramientas | Modularidad, colaboración, organización de procesos | Despliegue seguro, escalable y flexible de inteligencia artificial (agentes) |
¿Cuál es el caso de uso ideal para cada uno de estos marcos?
- AutoGenAplicaciones distribuidas basadas en eventos, patrón de diseño Multi-Agente avanzado. Ideal para la generación automatizada de código y tareas de análisis de datos.
- Núcleo semánticoComprensión y generación de contenido textual similar al humano, automatización de flujos de trabajo complejos e inicio de tareas en función de los objetivos del proyecto. Ideal para la comprensión del lenguaje natural y la generación de contenidos.
- Servicio de agente Azure AIModelos flexibles, mecanismos de seguridad empresarial y métodos de almacenamiento de datos. Ideal para el despliegue seguro, escalable y flexible de inteligencias de IA (agentes) en aplicaciones empresariales.
¿Puedo integrarlo directamente con mis herramientas existentes del ecosistema Azure o necesito una solución independiente?
La respuesta es sí, puede integrar sus herramientas existentes del ecosistema Azure directamente con el servicio Azure AI Agent, especialmente porque está diseñado para funcionar a la perfección con otros servicios Azure. Por ejemplo, puede integrar Bing, Azure AI Search y Azure Functions. también existe una profunda integración con Azure AI Foundry.
Para AutoGen y Semantic Kernel, también puede integrarse con los servicios de Azure, pero esto puede requerir que llame a los servicios de Azure desde el código. Otro método de integración es utilizar el SDK de Azure para interactuar con los servicios de Azure desde tus Agentes. Además, como se ha mencionado anteriormente, puedes utilizar el servicio Azure AI Agent Service como orquestador para los Agentes creados en AutoGen o Semantic Kernel, lo que te permitirá acceder fácilmente al ecosistema Azure.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...