Guide pour la construction de systèmes multi-agents basés sur CrewAI

1. introduction

Dans le domaine de l'intelligence artificielle, le système multi-agents devient progressivement une technologie clé pour résoudre des problèmes complexes et parvenir à une collaboration efficace. CrewAI, en tant que puissant outil de collaboration multi-agents, offre aux développeurs un moyen pratique de construire des systèmes de collaboration intelligents. Dans cet article, nous allons présenter comment construire un système de collaboration intelligent basé sur CrewAI Construire le système multi-agents.

2. les concepts de base de CrewAI en détail

2.1 Agent

2.1.1 Définition et fonction de l'agent

Les agents sont des unités autonomes dans CrewAI, capables d'effectuer des tâches, de prendre des décisions et de communiquer avec d'autres agents. Ils agissent comme les membres d'une équipe, chacun assumant un rôle spécifique, tel que chercheur, rédacteur ou support client, et travaillant ensemble pour contribuer aux objectifs de l'équipe.

2.1.2 Propriétés des mandataires

  • Rôle Clarifier la position fonctionnelle de l'agent au sein de l'équipe et déterminer les types de tâches qu'il est le mieux à même d'accomplir. Par exemple, un agent ayant le rôle de chercheur excelle dans la collecte et l'analyse d'informations, tandis qu'un agent ayant le rôle de rédacteur se concentre sur la création de contenu.
  • Objectif Le processus décisionnel qui guide un agent est un objectif individuel que l'agent s'efforce d'atteindre. Par exemple, l'objectif d'un agent analyste de données peut être d'extraire des informations exploitables pour soutenir les décisions de l'entreprise.
  • Histoire Les informations contextuelles : elles améliorent la dynamique de l'interaction et de la collaboration en fournissant des informations contextuelles riches sur le rôle et les objectifs de l'agent. Dans le cas d'un analyste de données, par exemple, l'histoire pourrait être la suivante : "Vous êtes analyste de données dans une grande entreprise. Vous êtes chargé d'analyser les données et de fournir des informations à l'entreprise. Vous travaillez actuellement sur un projet d'analyse des performances de nos campagnes de marketing".
  • LLM (facultatif) : Indique le modèle de langue pour l'exécution de l'agent. S'il n'est pas spécifié, l'agent est exécuté par défaut à partir du modèle de langue OPENAI_MODEL_NAME Obtenir le nom du modèle dans la variable d'environnement, sinon le nom par défaut est "gpt-4". Les développeurs peuvent choisir le modèle de langage approprié pour répondre aux exigences de traitement des différentes tâches.
  • Outils (facultatif) Ces outils peuvent étendre les capacités d'un agent pour lui permettre d'effectuer des opérations telles que la recherche sur le web, l'analyse de données, etc. Ces outils peuvent étendre les capacités d'un agent pour lui permettre d'effectuer des opérations telles que la recherche sur le web, l'analyse de données, etc.
  • LLM pour les fonctions d'appel (optionnel) Modèle de langue : spécifie le modèle de langue qui gère l'appel à l'outil de l'agent, remplace l'appel à la fonction d'équipe LLM s'il est transmis, la valeur par défaut est None. En configurant cet attribut de manière flexible, les développeurs peuvent contrôler plus précisément le comportement de l'agent en matière d'invocation d'outils.
  • Nombre maximal d'itérations (facultatif) : Nombre maximum d'itérations que l'agent peut effectuer avant d'être obligé de donner la meilleure réponse, la valeur par défaut est 25. Le réglage approprié de ce paramètre permet de contrôler la profondeur et l'efficacité de l'exécution de la tâche.
  • Nombre maximal de demandes (facultatif) Nombre maximum de requêtes que le proxy peut exécuter par minute, utilisé pour éviter la limitation du débit, valeur par défaut None. Le développeur peut effectuer des réglages en fonction de la situation réelle afin de garantir un fonctionnement stable du système.
  • Temps d'exécution maximum (optionnel) Durée maximale d'exécution d'une tâche par l'agent, la valeur par défaut étant Noneindique qu'il n'y a pas de limite maximale de temps d'exécution. Cet attribut peut être utilisé pour contrôler la période d'exécution d'une tâche afin d'éviter qu'elle n'accapare les ressources pendant une longue période.
  • Mode détaillé (optionnel) : Réglez-le sur True L'enregistreur interne configurable fournit des journaux d'exécution détaillés pour le débogage et la surveillance, la valeur par défaut est False. Lors du développement et de l'optimisation, l'activation du mode détaillé permet de localiser rapidement les problèmes.
  • Autorisation de délégation (facultatif) Les agents peuvent se déléguer mutuellement des tâches ou des problèmes, ce qui garantit que les tâches sont traitées par l'agent le plus approprié. True. Cette fonction favorise une collaboration souple au sein de l'équipe et améliore la précision et l'efficacité du traitement des tâches.
  • Rappel d'étape (facultatif) Les fonctions appelées après chaque étape de l'agent, qui peuvent être utilisées pour enregistrer des opérations ou effectuer d'autres opérations, remplaceront les fonctions de l'équipe. step_callback. Les développeurs peuvent mettre en œuvre une logique de surveillance et de traitement personnalisée à l'aide de cette fonction de rappel.
  • Cache (facultatif) : Indique si le proxy utilise le cache d'utilisation de l'outil, avec une valeur par défaut de True. Le mécanisme de mise en cache permet d'accroître l'efficacité de l'exécution des tâches et de réduire les calculs en double.

2.1.3 Création d'agents

Les agents peuvent interagir les uns avec les autres en utilisant les mécanismes de délégation et de communication intégrés à CrewAI. Cela permet une gestion dynamique des tâches et la résolution de problèmes au sein des équipes.

Pour créer un proxy, il est courant de l'initialiser avec les propriétés requises Agent instance de la classe. Voici un exemple de concept avec tous ses attributs :

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 Tâches

2.2.1 Définition des tâches et collaboration

Dans le cadre de CrewAI, une tâche est un travail spécifique qu'un agent doit accomplir, contenant divers détails nécessaires à l'exécution, tels qu'une description claire, l'agent responsable de l'exécution et les outils requis. Les tâches peuvent être collaboratives, ce qui permet à plusieurs agents de travailler ensemble grâce à la gestion des attributs et à l'orchestration des processus afin d'améliorer l'efficacité du travail d'équipe.

2.2.2 Attributs des tâches

  • Description Le terme "tâche" désigne un énoncé clair et concis du contenu de la tâche, de sorte que l'agent sache exactement ce qu'il a à faire. Par exemple, "Trouver et résumer les nouvelles les plus récentes et les plus pertinentes sur l'IA".
  • Agent Les agents responsables de l'exécution des tâches peuvent être spécifiés directement ou assignés par les processus de l'équipage en fonction des rôles, de la disponibilité et d'autres facteurs. Cela permet de s'assurer que les tâches sont exécutées par le bon agent.
  • Résultats attendus Une description détaillée de la tâche une fois qu'elle a été accomplie, afin que l'agent sache clairement quels sont les objectifs et les résultats souhaités de la tâche. Par exemple, "Un résumé sous forme de liste à puces des 5 nouvelles les plus importantes en matière d'IA".
  • Outils (facultatif) Outils : Les fonctions ou capacités utilisées par les agents pour effectuer des tâches peuvent améliorer l'exécution des tâches et l'interaction avec les agents. En choisissant les bons outils, les agents sont en mesure d'accomplir leurs tâches plus efficacement.
  • Exécution asynchrone (facultatif) Les tâches sont exécutées de manière asynchrone lorsqu'elles sont définies, ce qui permet aux autres tâches de continuer à avancer sans attendre leur achèvement, pour les tâches qui prennent beaucoup de temps ou qui ont peu d'impact sur l'exécution des tâches suivantes.
  • Contexte (facultatif) Les tâches : Spécifier les tâches dont les résultats doivent être utilisés comme contexte de cette tâche, clarifier les dépendances entre les tâches, et permettre une livraison et une utilisation efficaces des résultats des tâches.
  • Configuration (en option) Les détails de configuration supplémentaires de l'agent utilisé pour exécuter la tâche permettent de personnaliser davantage l'exécution de la tâche.
  • Sortie JSON (optionnel) Pour produire des objets JSON, l'API OpenAI est nécessaire et un seul format de sortie peut être défini. Cette propriété facilite l'interaction des données et l'intégration avec d'autres systèmes.
  • Sortie Pydantique (optionnel) Pour sortir les objets du modèle Pydantic, l'API OpenAI est également nécessaire, et un seul format de sortie peut être défini. Les développeurs peuvent choisir le format de sortie approprié en fonction de leurs besoins réels.
  • Fichier de sortie (optionnel) : Enregistre la sortie de la tâche dans un fichier, si elle est comparée à la sortie de la tâche. 输出 JSON peut-être 输出 Pydantic Utilisés conjointement, vous pouvez spécifier la manière dont la sortie est sauvegardée. Cela facilite la persistance des données et l'analyse ultérieure.
  • Rappel (facultatif) : fonction Python qui est exécutée après la réalisation d'une tâche et qui peut être utilisée pour déclencher des actions ou des notifications basées sur les résultats de la tâche, comme l'envoi d'un courrier électronique.
  • Entrée manuelle (en option) Indique si la tâche nécessite un éventuel retour d'information manuel, utile pour les tâches qui nécessitent une supervision manuelle afin de garantir l'exactitude et la fiabilité des résultats de la tâche.

2.2.3 Utiliser des outils pour créer des tâches

Après avoir compris les propriétés de base d'une tâche, nous étudierons comment créer une tâche à l'aide de l'outil. Voici un exemple :

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 Création de tâches

La création d'une tâche implique la définition de son champ d'application, de l'agent responsable et de tout attribut supplémentaire pour plus de flexibilité :

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

Les affectations de tâches peuvent directement affecter un 代理Ou laissez 分层 du processus CrewAI est déterminé par le rôle, la disponibilité, etc.

2.2.5 Dépendances des tâches

Dans CrewAI, la sortie d'une tâche est automatiquement transmise à la suivante, ce qui peut être utile lorsqu'une tâche dépend de la sortie d'une autre tâche, mais n'est pas exécutée immédiatement après elle. Cela se fait par l'intermédiaire de la fonction 上下文 Achèvement de l'attribut :

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 Exécution asynchrone

Les tâches sont exécutées de manière asynchrone, ce qui signifie que l'équipage n'attend pas qu'elles soient terminées pour passer à la tâche suivante. Ceci est utile pour les tâches qui prennent beaucoup de temps à terminer ou qui ne sont pas critiques pour l'exécution de la tâche suivante. Vous pouvez utiliser la fonction 上下文 est défini dans une tâche future, il doit attendre que la sortie de la tâche asynchrone soit terminée.

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 Mécanismes de rappel

Exécute une fonction de rappel à la fin de la tâche, ce qui permet de déclencher des actions ou des notifications en fonction des résultats de la tâche.

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 Accès aux résultats spécifiques à une tâche

Une fois qu'un groupe d'équipages a été exécuté, vous pouvez le faire en utilisant la fonction output permet d'accéder à la sortie d'une tâche spécifique :

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 Mécanismes de neutralisation des outils

La spécification d'outils dans une tâche permet un ajustement dynamique des capacités de l'agent, soulignant la flexibilité de CrewAI.

2.2.10 Traitement des erreurs et mécanismes de validation

Des mécanismes de validation existent pour garantir la robustesse et la fiabilité des attributs des tâches lors de la création et de l'exécution des tâches. Ces validations incluent, mais ne sont pas limitées à :

  • Veillez à ce qu'un seul type de résultat soit défini par tâche afin de maintenir des attentes claires en matière de résultats.
  • Prévention de la distribution manuelle id afin de préserver l'intégrité du système d'identification unique.

Ces validations permettent de maintenir la cohérence et la fiabilité de l'exécution des tâches dans le cadre de CrewAI.

2.3 Outils

2.3.1 Rôle et types d'outils

L'outil CrewAI dote les agents de diverses capacités, notamment la recherche sur le web, l'analyse de données, la génération de contenu et la délégation de tâches, ce qui permet aux agents d'effectuer diverses opérations complexes qui vont de la simple recherche à des interactions complexes et à un travail d'équipe efficace.

2.3.2 Caractéristiques principales de l'outil

  • Utilité : Conçu pour cette tâche, il couvre les exigences fonctionnelles de plusieurs domaines, tels que la recherche sur le web, l'analyse de données, la génération de contenu, etc., afin de répondre aux besoins des agents travaillant dans différents scénarios.
  • Intégration La capacité à s'intégrer de manière transparente dans les flux de travail et à travailler en étroite collaboration avec les agents et les tâches afin d'améliorer les capacités générales des agents et de permettre une collaboration efficace.
  • Personnalisation L'utilisation d'outils existants permet de personnaliser la configuration en fonction des besoins réels de l'agent.
  • Gestion des erreurs Le système de gestion des erreurs : Un puissant mécanisme de gestion des erreurs permet à l'outil de traiter les exceptions de manière élégante lorsqu'elles sont rencontrées au cours du fonctionnement, garantissant ainsi le bon fonctionnement du système.
  • Mécanisme de mise en cache Les développeurs peuvent également utiliser la fonction de mise en cache intelligente pour optimiser les performances et réduire les opérations redondantes. Les développeurs peuvent également utiliser la fonction cache_function permet un contrôle plus fin du mécanisme de mise en cache, ce qui améliore encore l'efficacité.

2.3.3 Utilisation de l'outil CrewAI

Pour améliorer les capacités de l'agent avec l'outil CrewAI, vous devez d'abord installer la boîte à outils supplémentaire :

pip install 'crewai[tools]'

Voici un cas d'utilisation :

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 Créer ses propres outils

La boîte à outils doit d'abord être installée :

pip install 'crewai[tools]'
  • sous-classification BaseTool : par le biais de l'héritage BaseTool les développeurs peuvent créer des outils personnalisés. Vous devez définir le nom et la description de l'outil et implémenter la fonction _run pour définir la logique fonctionnelle spécifique de l'outil. Exemple :
from crewai_tools import BaseTool
class MyCustomTool(BaseTool):
name: str = "我的工具名称"
description: str = "清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"
def _run(self, argument: str) -> str:
# 实现在这里
return "自定义工具的结果"
  • utiliser tool décorateur : Utilisation tool Les décorateurs permettent de créer plus proprement des outils personnalisés. Il suffit de définir la fonction, d'ajouter l'élément @tool et ne fournir que le nom et la description de l'outil. Exemple de décorateur :
from crewai_tools import tool
@tool("我的工具名称")
def my_tool(question: str) -> str:
"""清晰描述此工具用于什么,您的代理将需要这些信息来使用它。"""
# 函数逻辑在这里
return "您的自定义工具的结果"
  • Mécanismes de mise en cache personnalisés L'outil a la possibilité de réaliser cache_function pour affiner le comportement de la mémoire cache. Le fait de déterminer le moment de la mise en cache des résultats en fonction de conditions spécifiques permet de contrôler finement la logique de mise en cache. Exemple :
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 Utilisation de l'outil LangChain

CrewAI s'intègre parfaitement à la boîte à outils de LangChain, ce qui permet aux développeurs de profiter des outils intégrés fournis par LangChain, tels que GoogleSerperAPIWrapper etc., étendent les capacités de l'agent en l'intégrant dans le système CrewAI par une simple configuration. Exemple :

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 Processus

2.4.1 Réalisation du processus

  • Séquentiel Les tâches sont exécutées de manière séquentielle dans un ordre prédéfini, le résultat d'une tâche servant de contexte à la suivante, ce qui garantit une exécution ordonnée et cohérente des tâches.
  • Hiérarchique Les tâches sont organisées en niveaux de gestion en spécifiant le modèle de langage de gestion (manager_llm) pour activer le processus. L'agent gestionnaire est chargé de superviser l'exécution des tâches, y compris la planification, la délégation et la validation des tâches, qui sont attribuées en fonction des capacités de l'agent, et non pas pré-attribuées.
  • Processus de consensus (prévu) Le but est de permettre une prise de décision collaborative entre les agents sur l'exécution des tâches et d'introduire une approche démocratique de la gestion des tâches, qui n'est pas encore mise en œuvre dans la base de code mais qui reflète la poursuite du développement et de l'innovation continus de CrewAI.

2.4.2 Le rôle du processus dans le travail d'équipe

Les processus permettent aux agents individuels de fonctionner comme un tout cohérent, en rationalisant les efforts de collaboration pour atteindre des objectifs communs de manière efficace et coordonnée. Grâce à une bonne conception des processus, les équipes sont mieux à même de faire face à des tâches complexes et d'accroître leur productivité globale.

2.4.3 Affectation des processus au gestionnaire

Lors de la création d'un gestionnaire, le développeur peut spécifier le type de processus pour définir la politique d'exécution. Pour les processus hiérarchiques, vous devez définir pour l'agent Manager le paramètre manager_llm. Exemple :

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 Caractéristiques supplémentaires des tâches

  • Exécution asynchrone (Exécution asynchrone) Le système d'exécution asynchrone : il permet d'exécuter des tâches de manière asynchrone, ce qui favorise le traitement en parallèle et améliore la productivité globale de l'équipe. Les développeurs peuvent choisir des méthodes d'exécution synchrones ou asynchrones en fonction des caractéristiques de la tâche.
  • Examen de la contribution humaine (HIR) Les résultats des tâches peuvent être examinés manuellement afin de s'assurer de leur qualité et de leur exactitude avant de les finaliser, ce qui constitue un niveau de contrôle supplémentaire pour garantir la fiabilité de l'exécution de la tâche.
  • Personnalisation de la sortie La tâche prend en charge une variété de formats de sortie, tels que JSON (output_json), le modèle Pydantique (output_pydantic) et le fichier de sortie (output_file) pour répondre à différents besoins et faciliter le traitement et l'utilisation des données.

2.5 Équipes

2.5.1 Attributs de l'équipe

  • Tâches La liste des tâches : Une liste de tâches assignées à l'équipe qui spécifie ce que l'équipe doit accomplir.
  • Agents Les agents de l'équipe : une liste d'agents appartenant à l'équipe, définissant la composition des membres de l'équipe, chacun ayant un rôle et des capacités uniques.
  • Processus (facultatif) Le type de processus suivi par l'équipe, tel qu'un processus séquentiel ou hiérarchique, détermine l'ordre et la manière dont les tâches sont exécutées.
  • Niveau de détail (facultatif) Le niveau de détail de la journalisation pendant l'exécution, ce qui permet aux développeurs d'obtenir facilement des informations suffisantes pour le débogage et la surveillance.
  • Manager LLM (facultatif, requis pour le processus à plusieurs niveaux) Modèle de langage utilisé par les agents gestionnaires d'un processus hiérarchique pour gérer le processus d'exécution des tâches.
  • Appel de fonction LLM (optionnel) S'il est transmis, l'équipe utilisera ce LLM pour faire des appels de fonctionnalités à l'outil pour tous les agents, qui peuvent être configurés de manière flexible par le développeur en fonction des besoins.
  • Configuration (en option) Les équipes doivent être en mesure d'effectuer les tâches suivantes: : Paramètres de configuration facultatifs pour les équipes de Json peut-être Dict[str, Any] Le format est fourni pour une personnalisation plus poussée du comportement de l'équipe.
  • Vitesse maximale (en option) Nombre maximum de requêtes pouvant être exécutées par minute lors de l'exécution en équipe afin d'éviter la limitation du taux, peut remplacer le nombre maximum de requêtes de chaque agent. max_rpm Le cadre.
  • Langue (facultatif) La langue utilisée par l'équipe, qui est l'anglais par défaut, peut être ajustée en fonction des besoins réels.
  • Fichiers de langues (optionnel) Les chemins d'accès aux fichiers de langues pour les équipes afin de faciliter la prise en charge de plusieurs langues.
  • Mémoire (en option) Les souvenirs exécutifs (à court terme, à long terme et physiques) sont stockés afin d'améliorer la capacité d'exécution et d'apprentissage de l'équipe.
  • Cache (facultatif) : Indiquer s'il faut ou non utiliser la mise en cache pour stocker les résultats de l'exécution de l'outil afin d'améliorer l'efficacité du processus.
  • Embedder (optionnel) La configuration de l'embedder utilisée par l'équipe, principalement pour les fonctions en mémoire, affecte la manière dont les données sont intégrées et récupérées.
  • Sortie totale (en option) Les résultats de l'équipe : Décider si l'équipe renvoie un résultat complet contenant tous les résultats de la tâche ou seulement le résultat final, afin de répondre aux différents besoins d'acquisition de résultats.
  • Rappel d'étape (facultatif) Fonction appelée après chaque étape de chaque agent pour enregistrer les opérations ou effectuer d'autres opérations qui ne remplacent pas les fonctions spécifiques à l'agent. step_callback.
  • Rappels de tâches (facultatif) Fonction appelée après l'achèvement de chaque tâche pour contrôler ou effectuer d'autres actions après la tâche.
  • Équipe partagée (facultatif) Si les informations complètes de l'équipe et la mise en œuvre sont partagées avec l'équipe CrewAI afin d'améliorer la bibliothèque et de permettre la formation des modèles.
  • Fichier journal de sortie (optionnel) : Création ou non d'un fichier contenant les résultats et l'exécution de l'équipe complète, vous pouvez spécifier le chemin d'accès et le nom du fichier.

2.5.2 Exemple de création d'une équipe

Vous trouverez ci-dessous un exemple de constitution d'une équipe, montrant comment des agents ayant des rôles et des outils complémentaires peuvent être réunis, des tâches assignées et des processus sélectionnés :

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 Processus d'exécution en équipe

  • Séquentiel Les tâches sont exécutées de manière séquentielle et le travail s'écoule de manière linéaire, ce qui est simple et intuitif et convient aux scénarios dans lesquels il existe une séquence claire entre les tâches.
  • Hiérarchique L'agent gestionnaire coordonne l'équipe, délègue les tâches et valide les résultats avant de poursuivre. Ce processus nécessite manager_llmIl convient à la gestion et à l'attribution de tâches complexes, garantissant une exécution efficace des tâches et un contrôle de la qualité.
  • Équipe de lancement : Utilisation kickoff() lance un flux de travail d'équipe, commence à exécuter la tâche conformément au processus défini et obtient les résultats de l'exécution de la tâche. Exemple :
# 启动团队的任务执行
result = my_crew.kickoff()
print(result)

2.6 Mémoire

2.6.1 Composants du système de mémoire

  • Mémoire à court terme (Short-term Memory) Le stockage temporaire d'interactions et de résultats récents permet à l'agent de se rappeler rapidement et d'utiliser des informations étroitement liées au contexte actuel, ce qui permet de maintenir la cohérence d'un dialogue ou d'une séquence de tâches et de prendre des décisions et de réagir de manière plus pertinente en fonction du contexte.
  • Mémoire à long terme (Mémoire à long terme) Il s'agit d'un référentiel de connaissances qui conserve les informations et les enseignements précieux tirés des performances passées. Au fil du temps, les agents sont en mesure de tirer des enseignements de cette expérience et de construire et d'améliorer progressivement leur système de connaissances, ce qui, à son tour, améliore leurs capacités futures de prise de décision et de résolution de problèmes afin de mieux faire face à des scénarios de tâches complexes et changeants.
  • Mémoire des entités L'agent peut ainsi mieux comprendre les liens intrinsèques entre des informations complexes, traiter et intégrer les connaissances pertinentes de manière plus efficace grâce à une cartographie précise des relations entre les entités, et fournir une perspective plus complète et plus approfondie pour la résolution des problèmes. Cela permet à l'agent de comprendre en profondeur les liens intrinsèques entre des informations complexes, de traiter et d'intégrer plus efficacement les connaissances pertinentes grâce à une cartographie précise des relations entre les entités, et de fournir une perspective plus complète et plus approfondie pour la résolution des problèmes.
  • Mémoire contextuelle Les agents d'aide à la décision : Ils travaillent à maintenir les informations contextuelles pendant les interactions, garantissant que l'agent est capable de répondre de manière cohérente et pertinente tout au long d'une série de tâches ou de dialogues successifs. Même lors d'interactions prolongées, le contexte et l'intention de la tâche peuvent être compris avec précision, ce qui permet d'éviter les déconnexions d'informations ou les erreurs d'interprétation, et donc d'obtenir des résultats plus précis et plus raisonnables.

2.6.2 Comment les systèmes de mémoire donnent du pouvoir aux agents

  • Une meilleure connaissance du contexte La synergie de la mémoire à court terme et de la mémoire contextuelle permet à l'agent de garder une bonne maîtrise du contexte au cours de l'évolution d'un dialogue ou d'une tâche. Qu'il s'agisse de la corrélation d'informations dans un dialogue à plusieurs tours ou de la suite logique dans une séquence de tâches, l'agent peut générer des réponses plus cohérentes, consistantes et contextuelles sur la base des informations contextuelles stockées, ce qui améliore considérablement la fluidité et la logique de l'expérience d'interaction.
  • Accélération de l'acquisition d'expérience et de l'apprentissage La mémoire à long terme : La mémoire à long terme offre aux agents une plate-forme pour grandir et évoluer. En stockant et en examinant les actions et les résultats passés, les agents sont en mesure d'en tirer des leçons, de découvrir des schémas et des modèles, puis d'optimiser en permanence leurs stratégies de prise de décision et leurs méthodes de résolution des problèmes. Ce processus d'accumulation d'expérience permet à l'agent de prendre des décisions plus intelligentes et plus efficaces lorsqu'il est confronté à des problèmes similaires, ce qui améliore considérablement l'efficacité et la qualité du travail.
  • Compréhension des entités et optimisation du traitement de l'information La mémoire des entités : La mémoire des entités donne à l'agent la capacité d'identifier et de se souvenir des entités clés, ce qui lui permet de se concentrer rapidement sur les points essentiels et de clarifier les relations entre les informations lors du traitement d'informations complexes. Cela aide non seulement l'agent à comprendre plus précisément les exigences de la tâche, mais lui permet également de filtrer rapidement le contenu utile et d'améliorer la vitesse et la précision du traitement de l'information face à la masse d'informations, de manière à faire face plus efficacement aux tâches complexes et aux scénarios de problèmes diversifiés.

2.6.3 Mise en œuvre de la mémoire en équipe

Lors de la configuration d'une équipe, les développeurs ont la possibilité d'activer et de personnaliser chaque composant de mémoire en fonction des objectifs de l'équipe et de la nature de la tâche. Par défaut, le système de mémoire est désactivé, en définissant la configuration de l'équipe dans la section memory=TrueEn outre, vous pouvez activer la fonction de mémoire pour doter votre équipe de puissantes capacités de mémorisation. Par défaut, Memory utilise OpenAI Embeddings, mais les développeurs peuvent également modifier la fonction de mémoire. embedder Le paramètre est défini sur un autre modèle tel que Google AI, Azure OpenAI, GPT4ALL, Vertex AI ou Cohère etc. pour répondre aux besoins de différents scénarios. Exemple :

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 Avantages de l'utilisation du système de mémoire CrewAI

  • Apprentissage adaptatif et optimisation continue Avec le temps et l'exécution continue des tâches, l'équipe est capable de s'adapter progressivement aux nouvelles informations et exigences des tâches, et d'améliorer continuellement les méthodes et les stratégies de traitement des tâches. Le système de mémoire permet aux agents d'apprendre de leurs expériences passées et d'ajuster automatiquement leurs modèles de comportement afin d'être plus à l'aise face à de nouvelles situations, et l'efficacité globale de l'équipe continuera à s'améliorer avec l'expérience.
  • Amélioration de l'expérience personnalisée La fonction de mémoire permet à l'agent d'enregistrer et d'identifier les préférences de l'utilisateur, les interactions passées et d'autres informations, afin de fournir aux utilisateurs des services et des expériences plus personnalisés. Que ce soit en termes de recommandation de contenu, de réponse à des questions ou d'interaction, l'agent est capable de répondre avec précision aux caractéristiques personnalisées de l'utilisateur, de satisfaire ses besoins spécifiques et d'améliorer l'attachement et la satisfaction entre l'utilisateur et le système.
  • Amélioration des compétences en matière de résolution de problèmes Les agents sont capables d'analyser les problèmes de manière plus complète, d'identifier des solutions potentielles et de prendre des décisions plus intelligentes et plus précises, améliorant ainsi leur capacité à résoudre des problèmes complexes et apportant un soutien solide à l'équipe. En récupérant et en exploitant rapidement l'expérience pertinente, les agents sont en mesure d'analyser les problèmes de manière plus complète, d'identifier des solutions potentielles et de prendre des décisions plus intelligentes et plus précises, améliorant ainsi efficacement leur capacité à résoudre des problèmes complexes et apportant un soutien solide à la réussite des opérations de l'équipe.

3. étapes pratiques pour la construction d'un système multi-agents basé sur CrewAI

3.1 Préparatifs

3.1.1 Configuration de l'environnement

Assurez-vous que votre système répond aux exigences d'installation de CrewAI et de ses dépendances. En fonction du système d'exploitation, vous devrez peut-être installer des paquets spécifiques ou configurer des variables d'environnement. Par exemple, sur certains systèmes, vous devrez peut-être installer l'environnement Python, les bibliothèques correspondantes et configurer les clés API.

3.1.2 Installation de CrewAI et d'Ollama (optionnel)

Suivez les instructions de la documentation officielle pour installer CrewAI et Ollama (si vous devez utiliser Ollama). Il se peut que vous deviez tenir compte de la compatibilité des versions, des dépendances et d'autres questions au cours du processus d'installation afin de vous assurer que l'installation se termine avec succès. Par exemple, utilisez la commande pip pour installer CrewAI et sa boîte à outils :pip install crewai[tools]et conformément à Ollama Le guide d'installation du

3.1.3 Mise en place du modèle

Dans le fichier de configuration de CrewAI, définissez le modèle de langage (LLM) sur le modèle souhaité, tel que Llama3, etc. Cette étape permet de s'assurer que l'agent est capable d'utiliser le modèle de langage approprié pour le raisonnement et la prise de décision lors de l'exécution des tâches.

3.2 Création d'agents

3.2.1 Définition des rôles et des objectifs des agents

Définir les rôles et les objectifs de chaque agent en fonction des exigences de la tâche. Par exemple, pour créer un agent responsable de la collecte d'informations, son rôle peut être défini comme "collecteur d'informations" dans le but de "collecter des informations pertinentes dans un domaine spécifique" ; ou, pour créer un agent se concentrant sur l'analyse des données, le rôle est "analyste de données" dans le but de "mener une analyse approfondie des données collectées afin d'en extraire des informations utiles".

3.2.2 Configuration des propriétés de l'agent

En fonction du rôle de l'agent et des caractéristiques de la tâche, il est raisonnable de configurer les attributs de l'agent, tels que le choix du modèle linguistique approprié, l'ajout des outils nécessaires, la définition du nombre maximal d'itérations et la stratégie de mise en cache. Si l'on prend l'exemple de l'agent collecteur d'informations, il peut être configuré avec un outil de recherche sur le web, définir un nombre maximal de requêtes plus élevé pour améliorer l'efficacité de l'acquisition d'informations et activer la mise en cache pour réduire les recherches répétitives ; tandis que l'agent analyste de données peut avoir besoin de se connecter à un outil de base de données spécifique et d'ajuster des attributs tels que le nombre maximal d'itérations en fonction de la complexité de la tâche d'analyse.

3.2.3 Développer l'histoire de l'agent (facultatif mais recommandé)

La rédaction d'une histoire détaillée pour l'agent, bien qu'il s'agisse d'une étape facultative, peut fournir un contexte plus riche pour les comportements et les décisions de l'agent, renforcer les caractéristiques anthropomorphiques de l'agent et contribuer à améliorer l'interactivité et l'interprétabilité du système. Par exemple, pour écrire l'histoire d'un collecteur d'informations : "Vous êtes un collecteur d'informations professionnel qui est doué pour passer rapidement au crible l'énorme quantité d'informations sur le web afin de trouver un contenu de valeur. Vous travaillez depuis longtemps dans le domaine de la collecte de données, vous connaissez bien diverses sources d'information et vous maîtrisez un grand nombre de techniques et d'outils de recherche. Cette mission consiste à aider l'équipe à obtenir les informations les plus récentes sur [domaine spécifique] et à fournir un appui solide pour les analyses et les prises de décision ultérieures".

3.3 Définition des tâches

3.3.1 Clarification des descriptions de tâches

Fournissez une description claire et précise de chaque tâche afin de vous assurer que les agents comprennent bien les exigences spécifiques de la tâche. Par exemple, "Analyser les commentaires des utilisateurs sur [nom du produit] dans les médias sociaux au cours du dernier mois et en extraire les principaux commentaires et suggestions", "Prévoir les tendances dans [nom du secteur] au cours des trois prochains mois sur la base des données du marché", etc.

3.3.2 Affectation des agents de tâches

Assigner raisonnablement les tâches aux agents appropriés en fonction de leurs rôles et de leurs capacités. Vous pouvez spécifier directement l'agent responsable de l'exécution de la tâche, ou vous pouvez utiliser le mécanisme de processus de CrewAI pour permettre au système d'attribuer automatiquement les tâches en fonction de la disponibilité de l'agent, de son expertise et d'autres facteurs. Par exemple, assignez les tâches de collecte d'informations aux agents de collecte d'informations et les tâches d'analyse de données aux agents d'analyse de données.

3.3.3 Configuration des propriétés de la tâche

En fonction des exigences de la tâche, définissez d'autres attributs de la tâche, tels que le format de sortie attendu (JSON, modèle ou fichier Pydantic, etc.), la nécessité ou non d'une exécution asynchrone, la nécessité ou non d'une vérification manuelle des données, et définissez le contexte de la tâche. Par exemple, pour les tâches ayant des exigences élevées en matière de temps réel, elles peuvent être configurées pour une exécution asynchrone afin d'améliorer la vitesse de réponse globale du système ; pour les tâches décisionnelles importantes, la révision manuelle des données peut être activée afin de garantir l'exactitude des résultats.

3.4 Outils d'intégration

3.4.1 Choisir le bon outil

Choisissez le bon outil pour la tâche à accomplir parmi la riche bibliothèque d'outils fournis par CrewAI, tels que ceux pour la recherche sur le web. WebsiteSearchToolLe FileReadToolVoici quelques exemples d'analyses de données utilisées dans le cadre de l'enquête sur la santé publique. CSVSearchTool etc. Des outils personnalisés peuvent également être créés en fonction des besoins pour répondre aux exigences uniques de tâches spécifiques.

3.4.2 Intégration des outils aux agents et aux tâches

Attribuez les outils sélectionnés aux agents appropriés afin qu'ils puissent les invoquer lors de l'exécution des tâches. Lors de la définition d'une tâche, spécifiez explicitement les outils à utiliser pour la tâche afin de garantir que les outils sont étroitement intégrés à la tâche et qu'ils fonctionnent ensemble. Par exemple, dans le cadre d'une tâche de collecte d'informations, l'agent chargé de la collecte des informations doit être équipé de l'outil WebsiteSearchTool répondre en chantant DirectorySearchToolpour lui permettre d'accéder aux informations contenues dans les pages web et les catalogues locaux.

3.5 Formation des équipes

3.5.1 Agents combinés

Combiner des agents ayant des rôles et des compétences différents pour former une équipe collaborative. Veillez à ce que les membres de l'équipe aient des rôles complémentaires et soient capables de travailler ensemble sur des tâches complexes. Par exemple, une équipe peut être composée d'agents ayant des rôles différents, tels que des collecteurs d'informations, des analystes de données, des créateurs de contenu, etc., chacun ayant sa propre expertise, et travaillant ensemble pour atteindre les objectifs du projet.

3.5.2 Définir les processus d'équipe

En fonction des caractéristiques et des exigences des tâches, choisissez un processus d'équipe approprié, tel qu'un processus séquentiel ou un processus hiérarchique. Les processus séquentiels conviennent aux scénarios dans lesquels il existe un ordre de priorité clair entre les tâches, et les agents exécutent les tâches de manière séquentielle dans un ordre prédéterminé ; les processus hiérarchiques conviennent aux tâches complexes qui nécessitent une gestion et une coordination, et les tâches sont assignées et supervisées par des agents d'encadrement.

3.5.3 Configuration des propriétés de l'équipe

En fonction des besoins de l'équipe, définissez divers attributs de l'équipe, tels que le niveau de détail de la journalisation, le taux de requête maximal, les paramètres linguistiques, la configuration de la mémoire et du cache, et le partage ou non des informations de l'équipe. Une configuration raisonnable des attributs de l'équipe peut optimiser l'efficacité opérationnelle de l'équipe et répondre aux besoins de différents scénarios.

3.6 Exécution des tâches et suivi

3.6.1 Initier l'attribution des tâches à l'équipe

utiliser kickoff() lance le processus d'exécution des tâches de l'équipe, et le système conduit l'agent à commencer à travailler conformément au processus défini et à l'affectation des tâches. Au cours du processus d'exécution de la tâche, la progression de la tâche peut être suivie en temps réel grâce à la journalisation et à la sortie de la console.

3.6.2 Suivi de l'exécution des tâches

En utilisant la fonction d'enregistrement et les outils de surveillance connexes fournis par CrewAI, nous prêtons une attention particulière à l'état d'exécution des tâches, aux étapes d'opération des agents, aux résultats de sortie et à d'autres informations. Grâce à une surveillance détaillée, les problèmes susceptibles de survenir au cours de l'exécution des tâches, tels qu'une erreur d'exécution de l'agent, un dépassement du délai d'exécution de la tâche, une consommation excessive de ressources, etc.

3.6.3 Traitement des résultats de l'exécution des tâches

À la fin de l'exécution de la tâche, les résultats sont saisis et traités. En fonction du format de sortie prévu pour la tâche, les résultats sont analysés afin d'en extraire des informations utiles pour la prise de décision ou le traitement ultérieur. Parallèlement, sur la base des résultats de l'exécution de la tâche et des problèmes constatés lors du contrôle, il convient d'apporter les ajustements et les optimisations nécessaires à la configuration de l'agent, de la tâche ou de l'équipe afin d'améliorer les performances et la précision du système.

4. étude de cas : application de CrewAI dans un projet réel

4.1 Système de service à la clientèle intelligent

4.1.1 Architecture du système et rôles des agents

Dans le système de service client intelligent, plusieurs agents sont construits pour simuler le flux de travail du service client humain. Il s'agit de l'agent de réception des questions de l'utilisateur, de l'agent de classification des questions, de l'agent de recherche d'informations, de l'agent de génération de réponses et de l'agent de révision des réponses. L'agent de réception des problèmes de l'utilisateur est chargé de recevoir les problèmes de consultation de l'utilisateur et de les transmettre à l'agent de classification des problèmes ; l'agent de classification des problèmes les attribue à l'agent de recherche d'informations correspondant en fonction du type de problème ; l'agent de recherche d'informations utilise divers outils (tels que l'outil de recherche de base de connaissances, l'outil de recherche de base de données, etc.) pour trouver les informations pertinentes ; l'agent de génération de réponses génère la réponse préliminaire en fonction des informations demandées ; l'agent de vérification des réponses vérifie et optimise la réponse générée pour s'assurer qu'elle ne pose pas de problème. L'agent de génération de réponses génère des réponses préliminaires sur la base des informations demandées ; l'agent de révision de réponses examine et optimise les réponses générées pour s'assurer de leur exactitude et de leur qualité.

4.1.2 Flux des tâches et collaboration

Lorsqu'un utilisateur pose une question, l'agent de réception des questions de l'utilisateur enregistre la question et la transmet à l'agent de classification des questions. L'agent de classification des problèmes classe le problème en différents types, tels que les problèmes courants, les problèmes techniques, les problèmes après-vente, etc. au moyen d'une analyse des mots-clés, d'une compréhension sémantique et d'autres techniques. Ensuite, en fonction du résultat de la classification, le problème est attribué à l'agent de recherche d'informations correspondant. L'agent d'interrogation recherche les informations pertinentes dans la base de connaissances, la base de données ou les ressources externes en fonction du type de problème. Par exemple, pour les problèmes courants, les réponses sont extraites directement de la base de connaissances ; pour les problèmes techniques, il peut être nécessaire d'interroger des documents techniques ou d'interagir avec des systèmes experts techniques. Sur la base des informations demandées, l'agent de génération de réponses utilise des techniques de génération de langage naturel pour transformer les informations en réponses claires et compréhensibles. Enfin, l'agent de révision des réponses effectue une vérification grammaticale, un examen logique et une évaluation de la politesse de la réponse, ainsi qu'une optimisation et une modification supplémentaires si nécessaire. Tout au long du processus, les agents collaborent efficacement grâce au mécanisme de communication et aux capacités de planification des tâches de CrewAI afin de fournir aux utilisateurs des réponses rapides et précises.

4.2 Assistant de création de contenu intelligent

4.2.1 Fonctions des agents et division du travail

L'assistant intelligent de création de contenu se compose de plusieurs agents travaillant ensemble, notamment un agent de planification du thème, un agent de collecte de matériel, un agent de génération de contenu et un agent d'embellissement du contenu. L'agent de planification du thème est chargé de déterminer le thème de la création en fonction des besoins des utilisateurs ou des tendances du marché ; l'agent de collecte des matériaux recueille les matériaux pertinents, tels que les articles, les images, les données, etc., à l'aide d'outils de recherche sur le web et d'outils d'interrogation de bases de données ; l'agent de génération de contenu crée le premier projet sur la base du thème et des matériaux à l'aide d'algorithmes de génération de langage naturel ; et l'agent de retouche du contenu procède à l'optimisation grammaticale, à l'ajustement du style et à la combinaison logique du premier projet, de manière à mieux répondre aux exigences et aux attentes des utilisateurs. L'agent de retouche du contenu optimise la grammaire, le style et la logique de la première version pour la rendre plus conforme aux exigences et aux attentes des utilisateurs.

4.2.2 Processus créatifs et mécanismes synergiques

Lorsqu'un utilisateur présente une demande de création (par exemple, écrire un article sur [un sujet spécifique]), l'agent de planification des sujets analyse et planifie d'abord le sujet, en déterminant le cadre général et le contenu clé de l'article. Ensuite, l'agent de collecte de matériel recherche des articles, des rapports de recherche, des cas et d'autres documents pertinents sur l'internet en fonction du thème, les organise et les transmet à l'agent de génération de contenu. L'agent de génération de contenu génère la première version de l'article sur la base du cadre thématique et des documents collectés, à l'aide de modèles d'apprentissage profond. Par exemple, il peut générer des paragraphes et organiser la structure de l'article en fonction des idées et des données contenues dans le matériel. Enfin, l'agent de retouche du contenu effectue une retouche complète du premier projet, en vérifiant les erreurs grammaticales, en optimisant la sélection du vocabulaire et en ajustant la structure des phrases pour rendre l'article plus fluide, plus lisse et plus attrayant. Tout au long du processus de création, les agents échangent des informations et des commentaires en temps réel grâce aux mécanismes de communication et de collaboration de CrewAI, afin d'assurer le bon déroulement du travail de création.

4.3 Systèmes intelligents de prise de décision en matière d'investissement

4.3.1 Composition du système et responsabilités des agents

Le système intelligent de prise de décision en matière d'investissement se compose d'un agent de collecte de données de marché, d'un agent d'analyse de données, d'un agent d'évaluation des risques, d'un agent de recommandation de stratégie d'investissement et d'un agent d'optimisation de portefeuille. L'agent de collecte des données de marché est chargé de collecter des données de marché en temps réel à partir de diverses sources de données financières (par exemple, les bourses, les sites web d'informations financières, les bases de données financières, etc.), y compris les cours des actions, les chiffres d'affaires, les indicateurs macroéconomiques, etc. ; l'agent d'analyse des données nettoie, organise et analyse les données collectées pour en extraire des informations précieuses, telles que les tendances du marché, la dynamique du secteur, les conditions financières des entreprises, etc. Sur la base des résultats de l'analyse des données, l'agent d'évaluation des risques applique le modèle d'évaluation des risques pour évaluer le niveau de risque des cibles d'investissement ; l'agent de recommandation de la stratégie d'investissement recommande des stratégies d'investissement appropriées, telles que l'investissement à long terme, la spéculation à court terme, l'investissement diversifié, etc., sur la base des conditions du marché et des préférences des investisseurs en matière de risque ; l'agent d'optimisation du portefeuille optimise le portefeuille d'investissement sur la base des stratégies d'investissement recommandées et détermine le ratio optimal d'allocation d'actifs.

4.3.2 Processus de décision et modes de collaboration

Les agents de collecte de données de marché recueillent en permanence des données actualisées sur le marché et les transmettent aux agents d'analyse de données. L'agent chargé de l'analyse des données procède à une analyse approfondie des données, notamment en prévoyant les mouvements des prix des actions grâce à des méthodes d'analyse technique et en évaluant la valeur intrinsèque d'une entreprise grâce à l'analyse fondamentale. L'agent d'évaluation des risques évalue le niveau de risque des différents objectifs d'investissement sur la base des résultats de l'analyse des données, combinés à des données historiques et à des modèles de risque. L'agent chargé de recommander des stratégies d'investissement recommande des stratégies d'investissement personnalisées aux investisseurs, en tenant compte des tendances du marché, des résultats de l'évaluation des risques et de l'appétit pour le risque des investisseurs. Par exemple, pour les investisseurs ayant une plus grande propension au risque, il peut recommander une plus grande proportion d'investissements en actions ; pour les investisseurs conservateurs, il peut recommander un portefeuille d'obligations et de fonds plus solide. Enfin, l'agent d'optimisation du portefeuille applique un algorithme d'optimisation mathématique basé sur les stratégies d'investissement recommandées pour déterminer l'allocation optimale du portefeuille afin de maximiser les rendements et de minimiser les risques. Tout au long du processus de prise de décision, chaque agent travaille en étroite collaboration pour obtenir un flux de données efficace et une prise de décision scientifique grâce au mécanisme d'orchestration des processus et de communication de CrewAI.

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...