Guía para construir sistemas multiagente basados en CrewAI

1. Introducción

En el campo de la Inteligencia Artificial, el sistema de Agentes Múltiples se está convirtiendo gradualmente en una tecnología clave para resolver problemas complejos y lograr una colaboración eficiente.CrewAI, como una potente herramienta de colaboración de Agentes Múltiples, proporciona a los desarrolladores una forma conveniente de construir sistemas de colaboración inteligentes. En este artículo, presentaremos cómo construir un sistema de colaboración inteligente basado en CrewAI Construir el sistema multiagente.

2. Conceptos básicos de CrewAI en detalle

2.1 Agente

2.1.1 Definición y función de agente

Los agentes son unidades autónomas en CrewAI con capacidad para realizar tareas, tomar decisiones y comunicarse con otros agentes. Actúan como miembros de un equipo, cada uno de los cuales asume una función específica, como investigador, redactor o atención al cliente, y colaboran para contribuir a los objetivos del equipo.

2.1.2 Propiedades del proxy

  • Papel Aclarar la posición funcional del agente dentro del equipo y determinar los tipos de tareas que mejor se adaptan a él. Por ejemplo, un agente en el papel de investigador destaca en la recopilación y el análisis de información, mientras que un agente en el papel de redactor se centra en la creación de contenidos.
  • Objetivo El proceso de toma de decisiones que guía a un agente es un objetivo individual que el agente trata de alcanzar. Por ejemplo, el objetivo de un agente analista de datos puede ser extraer información útil para la toma de decisiones empresariales.
  • Historia de fondo El agente: Mejora la dinámica de interacción y colaboración proporcionando información contextual enriquecida sobre el papel y los objetivos del agente. En el caso de un analista de datos, por ejemplo, la historia de fondo podría ser "Eres analista de datos en una gran empresa. Es responsable de analizar datos y proporcionar información a la empresa. Actualmente estás trabajando en un proyecto para analizar el rendimiento de nuestras campañas de marketing".
  • LLM (optativo) : Indica el modelo de lenguaje para ejecutar el agente. Si no se especifica, el valor predeterminado es ejecutar el agente desde el modelo de idioma OPENAI_MODEL_NAME Obtenga el nombre del modelo en la variable de entorno; de lo contrario, el valor predeterminado es "gpt-4". Los desarrolladores pueden elegir el modelo de lenguaje adecuado para satisfacer los requisitos de procesamiento de las distintas tareas.
  • Herramientas (opcional) Conjunto de capacidades o funciones disponibles para un agente, normalmente instancias de clases personalizadas compatibles con el entorno de ejecución, con una lista vacía de valores por defecto. Estas herramientas pueden ampliar las capacidades de un agente para permitirle realizar operaciones como búsquedas web, análisis de datos, etc.
  • LLM para la función de llamada (opcional) Especifica el modelo de lenguaje que maneja esta llamada a la herramienta del agente, anula la llamada a la función del equipo LLM si se pasa, por defecto es None. Mediante la configuración flexible de esta propiedad, el desarrollador puede controlar con mayor precisión el comportamiento de invocación de herramientas del agente.
  • Número máximo de iteraciones (opcional) : El número máximo de iteraciones que el agente puede realizar antes de verse forzado a dar la mejor respuesta, el valor por defecto es 25. Configurar este parámetro adecuadamente ayuda a controlar la profundidad y eficiencia de la ejecución de la tarea.
  • Número máximo de solicitudes (opcional) : El número máximo de peticiones que el proxy puede ejecutar por minuto, se utiliza para evitar la limitación de velocidad, por defecto es None. El programador puede realizar ajustes en función de la situación real para garantizar un funcionamiento estable del sistema.
  • Tiempo máximo de ejecución (opcional) Tiempo máximo que el agente puede realizar una tarea, el valor por defecto es Noneindica que no hay límite de tiempo máximo de ejecución. Este atributo se puede utilizar para controlar el periodo de ejecución de una tarea y evitar que ocupe recursos durante mucho tiempo.
  • Modo detallado (opcional) : Póngalo en True El registrador interno configurable proporciona registros de ejecución detallados para depuración y supervisión, el valor predeterminado es False. Durante el desarrollo y la optimización, activar el modo detallado ayuda a localizar rápidamente los problemas.
  • Permiso para delegar (opcional) Los agentes pueden delegar tareas o asuntos entre sí, garantizando que las tareas sean gestionadas por el agente más apropiado, con un valor por defecto de True. Esta función fomenta la colaboración flexible dentro del equipo y mejora la precisión y eficacia del procesamiento de tareas.
  • Devolución de llamada de paso (opcional) Funciones llamadas después de cada paso del agente, que pueden ser usadas para registrar operaciones o realizar otras operaciones, anularán las funciones del equipo. step_callback. Los desarrolladores pueden implementar una lógica de supervisión y procesamiento personalizada utilizando esta función de devolución de llamada.
  • Caché (opcional) : Indica si el proxy utiliza la caché de uso de herramientas, con un valor por defecto de True. El mecanismo de almacenamiento en caché ayuda a aumentar la eficiencia de la ejecución de tareas y a reducir los cálculos duplicados.

2.1.3 Creación de agentes

Los agentes pueden interactuar entre sí utilizando los mecanismos de delegación y comunicación integrados en CrewAI. Esto permite una gestión dinámica de las tareas y la resolución de problemas dentro de los equipos.

Para crear un proxy, es habitual inicializarlo con las propiedades necesarias Agent instancia de la clase. A continuación se muestra un ejemplo de un concepto con todos los atributos:

from crewai import Agent
agent = Agent(
role="数据分析师",
goal="提取可操作的见解",
backstory="""您是一家大公司的数据分析师。
您负责分析数据并为业务提供见解。
您目前正在进行一个项目,分析我们营销活动的表现。""",
tools=[my_tool1, my_tool2],  # 可选,默认为空列表
llm=my_llm,  # 可选
function_calling_llm=my_llm,  # 可选
max_iter=15,  # 可选
max_rpm=None,  # 可选
verbose=True,  # 可选
allow_delegation=True,  # 可选
step_callback=my_intermediate_step_callback,  # 可选
cache=True  # 可选
)

2.2 Tareas

2.2.1 Definición de tareas y colaboración

En el marco de CrewAI, una tarea es un trabajo específico que un agente debe completar y que contiene varios detalles necesarios para su ejecución, como una descripción clara, el agente responsable de la ejecución y las herramientas necesarias. Las tareas pueden ser colaborativas, lo que permite que varios agentes trabajen juntos mediante la gestión de atributos y la orquestación de procesos para mejorar la eficiencia del trabajo en equipo.

2.2.2 Atributos de las tareas

  • Descripción Enunciado claro y conciso del contenido de la tarea para que el agente sepa exactamente lo que tiene que hacer. Por ejemplo, "Buscar y resumir las noticias más recientes y relevantes sobre IA".
  • Agente Los agentes responsables de la ejecución de las tareas pueden especificarse directamente o ser asignados por los procesos de la tripulación en función de las funciones, la disponibilidad y otros factores. Esto garantiza que las tareas encuentren el ejecutor adecuado.
  • Resultados previstos Descripción detallada de la tarea una vez finalizada, para que el agente tenga claro el objetivo y el resultado deseado de la tarea. Por ejemplo, "Un resumen en forma de lista con viñetas de las 5 noticias más importantes sobre IA".
  • Herramientas (opcional) Las funciones o capacidades utilizadas por los agentes para realizar tareas pueden mejorar el rendimiento de las tareas y la interacción entre agentes. Al elegir las herramientas adecuadas, los agentes pueden completar las tareas de forma más eficiente.
  • Ejecución asíncrona (opcional) : Las tareas se ejecutarán de forma asíncrona cuando se establezcan, permitiendo que otras tareas sigan avanzando sin esperar a que se completen, para tareas que llevan mucho tiempo o que tienen poco impacto en la ejecución de tareas posteriores.
  • Contexto (opcional) Especificar las tareas cuyos resultados se utilizarán como contexto de esta tarea, aclarar las dependencias entre tareas y permitir la entrega y utilización eficaces de los resultados de las tareas.
  • Configuración (opcional) Detalles de configuración adicionales del agente utilizado para realizar la tarea proporcionan flexibilidad para personalizar aún más la ejecución de la tarea.
  • Salida JSON (opcional) Para generar objetos JSON, se requiere la API OpenAI y sólo se puede establecer un formato de salida. Esta propiedad facilita la interacción de datos y la integración con otros sistemas.
  • Salida Pydantic (opcional) Formato de salida: Para dar salida a los objetos del modelo Pydantic, también se requiere la API OpenAI, y sólo se puede establecer un formato de salida. Los desarrolladores pueden elegir el formato de salida adecuado en función de sus necesidades reales.
  • Archivo de salida (opcional) : Guarda la salida de la tarea en un archivo, si se compara con el 输出 JSON tal vez 输出 Pydantic Utilizados conjuntamente, se puede especificar cómo se guarda la salida. Esto facilita la persistencia de los datos y su posterior análisis.
  • Devolución de llamada (opcional) Función: Función de Python que se ejecuta una vez finalizada una tarea y que puede utilizarse para desencadenar acciones o notificaciones basadas en los resultados de la tarea, como el envío de un correo electrónico.
  • Entrada manual (opcional) : Indica si la tarea requiere retroalimentación manual eventual, útil para tareas que requieren supervisión manual para garantizar la precisión y fiabilidad de los resultados de la tarea.

2.2.3 Utilizar herramientas para crear tareas

Después de comprender las propiedades básicas de una tarea, exploraremos más a fondo cómo crear una tarea utilizando la herramienta. A continuación se muestra un ejemplo:

import os
os.environ["OPENAI_API_KEY"] = "Your Key"
os.environ["SERPER_API_KEY"] = "Your Key"  # serper.dev API key
from crewai import Agent, Task, Crew
from crewai_tools import SerperDevTool
research_agent = Agent(
role="研究员",
goal="查找并总结最新的人工智能新闻",
backstory="""您是一家大公司的研究员。
您负责分析数据并为业务提供见解。""",
verbose=True
)
search_tool = SerperDevTool()
task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task],
verbose=2
)
result = crew.kickoff()
print(result)

2.2.4 Crear tareas

La creación de una tarea implica la definición de su alcance, el agente responsable y cualquier atributo adicional para mayor flexibilidad:

from crewai import Task
task = Task(
description="查找并总结有关人工智能的最新和最相关新闻",
agent=sales_agent
)

Las asignaciones de tareas se pueden asignar directamente especificando un 代理O deja que 分层 del proceso CrewAI viene determinado por el rol, la disponibilidad, etc.

2.2.5 Dependencia de las tareas

En CrewAI, la salida de una tarea se pasa automáticamente a la siguiente, lo que puede ser útil cuando hay una tarea que depende de la salida de otra tarea, pero no se ejecuta inmediatamente después de ella. Esto se hace a través de la tarea 上下文 Finalización de atributos:

research_ai_task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
async_execution=True,
agent=research_agent,
tools=[search_tool]
)
research_ops_task = Task(
description="查找并总结最新的人工智能运营新闻",
expected_output="对前 5 条最重要的人工智能运营新闻进行项目符号列表总结",
async_execution=True,
agent=research_agent,
tools=[search_tool]
)
write_blog_task = Task(
description="撰写一篇关于人工智能重要性及其最新新闻的完整博客文章",
expected_output="4 段长的完整博客文章",
agent=writer_agent,
context=[research_ai_task, research_ops_task]
)

2.2.6 Ejecución asíncrona

Las tareas se ejecutan de forma asíncrona, lo que significa que el Crew no espera a que se completen para pasar a la siguiente tarea. Esto es útil para tareas que tardan mucho tiempo en completarse o que no son críticas para la ejecución de la siguiente tarea. Puede utilizar la función 上下文 se define en una tarea futura, debe esperar a que se complete la salida de la tarea asíncrona.

list_ideas = Task(
description="探索有关人工智能文章的 5 个有趣想法。",
expected_output="一份包含 5 个文章想法的项目符号列表。",
agent=researcher,
async_execution=True  # 将以异步方式执行
)
list_important_history = Task(
description="研究人工智能的历史,并告诉我 5 个最重要的事件。",
expected_output="包含 5 个重要事件的项目符号列表。",
agent=researcher,
async_execution=True  # 将以异步方式执行
)
write_article = Task(
description="撰写一篇关于人工智能、其历史和有趣想法的文章。",
expected_output="一篇关于人工智能的 4 段文章。",
agent=writer,
context=[list_ideas, list_important_history]  # 将等待两个任务的输出完成
)

2.2.7 Mecanismos de devolución de llamada

Ejecuta una función de devolución de llamada al finalizar la tarea, lo que permite activar acciones o notificaciones en función de los resultados de la tarea.

def callback_function(output: TaskOutput):
# 任务完成后执行某些操作
# 例如:向经理发送电子邮件
print(f"""
任务完成!
任务:{output.description}
输出:{output.raw_output}
""")
research_task = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool],
callback=callback_function
)

2.2.8 Acceso a la salida específica de la tarea

Una vez que se ha ejecutado un grupo de Crews, puede ejecutarlos utilizando el objeto de tarea output accede a la salida de una tarea específica:

task1 = Task(
description="查找并总结最新的人工智能新闻",
expected_output="对前 5 条最重要的人工智能新闻进行项目符号列表总结",
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task1, task2, task3],
verbose=2
)
result = crew.kickoff()
print(f"""
任务完成!
任务:{task1.output.description}
输出:{task1.output.raw_output}
""")

2.2.9 Mecanismos de anulación de herramientas

La especificación de herramientas en una tarea permite el ajuste dinámico de las capacidades del agente, lo que pone de relieve la flexibilidad de CrewAI.

2.2.10 Tratamiento de errores y mecanismos de validación

Existen mecanismos de validación para garantizar la solidez y fiabilidad de los atributos de las tareas al crearlas y ejecutarlas. Estas validaciones incluyen, entre otras, las siguientes:

  • Asegúrese de que sólo se establece un tipo de salida por tarea para mantener claras las expectativas de salida.
  • Prevención de la distribución manual id para mantener la integridad del sistema de identificadores únicos.

Estas validaciones ayudan a mantener la coherencia y fiabilidad de la ejecución de tareas en el marco de la CrewAI.

2.3 Herramientas

2.3.1 Función y tipos de herramientas

La herramienta CrewAI dota a los agentes de diversas capacidades, como la búsqueda en la web, el análisis de datos, la generación de contenidos y la delegación de tareas, lo que les permite realizar una serie de operaciones complejas que van desde las búsquedas sencillas hasta las interacciones complejas y el trabajo en equipo eficaz.

2.3.2 Principales características de la herramienta

  • Utilidad : Diseñado para la tarea, cubre los requisitos funcionales de varias áreas, como la búsqueda web, el análisis de datos, la generación de contenidos, etc., para satisfacer las necesidades de los agentes que trabajan en diferentes escenarios.
  • Integración La capacidad de integrarse perfectamente en los flujos de trabajo y colaborar estrechamente con los agentes y las tareas para mejorar las capacidades generales de los agentes y permitir una colaboración eficaz.
  • Personalización Permite a los desarrolladores desarrollar herramientas a medida para satisfacer necesidades específicas o utilizar herramientas existentes para personalizar la configuración en función de las necesidades reales del agente.
  • Tratamiento de errores Gestión de errores: un potente mecanismo de gestión de errores garantiza que la herramienta gestione las excepciones con elegancia cuando se produzcan durante el funcionamiento, lo que garantiza el buen funcionamiento del sistema.
  • Mecanismo de caché : Presenta un almacenamiento en caché inteligente para optimizar el rendimiento y reducir las operaciones redundantes. Los desarrolladores también pueden utilizar el cache_function proporciona un control más preciso sobre el mecanismo de almacenamiento en caché, mejorando aún más la eficiencia.

2.3.3 Utilización de la herramienta CrewAI

Para mejorar las capacidades del agente con la herramienta CrewAI, es necesario instalar primero el kit de herramientas adicional:

pip install 'crewai[tools]'

A continuación se expone un caso práctico:

import os
from crewai import Agent, Task, Crew
# 导入 CrewAI 工具
from crewai_tools import (
DirectoryReadTool,
FileReadTool,
SerperDevTool,
WebsiteSearchTool
)
# 设置 API 密钥
os.environ["SERPER_API_KEY"] = "Your Key"  # serper.dev API 密钥
os.environ["OPENAI_API_KEY"] = "Your Key"
# 实例化工具
docs_tool = DirectoryReadTool(directory='./blog-posts')
file_tool = FileReadTool()
search_tool = SerperDevTool()
web_rag_tool = WebsiteSearchTool()
# 创建代理
researcher = Agent(
role="市场研究分析师",
goal="提供关于人工智能行业最新市场分析",
backstory="一位对市场趋势敏锐的专家分析师。",
tools=[search_tool, web_rag_tool],
verbose=True
)
writer = Agent(
role="内容撰写人员",
goal="撰写有关人工智能行业的引人入胜的博客文章",
backstory="一位对技术充满激情的熟练撰稿人。",
tools=[docs_tool, file_tool],
verbose=True
)
# 定义任务
research = Task(
description="研究人工智能行业的最新趋势并提供摘要。",
expected_output="关于人工智能行业前三个热门发展的摘要,并对其重要性提供独特视角。",
agent=researcher
)
write = Task(
description="根据研究分析师的摘要撰写一篇引人入胜的博客文章。从目录中最新的博客文章中汲取灵感。",
expected_output="一篇以 markdown 格式排版的四段博客文章,内容引人入胜、信息丰富且易懂,避免使用复杂术语。",
agent=writer,
output_file='blog-posts/new_post.md'  # 最终的博客文章将保存在此处
)
# 组建团队
crew = Crew(
agents=[researcher, writer],
tasks=[research, write],
verbose=2
)
# 执行任务
crew.kickoff()

2.3.4 Crear herramientas propias

Primero hay que instalar el kit de herramientas:

pip install 'crewai[tools]'
  • subclasificación BaseTool por herencia BaseTool los desarrolladores pueden crear herramientas personalizadas. Es necesario definir el nombre y la descripción de la herramienta e implementar la clase _run para definir la lógica funcional específica de la herramienta. Ejemplo:
from crewai_tools import BaseTool
class MyCustomTool(BaseTool):
name: str = "我的工具名称"
description: str = "清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"
def _run(self, argument: str) -> str:
# 实现在这里
return "自定义工具的结果"
  • utilice tool decorador : Uso tool Los decoradores permiten crear herramientas personalizadas de forma más limpia. Basta con definir la función, añadir el @tool y basta con indicar el nombre y la descripción de la herramienta. Ejemplo:
from crewai_tools import tool
@tool("我的工具名称")
def my_tool(question: str) -> str:
"""清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"""
# 函数逻辑在这里
return "您的自定义工具的结果"
  • Mecanismos de caché personalizados : La herramienta tiene la opción de realizar cache_function para ajustar el comportamiento de la caché. Determinar cuándo almacenar en caché los resultados en función de condiciones específicas proporciona un control detallado de la lógica de almacenamiento en caché. Ejemplo:
from crewai_tools import tool
@tool
def multiplication_tool(first_number: int, second_number: int) -> str:
"""当您需要将两个数字相乘时有用。"""
return first_number * second_number
def cache_func(args, result):
# 在这种情况下,仅在结果是 2 的倍数时才缓存结果
cache = result % 2 == 0
return cache
multiplication_tool.cache_function = cache_func

2.3.5 Uso de la herramienta LangChain

CrewAI se integra perfectamente con el conjunto de herramientas de LangChain, lo que permite a los desarrolladores aprovechar las herramientas incorporadas que proporciona LangChain, como por ejemplo GoogleSerperAPIWrapper etc., amplían las capacidades del agente integrándolo en el sistema CrewAI mediante una sencilla configuración. Ejemplo:

from crewai import Agent
from langchain.agents import Tool
from langchain.utilities import GoogleSerperAPIWrapper
# 设置 API 密钥
os.environ["SERPER_API_KEY"] = "Your Key"
search = GoogleSerperAPIWrapper()
# 创建并将搜索工具分配给代理
serper_tool = Tool(
name="中级答案",
func=search.run,
description="用于基于搜索的查询的工具"
)
agent = Agent(
role="研究分析师",
goal="提供最新的市场分析",
backstory="一位对市场趋势敏锐的专家分析师。",
tools=[serper_tool]
)

2.4 Proceso

2.4.1 Realización del proceso

  • Secuencial Las tareas se ejecutan secuencialmente en un orden predefinido, y el resultado de una tarea sirve de contexto para la siguiente, lo que garantiza una ejecución ordenada y coherente de las tareas.
  • Jerárquico : Organice las tareas en niveles de gestión especificando el modelo de lenguaje de gestión (manager_llm) para habilitar el proceso. El agente gestor es responsable de supervisar la ejecución de las tareas, incluyendo la planificación, delegación y validación de las tareas, que se asignan en función de las capacidades del agente, no preasignadas.
  • Proceso de consenso (previsto) Objetivo: permitir la toma de decisiones colaborativa entre agentes en la ejecución de tareas e introducir un enfoque democrático en la gestión de tareas, aún no implementado en el código base pero que refleja la búsqueda de CrewAI de desarrollo e innovación continuos.

2.4.2 El papel del proceso en el trabajo en equipo

Los procesos permiten a los agentes individuales funcionar como un todo cohesionado, agilizando los esfuerzos de colaboración para alcanzar objetivos comunes de forma eficaz y coordinada. Gracias a un buen diseño de los procesos, los equipos son más capaces de hacer frente a tareas complejas y aumentar la productividad general.

2.4.3 Asignación de procesos al gestor

Al crear un Gestor, el desarrollador puede especificar el tipo de proceso para establecer la política de ejecución. Para procesos jerárquicos, se debe definir para el Agente Gestor el tipo de proceso manager_llm. Ejemplo:

from crewai import Crew, Process
from langchain_openai import ChatOpenAI
# 顺序流程
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.sequential
)
# 分级流程,确保提供 manager_llm
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.hierarchical,
manager_llm=ChatOpenAI(model="gpt-4")
)

2.4.4 Características adicionales de la tarea

  • Ejecución asíncrona (Asynchronous Execution) Permite que las tareas se ejecuten de forma asíncrona, lo que posibilita el procesamiento paralelo y mejora la productividad general del equipo. Los desarrolladores pueden elegir con flexibilidad métodos de ejecución síncronos o asíncronos en función de las características de la tarea.
  • Revisión de la aportación humana (HIR) Revisión manual opcional de los resultados de las tareas para garantizar la calidad y la precisión antes de finalizar los resultados de las tareas, lo que introduce un nivel adicional de supervisión para salvaguardar la fiabilidad de la ejecución de las tareas.
  • Personalización de la salida La tarea admite varios formatos de salida, como JSON (output_json), el modelo pydántico (output_pydantic) y la salida de archivos (output_file) para satisfacer distintas necesidades y facilitar el tratamiento y la utilización de los datos.

2,5 Tripulaciones

2.5.1 Atributos del equipo

  • Tareas Lista de tareas asignadas al equipo en la que se especifica lo que el equipo debe realizar.
  • Agentes Lista de agentes pertenecientes al equipo, que define la composición de los miembros del equipo, cada uno con sus funciones y capacidades únicas.
  • Proceso (opcional) El tipo de proceso que sigue el equipo, como un proceso secuencial o jerárquico, determina el orden y la forma en que se realizan las tareas.
  • Nivel de detalle (opcional) : El nivel de detalle del registro durante la ejecución, lo que facilita a los desarrolladores la obtención de información suficiente para la depuración y la supervisión.
  • Manager LLM (opcional, necesario para el proceso escalonado) Modelo de lenguaje utilizado por los agentes gestores en un proceso jerárquico para gestionar el proceso de ejecución de tareas.
  • Llamada a función LLM (opcional) Si se transmite, el equipo utilizará este LLM para realizar llamadas de funcionalidad a la herramienta para todos los agentes, que el desarrollador puede configurar de forma flexible según sea necesario.
  • Configuración (opcional) Ajustes de configuración opcionales para que los equipos Json tal vez Dict[str, Any] El formato se proporciona para una mayor personalización del comportamiento del equipo.
  • RPM máximas (opcional) Número máximo de peticiones que se pueden ejecutar por minuto durante la ejecución en equipo para evitar la limitación de velocidad, puede anular las peticiones individuales de los agentes. max_rpm Entorno.
  • Idioma (opcional) : El idioma utilizado por el equipo, que es el inglés por defecto, puede ajustarse en función de las necesidades reales.
  • Archivos de idioma (opcional) : Rutas de archivos de idioma para equipos con el fin de facilitar el soporte multilingüe.
  • Memoria (opcional) : Se utiliza para almacenar memorias ejecutivas (a corto plazo, a largo plazo, memorias físicas) para mejorar la capacidad de ejecución y aprendizaje del equipo.
  • Caché (opcional) : Especifica si se utiliza o no la memoria caché para almacenar los resultados de la ejecución de la herramienta y mejorar así la eficiencia del proceso.
  • Incrustador (opcional) : La configuración del incrustador utilizada por el equipo, principalmente para las funciones en memoria, afecta al modo en que se incrustan y recuperan los datos.
  • Salida total (opcional) : Decide si el equipo devuelve un resultado completo que contenga todos los resultados de la tarea o sólo el resultado final, para satisfacer diferentes necesidades de adquisición de resultados.
  • Devolución de llamada de paso (opcional) Función llamada después de cada paso de cada agente para registrar operaciones o realizar otras operaciones que no anulan las específicas del agente. step_callback.
  • Devolución de tareas (opcional) Función llamada después de completar cada tarea para supervisar o realizar otras acciones después de la tarea.
  • Equipo compartido (opcional) : Si la información completa del equipo y la implementación se comparte con el equipo CrewAI para mejorar la biblioteca y permitir la formación de modelos.
  • Archivo de registro de salida (opcional) Crear o no un archivo que contenga la salida completa del equipo y la ejecución, puede especificar la ruta y el nombre del archivo.

2.5.2 Ejemplo de creación de un equipo

A continuación se muestra un ejemplo de formación de un equipo, que muestra cómo se pueden reunir agentes con funciones y herramientas complementarias, asignar tareas y seleccionar procesos:

from crewai import Crew, Agent, Task, Process
from langchain_community.tools import DuckDuckGoSearchRun
# 定义具有特定角色和工具的代理
researcher = Agent(
role="高级研究分析师",
goal="发现创新的人工智能技术",
tools=[DuckDuckGoSearchRun()]
)
writer = Agent(
role="内容撰稿人",
goal="撰写有关人工智能发现的引人入胜的文章",
verbose=True
)
# 为代理创建任务
research_task = Task(
description="识别突破性人工智能技术",
agent=researcher
)
write_article_task = Task(
description="撰写关于最新人工智能技术的文章",
agent=writer
)
# 使用顺序流程组装团队
my_crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_article_task],
process=Process.sequential,
full_output=True,
verbose=True,
)

2.5.3 Proceso de ejecución en equipo

  • Secuencial Las tareas se ejecutan de forma secuencial y el trabajo fluye linealmente, lo que resulta sencillo e intuitivo y es adecuado para escenarios en los que existe una secuencia clara entre las tareas.
  • Jerárquico El Agente Gestor coordina al equipo, delega tareas y valida los resultados antes de continuar. Este proceso requiere manager_llmEs adecuado para la gestión y asignación de tareas complejas, garantizando una ejecución eficaz de las tareas y el control de calidad.
  • Equipo de lanzamiento : Uso kickoff() inicia un flujo de trabajo de equipo, comienza a ejecutar la tarea según el proceso definido y obtiene los resultados de la ejecución de la tarea. Ejemplo:
# 启动团队的任务执行
result = my_crew.kickoff()
print(result)

2.6 Memoria

2.6.1 Componentes del sistema de memoria

  • Memoria a corto plazo (Short-term Memory) El almacenamiento temporal de interacciones y resultados recientes permite al agente recordar y utilizar rápidamente información estrechamente relacionada con el contexto actual, manteniendo así la coherencia en un diálogo o secuencia de tareas y tomando decisiones y respuestas más pertinentes desde el punto de vista contextual.
  • Memoria a largo plazo Es un repositorio de conocimientos que retiene valiosas percepciones y aprendizajes de actuaciones pasadas. A medida que pasa el tiempo, los agentes son capaces de aprender de esta experiencia y construir y mejorar gradualmente su sistema de conocimiento, lo que a su vez mejora sus futuras capacidades de toma de decisiones y resolución de problemas para hacer frente mejor a escenarios de tareas complejas y cambiantes.
  • Memoria de entidad Se centra en capturar y organizar información sobre varios tipos de entidades encontradas en el curso de la ejecución de tareas, incluyendo personas, lugares, conceptos, etcétera. Esto ayuda al agente a comprender en profundidad las conexiones intrínsecas entre la información compleja, procesar e integrar el conocimiento relevante de forma más eficiente a través de un mapeo preciso de las relaciones entre entidades, y proporcionar una perspectiva más completa y profunda para la resolución de problemas.
  • Contexto Memoria El objetivo es mantener la información contextual durante las interacciones, garantizando que el agente sea capaz de responder con coherencia y relevancia a lo largo de una serie de tareas o diálogos sucesivos. Incluso durante interacciones largas, el contexto y la intención de la tarea pueden entenderse con precisión, evitando desconexiones de información o malentendidos, y proporcionando así resultados más precisos y razonables.

2.6.2 Cómo los sistemas de memoria potencian a los agentes

  • Mayor conocimiento del contexto La sinergia de la memoria a corto plazo y la memoria contextual permite al agente mantener un firme dominio del contexto durante la evolución de un diálogo o una tarea. Ya se trate de la correlación de información en un diálogo de varias rondas o de la continuación lógica en una secuencia de tareas, el agente puede generar respuestas más coherentes, consistentes y contextuales basadas en la información contextual almacenada, lo que mejora enormemente la fluidez y la lógica de la experiencia de interacción.
  • Experiencia en creación y aceleración del aprendizaje La memoria a largo plazo ofrece a los agentes una plataforma para crecer y evolucionar. Al almacenar y revisar acciones y resultados pasados, los agentes son capaces de extraer lecciones de ellos, descubrir pautas y patrones y optimizar continuamente sus estrategias de toma de decisiones y sus métodos de resolución de problemas. Este proceso de acumulación de experiencia permite al agente tomar decisiones más inteligentes y eficaces cuando se enfrenta a problemas similares, lo que mejora notablemente la eficacia y la calidad del trabajo.
  • Comprensión de entidades y optimización del tratamiento de la información Memoria de entidades: la memoria de entidades proporciona al agente la capacidad de identificar y recordar entidades clave, lo que le permite centrarse rápidamente en los puntos centrales y aclarar las interrelaciones entre la información cuando procesa información compleja. Esto no sólo ayuda al agente a comprender los requisitos de la tarea con mayor precisión, sino que también le permite filtrar rápidamente el contenido valioso y mejorar la velocidad y la precisión del procesamiento de la información ante enormes cantidades de información, con el fin de hacer frente a tareas complejas y escenarios de problemas diversificados con mayor eficacia.

2.6.3 Aplicación de la memoria en los equipos

Al configurar un equipo, los desarrolladores tienen la flexibilidad de habilitar y personalizar cada componente de memoria en función de los objetivos del equipo y la naturaleza de la tarea. Por defecto, el sistema de memoria está desactivado, estableciendo la configuración del equipo en la opción memory=Truepuedes activar la función de memoria para dotar a tu equipo de potentes capacidades de memoria. Memory utiliza OpenAI Embeddings de forma predeterminada, pero los desarrolladores también pueden ajustar los embedder ajústelo a otro modelo como Google AI, Azure OpenAI, GPT4ALL, Vertex AI o Cohere etc. para responder a las necesidades de distintos escenarios. Ejemplo:

from crewai import Crew, Agent, Task, Process
# 使用具有记忆功能的团队,采用默认的 OpenAI Embeddings
my_crew = Crew(
agents=[...],
tasks=[...],
process=Process.sequential,
memory=True,
verbose=True
)
# 使用具有记忆功能的团队,切换为 Google AI 嵌入
my_crew = Crew(
agents=[...],
tasks=[...],
process=Process.sequential,
memory=True,
verbose=True,
embedder={
"provider": "google",
"config": {
"model": "models/embedding-001",
"task_type": "retrieval_document",
"title": "Embeddings for Embedchain"
}
}
)

2.6.4 Ventajas del uso del sistema de memoria CrewAI

  • Aprendizaje adaptativo y optimización continua Con el paso del tiempo y la ejecución continua de tareas, el equipo es capaz de adaptarse gradualmente a la nueva información y a los requisitos de las tareas, y de mejorar continuamente los métodos y estrategias de gestión de las mismas. El sistema de memoria permite a los agentes aprender de experiencias pasadas y ajustar automáticamente sus pautas de comportamiento para que se sientan más cómodos a la hora de enfrentarse a nuevas situaciones, y la eficacia general del equipo seguirá mejorando con la experiencia.
  • Mejora de la experiencia personalizada Función de memoria: la función de memoria permite al agente registrar e identificar las preferencias del usuario, las interacciones históricas y otra información, con el fin de ofrecer a los usuarios servicios y experiencias más personalizados. Ya sea en términos de recomendación de contenidos, respuesta a preguntas o interacción, el agente es capaz de responder con precisión en función de las características personalizadas del usuario, satisfacer sus necesidades específicas y mejorar la adherencia y la satisfacción entre el usuario y el sistema.
  • Aumento de la capacidad de resolución de problemas La memoria enriquecida proporciona a los agentes una sólida base de conocimientos que les permite aprovechar plenamente el aprendizaje previo y la información contextual a la hora de resolver problemas. Al recuperar y aprovechar rápidamente la experiencia pertinente, los agentes son capaces de analizar los problemas de forma más exhaustiva, identificar posibles soluciones y tomar decisiones más inteligentes y precisas, lo que mejora eficazmente su capacidad para resolver problemas complejos y proporciona un sólido apoyo para el éxito de las operaciones en equipo.

3. Pasos prácticos para construir un sistema multiagente basado en CrewAI

3.1 Preparativos

3.1.1 Configuración del entorno

Asegúrese de que su sistema cumple los requisitos de instalación de CrewAI y las dependencias relacionadas. Dependiendo del sistema operativo, es posible que tenga que instalar paquetes específicos o configurar variables de entorno. Por ejemplo, en algunos sistemas puede ser necesario instalar el entorno Python, las bibliotecas relacionadas y configurar las claves API.

3.1.2 Instalación de CrewAI y Ollama (opcional)

Siga las instrucciones de la documentación oficial para instalar CrewAI y Ollama (si necesita utilizar Ollama) sucesivamente. Es posible que tengas que estar atento a la compatibilidad de versiones, dependencias y otras cuestiones durante el proceso de instalación para asegurarte de que la instalación se completa correctamente. Por ejemplo, utilice el comando pip para instalar CrewAI y su conjunto de herramientas:pip install crewai[tools]y de acuerdo con Ollama La guía de instalación del

3.1.3 Configuración del modelo

En el archivo de configuración de CrewAI, establece el Modelo de Lenguaje (LLM) al modelo deseado, como Llama3, etc. Este paso garantiza que el agente pueda utilizar el modelo de lenguaje adecuado para razonar y tomar decisiones al realizar tareas.

3.2 Creación de agentes

3.2.1 Definición de funciones y objetivos de los agentes

Defina las funciones y los objetivos de cada agente en función de los requisitos de la tarea. Por ejemplo, para crear un agente responsable de la recopilación de información, su función puede definirse como "recopilador de información" con el objetivo de "recopilar información relevante en un dominio específico"; o, para crear un agente centrado en el análisis de datos, la función es "analista de datos" con el objetivo de "realizar un análisis en profundidad de los datos recopilados para extraer ideas valiosas".

3.2.2 Configuración de las propiedades del agente

Según el papel del agente y las características de la tarea, es razonable configurar los atributos del agente, como elegir el modelo de lenguaje adecuado, añadir las herramientas necesarias, establecer el número máximo de iteraciones y las estrategias de almacenamiento en caché. Tomando como ejemplo el agente recopilador de información, puede configurarse con una herramienta de búsqueda web, establecer un mayor número máximo de peticiones para mejorar la eficiencia de la adquisición de información y activar el almacenamiento en caché para reducir las búsquedas repetitivas; mientras que el agente analista de datos puede necesitar conectarse a una herramienta de base de datos específica y ajustar atributos como el número máximo de iteraciones en función de la complejidad de la tarea de análisis.

3.2.3 Desarrollar la historia del agente (opcional pero recomendado)

Escribir una historia de fondo detallada para el agente, aunque es un paso opcional, puede proporcionar un contexto más rico para los comportamientos y decisiones del agente, realzar las características antropomórficas del agente y ayudar a mejorar la interactividad y la interpretabilidad del sistema. Por ejemplo, para escribir la historia de fondo de un recopilador de información: "Eres un recopilador de información profesional al que se le da bien cribar rápidamente la enorme cantidad de información que hay en la red para encontrar contenidos valiosos. Llevas mucho tiempo dedicándote a la recopilación de datos, conoces bien diversas fuentes de información y dominas diversas técnicas y herramientas de búsqueda. Esta tarea consiste en ayudar al equipo a obtener la información más reciente sobre [área específica], proporcionando un sólido apoyo para los análisis posteriores y la toma de decisiones."

3.3 Definición de tareas

3.3.1 Aclaración de la descripción de las tareas

Proporcione una descripción clara y precisa de cada tarea para asegurarse de que los agentes entienden claramente los requisitos específicos de la misma. Por ejemplo, "Analizar los comentarios de los usuarios sobre [nombre del producto] en las redes sociales durante el último mes y extraer los comentarios y sugerencias clave", "Pronosticar las tendencias en [nombre del sector] durante los próximos tres meses basándose en los datos del mercado", etc.

3.3.2 Asignación de agentes de tareas

Asigne tareas de forma razonable a los agentes adecuados en función de sus funciones y capacidades. Puede especificar directamente el agente responsable de realizar la tarea, o puede utilizar el mecanismo de procesos de CrewAI para permitir que el sistema asigne automáticamente las tareas en función de la disponibilidad del agente, su experiencia y otros factores. Por ejemplo, asigne tareas de recopilación de información a agentes recopiladores de información y tareas de análisis de datos a agentes analistas de datos.

3.3.3 Configuración de las propiedades de las tareas

Según los requisitos de la tarea, establezca otros atributos de la tarea, como el formato de salida esperado (JSON, modelo o archivo Pydantic, etc.), si se requiere ejecución asíncrona, si se requiere revisión manual de la entrada, y establezca el contexto de la tarea. Por ejemplo, para tareas con elevados requisitos de tiempo real, se puede establecer la ejecución asíncrona para mejorar la velocidad de respuesta global del sistema; para tareas importantes de toma de decisiones, se puede habilitar la revisión manual de la entrada para garantizar la precisión de los resultados.

3.4 Herramientas de integración

3.4.1 Elegir la herramienta adecuada

Elegir la herramienta adecuada para la tarea de la rica biblioteca de herramientas proporcionadas por CrewAI, como las de búsqueda en la web. WebsiteSearchToolpara la lectura de archivos FileReadToolA continuación se presentan algunos ejemplos de los análisis de datos utilizados en el CSVSearchTool etc. También pueden crearse herramientas personalizadas en función de las necesidades de cada tarea.

3.4.2 Integración de herramientas con agentes y tareas

Asigne las herramientas seleccionadas a los agentes adecuados para que éstos puedan invocarlas al realizar las tareas. Cuando defina una tarea, especifique explícitamente las herramientas que se utilizarán para la tarea para garantizar que las herramientas estén estrechamente integradas con la tarea y trabajen juntas. Por ejemplo, en una tarea de recopilación de información, equipe al agente recopilador de información con la herramienta WebsiteSearchTool responder cantando DirectorySearchToolpara que pueda acceder a la información de páginas web y catálogos locales.

3.5 Formación del equipo

3.5.1 Agentes combinados

Combine agentes con diferentes funciones y competencias para formar un equipo de colaboración. Asegúrese de que los miembros del equipo tienen funciones complementarias y son capaces de trabajar juntos en tareas complejas. Por ejemplo, un equipo podría incluir agentes con distintas funciones, como recopiladores de información, analistas de datos, creadores de contenidos, etc., cada uno con su propia experiencia, que trabajen juntos para alcanzar los objetivos del proyecto.

3.5.2 Definición de los procesos de equipo

En función de las características y requisitos de las tareas, elija un proceso de equipo adecuado, como un proceso secuencial o un proceso jerárquico. Los procesos secuenciales son adecuados para escenarios en los que existe un claro orden de precedencia entre tareas, y los agentes realizan las tareas secuencialmente en un orden predeterminado; los procesos jerárquicos son adecuados para tareas complejas que requieren gestión y coordinación, y las tareas se asignan y supervisan a través de agentes directivos.

3.5.3 Configuración de las propiedades del equipo

De acuerdo con las necesidades del equipo, configure varios atributos del equipo, como el nivel de detalle de registro, la tasa máxima de solicitudes, la configuración del idioma, la configuración de la memoria y la caché, y si se debe compartir la información del equipo. Una configuración razonable de los atributos del equipo puede optimizar la eficacia operativa del equipo y satisfacer las necesidades de diferentes escenarios.

3.6 Ejecución de tareas y seguimiento

3.6.1 Iniciar la asignación de tareas al equipo

utilizar kickoff() inicia el proceso de ejecución de tareas del equipo, y el sistema impulsará al agente para que empiece a trabajar de acuerdo con el proceso definido y la asignación de tareas. Durante el proceso de ejecución de la tarea, el progreso de la misma puede supervisarse en tiempo real mediante el registro y la salida de la consola.

3.6.2 Supervisión de la ejecución de tareas

Utilizando la función de registro y las herramientas de supervisión relacionadas proporcionadas por CrewAI, prestamos mucha atención al estado de ejecución de las tareas, los pasos de funcionamiento de los agentes, los resultados de salida y otra información. Mediante una supervisión detallada, se pueden descubrir a tiempo los problemas que puedan surgir durante la ejecución de las tareas, como errores de ejecución de los agentes, tiempo de espera de las tareas, consumo excesivo de recursos, etc.

3.6.3 Procesamiento de los resultados de la ejecución de tareas

Una vez finalizada la ejecución de la tarea, se captura y procesa su resultado. Basándose en el formato de salida esperado de la tarea, los resultados se parsean y analizan para extraer información valiosa para la posterior toma de decisiones o el procesamiento posterior. Al mismo tiempo, basándose en los resultados de la ejecución de la tarea y en los problemas detectados durante la supervisión, se realizan los ajustes y optimizaciones necesarios en la configuración del agente, la tarea o el equipo para mejorar el rendimiento y la precisión del sistema.

4. Estudio de caso: aplicación de CrewAI en un proyecto real

4.1 Sistema inteligente de atención al cliente

4.1.1 Arquitectura del sistema y funciones de los agentes

En el sistema inteligente de atención al cliente, se construyen varios agentes para simular el flujo de trabajo de la atención al cliente humana. Entre ellos se incluyen el agente de recepción de preguntas del usuario, el agente de clasificación de preguntas, el agente de consulta de información, el agente de generación de respuestas y el agente de revisión de respuestas. El agente de recepción de problemas del usuario se encarga de recibir el problema de consulta del usuario y pasarlo al agente de clasificación de problemas; el agente de clasificación de problemas lo asigna al agente de consulta de información correspondiente en función del tipo de problema; el agente de consulta de información utiliza diversas herramientas (por ejemplo, herramienta de consulta de bases de conocimiento, herramienta de búsqueda en bases de datos, etc.) para encontrar la información pertinente; el agente de generación de respuestas genera la respuesta preliminar en función de la información consultada; el agente de revisión de respuestas audita y optimiza la respuesta generada para garantizar que la respuesta no sea un problema. El agente de generación de respuestas genera respuestas preliminares en función de la información consultada; el agente de revisión de respuestas revisa y optimiza las respuestas generadas para garantizar la precisión y calidad de las respuestas.

4.1.2 Flujo de tareas y colaboración

Cuando un usuario plantea una pregunta, el agente receptor de preguntas del usuario registra la pregunta y la transmite al agente de clasificación de preguntas. El agente de clasificación de problemas clasifica el problema en distintos tipos, como problemas comunes, problemas técnicos, problemas posventa, etc., mediante análisis de palabras clave, comprensión semántica y otras técnicas. A continuación, en función del resultado de la clasificación, el problema se asigna al agente de consulta de información correspondiente. El agente de consulta de información busca la información pertinente en la base de conocimientos, la base de datos o los recursos externos en función del tipo de problema. Por ejemplo, para problemas comunes, las respuestas se obtienen directamente de la base de conocimientos; para problemas técnicos, puede ser necesario consultar documentos técnicos o interactuar con sistemas técnicos expertos. A partir de la información consultada, el agente de generación de respuestas utiliza técnicas de generación de lenguaje natural para transformar la información en respuestas claras y comprensibles. Por último, el agente de revisión de respuestas realiza la comprobación gramatical, la revisión lógica y la evaluación de la cortesía de la respuesta, así como su posterior optimización y modificación si es necesario. A lo largo de todo el proceso, los agentes colaboran eficientemente gracias al mecanismo de comunicación de CrewAI y a sus capacidades de programación de tareas para ofrecer a los usuarios respuestas rápidas y precisas.

4.2 Asistente inteligente para la creación de contenidos

4.2.1 Funciones de los agentes y división del trabajo

El asistente inteligente de creación de contenidos se compone de varios agentes que trabajan juntos: el agente de planificación temática, el agente de recopilación de materiales, el agente de generación de contenidos y el agente de embellecimiento de contenidos. El agente de planificación de temas se encarga de determinar el tema de creación en función de las necesidades de los usuarios o las tendencias del mercado; el agente de recopilación de materiales recoge los materiales pertinentes, como artículos, imágenes, datos, etc., utilizando herramientas de búsqueda en la web y de consulta de bases de datos; el agente de generación de contenidos crea el primer borrador a partir del tema y los materiales utilizando algoritmos de generación de lenguaje natural; y el agente de retoque de contenidos lleva a cabo la optimización gramatical, el ajuste de estilo y el peinado lógico del primer borrador, con el fin de satisfacer mejor los requisitos y expectativas de los usuarios. El agente de retoque de contenidos optimizará la gramática, el estilo y la lógica del primer borrador para que se ajuste más a los requisitos y expectativas de los usuarios.

4.2.2 Procesos creativos y mecanismos sinérgicos

Cuando un usuario plantea una solicitud de creación (por ejemplo, escribir un artículo sobre [un tema específico]), el agente de planificación de temas primero analiza y planifica el tema, determinando el marco general y el contenido clave del artículo. A continuación, el agente de recopilación de material busca en Internet artículos, informes de investigación, casos y otros materiales pertinentes en función del tema, los organiza y los transmite al agente de generación de contenidos. El agente de generación de contenidos genera el primer borrador del artículo basándose en el marco temático y los materiales recopilados, utilizando modelos de aprendizaje profundo. Por ejemplo, puede generar contenido de párrafos y organizar la estructura del artículo basándose en las ideas y los datos del material. Por último, el agente de retoque de contenidos lleva a cabo un retoque exhaustivo del primer borrador, comprobando que no haya errores gramaticales, optimizando la selección de vocabulario y ajustando la estructura de las frases para que el artículo resulte más fluido, suave y atractivo. A lo largo de todo el proceso de creación, los agentes comparten información y comentarios en tiempo real a través de los mecanismos de comunicación y colaboración de CrewAI para garantizar la buena marcha del trabajo de creación.

4.3 Sistemas inteligentes de toma de decisiones de inversión

4.3.1 Composición del sistema y responsabilidades de los agentes

El sistema inteligente de toma de decisiones de inversión consta de un agente de recopilación de datos de mercado, un agente de análisis de datos, un agente de evaluación de riesgos, un agente de recomendación de estrategias de inversión y un agente de optimización de carteras. El agente de recopilación de datos de mercado se encarga de recopilar datos de mercado en tiempo real de diversas fuentes de datos financieros (por ejemplo, bolsas de valores, sitios web de noticias financieras, bases de datos financieros, etc.), incluidos los precios de las acciones, el volumen de negocios, los indicadores macroeconómicos, etc.; el agente de análisis de datos limpia, organiza y analiza los datos recopilados para extraer información valiosa, como las tendencias del mercado, la dinámica del sector, las condiciones financieras de las empresas, etc.; el agente de evaluación de riesgos evalúa el nivel de riesgo del objetivo de inversión utilizando un modelo de evaluación de riesgos basado en los resultados del análisis de datos; el agente de recomendación de estrategias de inversión evalúa el nivel de riesgo del objetivo de inversión utilizando un modelo de evaluación de riesgos; y el agente de recomendación de estrategias de inversión evalúa el nivel de riesgo del objetivo de inversión basándose en los resultados del análisis de datos. Basándose en los resultados del análisis de datos, el agente de evaluación del riesgo aplica el modelo de evaluación del riesgo para evaluar el nivel de riesgo de los objetivos de inversión; el agente de recomendación de estrategias de inversión recomienda estrategias de inversión adecuadas, como la inversión a largo plazo, la especulación a corto plazo, la inversión diversificada, etc., basándose en las condiciones del mercado y las preferencias de riesgo de los inversores; el agente de optimización de la cartera optimiza la cartera de inversión basándose en las estrategias de inversión recomendadas y determina la proporción óptima de asignación de activos.

4.3.2 Procesos de toma de decisiones y modos de colaboración

Los agentes de recopilación de datos de mercado recogen continuamente datos de mercado actualizados y los transmiten a los agentes de análisis de datos. El agente de análisis de datos lleva a cabo un análisis en profundidad de los datos, como la predicción de los movimientos del precio de las acciones a través de métodos de análisis técnico y la evaluación del valor intrínseco de una empresa a través del análisis fundamental. El agente de evaluación del riesgo evalúa el nivel de riesgo de los distintos objetivos de inversión basándose en los resultados del análisis de datos, combinados con datos históricos y modelos de riesgo. El agente de recomendación de estrategias de inversión recomienda estrategias de inversión personalizadas para los inversores, teniendo en cuenta las tendencias del mercado, los resultados de la evaluación del riesgo y la propensión al riesgo de los inversores. Por ejemplo, para los inversores con mayor apetito por el riesgo, puede recomendar una mayor proporción de inversión en acciones; para los inversores conservadores, puede recomendar una cartera de inversión en bonos y fondos más sólida. Por último, el agente de optimización de la cartera aplica un algoritmo matemático de optimización basado en las estrategias de inversión recomendadas para determinar la asignación óptima de la cartera con el fin de maximizar la rentabilidad y minimizar el riesgo. A lo largo del proceso de toma de decisiones, cada agente trabaja en estrecha colaboración para lograr un flujo de datos eficiente y una toma de decisiones científica a través del mecanismo de orquestación de procesos y comunicación de CrewAI.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...