Aprendizagem pessoal com IA
e orientação prática
Recomendação de recursos 1

Guia para a criação de sistemas multiagentes com base na CrewAI

1. introdução

No campo da Inteligência Artificial, o sistema Multi Agent está se tornando uma tecnologia essencial para resolver problemas complexos e realizar uma colaboração eficiente, e o CrewAI, como uma poderosa ferramenta de colaboração Multi Agent, oferece uma maneira conveniente para os desenvolvedores criarem sistemas de colaboração inteligentes. Neste artigo, apresentaremos como criar um sistema multiagente baseado no CrewAI.

2. conceitos centrais da CrewAI em detalhes

2.1 Agente

2.1.1 Definição e função do agente

Os agentes são unidades autônomas na CrewAI com a capacidade de executar tarefas, tomar decisões e se comunicar com outros agentes. Eles atuam como membros de uma equipe, cada um assumindo uma função específica, como pesquisador, escritor ou suporte ao cliente, e trabalhando juntos para contribuir com as metas da equipe.

2.1.2 Propriedades do proxy

  • Função Esclareça a posição funcional do agente na equipe e determine os tipos de tarefas que ele está mais apto a realizar. Por exemplo, um agente na função de pesquisador se destaca na coleta e análise de informações, enquanto um agente na função de escritor se concentra na criação de conteúdo.
  • Meta O processo de tomada de decisão que orienta um agente é uma meta individual que o agente se esforça para atingir. Por exemplo, a meta de um agente analista de dados pode ser extrair insights acionáveis para apoiar decisões comerciais.
  • História de fundo Informações contextuais: Melhore a dinâmica da interação e da colaboração fornecendo informações contextuais detalhadas sobre a função e os objetivos do agente. No caso de um analista de dados, por exemplo, a história de fundo poderia ser "Você é um analista de dados em uma grande empresa. Você é responsável por analisar dados e fornecer insights para a empresa. Atualmente, você está trabalhando em um projeto para analisar o desempenho de nossas campanhas de marketing."
  • LLM (opcional) Modelo de idioma: Indica o modelo de idioma para a execução do agente. Se não for especificado, o padrão é executar o agente a partir do modelo de idioma OPENAI_MODEL_NAME Obtenha o nome do modelo na variável de ambiente, caso contrário, o padrão é "gpt-4". Os desenvolvedores podem escolher o modelo de linguagem apropriado para atender aos requisitos de processamento de diferentes tarefas.
  • Ferramentas (opcional) Conjunto de recursos ou conjuntos de recursos disponíveis para um agente, geralmente instâncias de classes personalizadas compatíveis com o ambiente de execução, com uma lista vazia de valores padrão. Essas ferramentas podem ampliar os recursos de um agente para permitir que ele execute operações como pesquisa na Web, análise de dados e assim por diante.
  • LLM para função de chamada (opcional) Modelo de linguagem: Especifica o modelo de linguagem que lida com essa chamada de ferramenta de agente, substitui a chamada de função de equipe LLM se for passada, o padrão é Nenhum. Ao configurar essa propriedade de forma flexível, o desenvolvedor pode controlar com mais precisão o comportamento de invocação da ferramenta do agente.
  • Número máximo de iterações (opcional) Número máximo de iterações que o agente pode executar antes de ser forçado a dar a melhor resposta; o valor padrão é 25. A definição adequada desse parâmetro ajuda a controlar a profundidade e a eficiência da execução da tarefa.
  • Número máximo de solicitações (opcional) Número máximo de solicitações por minuto que o proxy pode executar, usado para evitar a limitação da taxa; o valor padrão é Nenhum. O desenvolvedor pode fazer configurações de acordo com a situação real para garantir a operação estável do sistema.
  • Tempo máximo de execução (opcional) Duração máxima de tempo que o agente pode executar uma tarefa; o valor padrão é Nenhumindica que não há limite máximo de tempo de execução. Esse atributo pode ser usado para controlar o período de execução de uma tarefa para evitar que ela ocupe recursos por muito tempo.
  • Modo detalhado (opcional) : Defina-o como Verdadeiro O registrador interno configurável fornece registros de execução detalhados para depuração e monitoramento; o valor padrão é Falso. Durante o desenvolvimento e a otimização, a ativação do modo detalhado ajuda a localizar problemas rapidamente.
  • Permissão para delegar (opcional) Agentes podem delegar tarefas ou problemas uns aos outros, garantindo que as tarefas sejam tratadas pelo agente mais adequado, com um valor padrão de Verdadeiro. Esse recurso promove a colaboração flexível dentro da equipe e melhora a precisão e a eficiência do processamento de tarefas.
  • Retorno de chamada da etapa (opcional) Funções chamadas após cada etapa do agente, que podem ser usadas para registrar operações ou executar outras operações, substituirão as funções da equipe step_callback. Os desenvolvedores podem implementar monitoramento personalizado e lógica de processamento usando essa função de retorno de chamada.
  • Cache (opcional) Cache de uso de ferramentas: indica se o proxy usa o cache de uso de ferramentas, com um valor padrão de Verdadeiro. O mecanismo de cache ajuda a aumentar a eficiência da execução da tarefa e a reduzir os cálculos duplicados.

2.1.3 Criação de agentes

Os agentes podem interagir uns com os outros usando os mecanismos de delegação e comunicação incorporados do CrewAI. Isso permite o gerenciamento dinâmico de tarefas e a solução de problemas dentro das equipes.

Para criar um proxy, é comum inicializá-lo com as propriedades necessárias Agente instância da classe. A seguir, um exemplo de um conceito com todos os atributos:

from crewai import Agent
agente = Agente(
role="Analista de dados",
objetivo="Extrair insights acionáveis",
backstory="""Você é um analista de dados em uma grande empresa.
Você é responsável por analisar dados e fornecer insights para a empresa.
Atualmente, você está trabalhando em um projeto para analisar o desempenho de nossas campanhas de marketing.""" ,
tools=[my_tool1, my_tool2], # Opcional, o padrão é uma lista vazia
llm=my_llm, # Opcional
function_calling_llm=my_llm, # Opcional
max_iter=15, # Opcional
max_rpm=None, # opcional
verbose=True, # opcional
allow_delegation=True, # opcional
step_callback=my_intermediate_step_callback, # opcional
cache=True, # opcional
)

2.2 Tarefas

2.2.1 Definição de tarefas e colaboração

Na estrutura do CrewAI, uma tarefa é um trabalho específico que um agente precisa concluir, contendo vários detalhes necessários para a execução, como uma descrição clara, o agente responsável pela execução e as ferramentas necessárias. As tarefas podem ser colaborativas, permitindo que vários agentes trabalhem juntos por meio do gerenciamento de atributos e da orquestração de processos para aumentar a eficiência do trabalho em equipe.

2.2.2 Atributos das tarefas

  • Descrição Declaração clara e concisa do conteúdo da tarefa para que o agente saiba exatamente o que precisa ser feito. Por exemplo, "Encontre e resuma as notícias mais recentes e relevantes sobre IA".
  • Agente Agentes: os agentes responsáveis pela execução da tarefa podem ser especificados diretamente ou atribuídos pelos processos da tripulação com base em funções, disponibilidade e outros fatores. Isso garante que as tarefas encontrem o executor certo.
  • Resultado esperado Descrição da tarefa: Uma descrição detalhada da tarefa depois de concluída, para que o agente tenha clareza sobre as metas e os resultados desejados da tarefa. Por exemplo, "Um resumo em forma de lista com marcadores das 5 notícias mais importantes sobre IA".
  • Ferramentas (opcional) Funções ou recursos usados pelos agentes para executar tarefas podem melhorar o desempenho da tarefa e a interação do agente. Ao escolher as ferramentas certas, os agentes podem concluir as tarefas com mais eficiência.
  • Execução assíncrona (opcional) Tarefas: As tarefas serão executadas de forma assíncrona quando definidas, permitindo que outras tarefas continuem avançando sem esperar pela conclusão, para tarefas que demoram muito ou têm pouco impacto na execução de tarefas subsequentes.
  • Contexto (opcional) Especificar as tarefas cujo resultado deve ser usado como contexto para essa tarefa, esclarecer as dependências entre as tarefas e permitir o fornecimento e a utilização eficazes do resultado da tarefa.
  • Configuração (opcional) Detalhes adicionais de configuração do agente usado para executar a tarefa oferecem a flexibilidade necessária para personalizar ainda mais a execução da tarefa.
  • Saída JSON (opcional) Para gerar objetos JSON, é necessária a API OpenAI e somente um formato de saída pode ser definido. Essa propriedade facilita a interação e a integração de dados com outros sistemas.
  • Saída Pydantic (opcional) Para gerar objetos do modelo Pydantic, a API OpenAI também é necessária, e somente um formato de saída pode ser definido. Os desenvolvedores podem escolher o formato de saída apropriado de acordo com suas necessidades reais.
  • Arquivo de saída (opcional) Salva a saída da tarefa em um arquivo, se comparada com o valor de Saída JSON talvez Saída Pydantic Usados em conjunto, você pode especificar como a saída é salva. Isso facilita a persistência dos dados e a análise posterior.
  • Callback (opcional) Função chamável do Python: Uma função chamável do Python que é executada após a conclusão de uma tarefa e pode ser usada para acionar ações ou notificações com base nos resultados da tarefa, como o envio de um e-mail.
  • Entrada manual (opcional) Indicação: Indica se a tarefa requer feedback manual eventual, útil para tarefas que exigem supervisão manual para garantir a precisão e a confiabilidade dos resultados da tarefa.

2.2.3 Uso de ferramentas para criar tarefas

Depois de entender as propriedades básicas de uma tarefa, vamos explorar mais a fundo como criar uma tarefa usando a ferramenta. Veja abaixo um exemplo:

importar os
os.environ["OPENAI_API_KEY"] = "Sua chave"
os.environ["SERPER_API_KEY"] = "Sua chave" # chave da API do serper.dev
from crewai import Agent, Task, Crew
from crewai_tools import SerperDevTool
research_agent = Agent(
função="Pesquisador",
objetivo="Encontrar e resumir as últimas notícias sobre IA",
backstory="""Você é um pesquisador em uma grande empresa.
Você é responsável por analisar dados e fornecer insights para a empresa.""" ,
verbose=True
)
search_tool = SerperDevTool()
task = Task(
description="Localizar e resumir as últimas notícias sobre Inteligência Artificial",
expected_output="Resumir a lista com marcadores dos 5 itens mais importantes de notícias sobre IA", agent=research_agent
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task],
verbose=2
)
resultado = crew.kickoff()
print(result)

2.2.4 Criação de tarefas

A criação de uma tarefa envolve a definição de seu escopo, do agente responsável e de quaisquer atributos adicionais para flexibilidade:

from crewai import Task
task = Task(
description="Encontrar e resumir as notícias mais recentes e relevantes sobre Inteligência Artificial",
agent=sales_agent
)

As atribuições de tarefas podem ser atribuídas diretamente, especificando um agir em nome de alguém em uma posição de responsabilidadeOu deixe laminação do processo CrewAI é determinado pela função, disponibilidade, etc.

2.2.5 Dependências de tarefas

No CrewAI, a saída de uma tarefa é automaticamente passada para a próxima, o que pode ser útil quando há uma tarefa que depende da saída de outra tarefa, mas não é executada imediatamente após ela. Isso é feito por meio da função Contexto (textual) Conclusão do atributo:

research_ai_task = Task(
description="Localizar e resumir as notícias mais recentes sobre IA",
expected_output="Resumir a lista com marcadores dos 5 principais itens de notícias de IA mais importantes", async_execution=True, async_execution = True, async_task = Task(
async_execution=True, agent=research_agent, async_execution=True, and
agente=agente_de_pesquisa,
tools=[search_tool]
)
research_ops_task = Task(
description="Localizar e resumir as últimas notícias sobre operações de IA",
expected_output="Resumir a lista com marcadores das 5 notícias mais importantes sobre operações de IA",
async_execution=True,
agent=research_agent,
tools=[search_tool]
)
write_blog_task = Task(
description="Escreva uma postagem completa no blog sobre a importância da IA e suas últimas notícias",
expected_output="Publicação completa de 4 parágrafos no blog",
agente=agente_escritor,
context=[research_ai_task, research_ops_task]
)

2.2.6 Execução assíncrona

As tarefas são executadas de forma assíncrona, o que significa que o Crew não espera que elas sejam concluídas antes de passar para a próxima tarefa. Isso é útil para tarefas que levam muito tempo para serem concluídas ou que não são essenciais para a execução da próxima tarefa. Você pode usar a função Contexto (textual) for definido em uma tarefa futura, ele deverá aguardar a conclusão da saída da tarefa assíncrona.

list_ideas = Task(
description="Explore 5 ideias interessantes para artigos sobre inteligência artificial." ,
expected_output="Uma lista com marcadores de 5 ideias de artigos." ,
agent=researcher, , async_execution="Uma lista de símbolos de projeto contendo 5 ideias de artigos.
async_execution=True # será executado de forma assíncrona
)
list_important_history = Task(
description="Pesquise a história da IA e me diga quais são os 5 eventos mais importantes." ,
expected_output="Uma lista com marcadores contendo os 5 eventos importantes." ,
agent=researcher,
async_execution=True # será executado de forma assíncrona
)
write_article = Task(
description="Escreva um artigo sobre inteligência artificial, sua história e ideias interessantes." ,
expected_output="Um artigo de 4 parágrafos sobre inteligência artificial." ,
agent=writer,
context=[list_ideas, list_important_history] O # aguardará a conclusão do resultado de ambas as tarefas
)

2.2.7 Mecanismos de retorno de chamada

Executa uma função de retorno de chamada após a conclusão da tarefa, permitindo que ações ou notificações sejam acionadas com base nos resultados da tarefa.

def callback_function(output: TaskOutput).
# Executar alguma ação após a conclusão da tarefa
# Por exemplo, enviar um e-mail para o gerente
print(f"""
Conclusão da tarefa!
Tarefa: {output.description}
Saída: {output.raw_output}
""")
research_task = Task(
description="Localizar e resumir as últimas notícias sobre IA",
expected_output="Faça um resumo em forma de lista com marcadores dos 5 itens mais importantes das notícias sobre IA",
agent=research_agent,
tools=[search_tool],
callback=callback_function
)

2.2.8 Acesso à saída específica da tarefa

Depois que um grupo de Crews for executado, você poderá executá-los usando a função saída acessa a saída de uma tarefa específica:

task1 = Task(
description="Localizar e resumir as últimas notícias sobre Inteligência Artificial",
expected_output="Resumir a lista com marcadores dos 5 itens mais importantes de notícias sobre IA",
agent=research_agent,
tools=[search_tool]
)
crew = Crew(
agents=[research_agent],
tasks=[task1, task2, task3],
verbose=2
)
resultado = crew.kickoff()
print(f"""
Conclusão da tarefa!
Tarefa: {task1.output.description}
Saída: {task1.output.raw_output}
""")

2.2.9 Mecanismos de substituição de ferramentas

A especificação de ferramentas em uma tarefa permite o ajuste dinâmico dos recursos do agente, destacando a flexibilidade da CrewAI.

2.2.10 Mecanismos de validação e tratamento de erros

Existem mecanismos de validação para garantir a robustez e a confiabilidade dos atributos da tarefa ao criar e executar tarefas. Essas validações incluem, mas não estão limitadas a:

  • Certifique-se de que apenas um tipo de saída seja definido por tarefa para manter claras as expectativas de saída.
  • Prevenção da distribuição manual id para manter a integridade do sistema de identificador exclusivo.

Essas validações ajudam a manter a consistência e a confiabilidade da execução de tarefas na estrutura da CrewAI.

2.3 Ferramentas

2.3.1 Função e tipos de ferramentas

A ferramenta CrewAI capacita os agentes com uma variedade de recursos, incluindo pesquisa na Web, análise de dados, geração de conteúdo e delegação de tarefas, permitindo que os agentes realizem uma variedade de operações complexas que saltam de simples pesquisas para interações complexas e trabalho em equipe eficaz.

2.3.2 Principais recursos da ferramenta

  • Utilidade Desenvolvido para a tarefa, ele abrange os requisitos funcionais de várias áreas, como pesquisa na Web, análise de dados, geração de conteúdo etc., para atender às necessidades dos agentes que trabalham em diferentes cenários.
  • Integração Capacidade de se integrar perfeitamente aos fluxos de trabalho e trabalhar em conjunto com agentes e tarefas para aprimorar os recursos gerais dos agentes e permitir uma colaboração eficiente.
  • Personalização Ferramentas de configuração: fornece a flexibilidade para que os desenvolvedores desenvolvam ferramentas sob medida para atender a necessidades específicas ou usem ferramentas existentes para personalizar a configuração de acordo com as necessidades reais do agente.
  • Tratamento de erros Mecanismo avançado de tratamento de erros: um mecanismo avançado de tratamento de erros garante que a ferramenta trate as exceções de forma elegante quando elas forem encontradas durante a operação, assegurando o bom funcionamento do sistema.
  • Mecanismo de cache Cache inteligente: apresenta cache inteligente para otimizar o desempenho e reduzir operações redundantes. Os desenvolvedores também podem usar o cache_function oferece um controle mais refinado sobre o mecanismo de cache, melhorando ainda mais a eficiência.

2.3.3 Uso da ferramenta CrewAI

Para aprimorar os recursos do agente com a ferramenta CrewAI, você precisa instalar primeiro o kit de ferramentas adicional:

pip install 'crewai[tools]'

Abaixo está um caso de uso:

importar os
from crewai import Agent, Task, Crew
# import CrewAI tools
from crewai_tools import (
DirectoryReadTool, FileReadTool, CrewAI_tools
FileReadTool, SerperDevTool, SerperDevTool, SerperDevTool
SerperDevTool, WebsiteSearchTool
WebsiteSearchTool
)
# Definição da chave da API
os.environ["SERPER_API_KEY"] = "Sua chave" # Chave da API do serper.dev
os.environ["OPENAI_API_KEY"] = "Sua chave"
Ferramenta de instanciação do #
docs_tool = DirectoryReadTool(directory='. /blog-posts')
file_tool = FileReadTool()
search_tool = SerperDevTool()
web_rag_tool = WebsiteSearchTool()
# Criação de um agente
researcher = Agent(
role="Analista de pesquisa de mercado",
goal="Fornece análises de mercado atualizadas sobre o setor de IA",
backstory="Um analista especializado com um olhar atento às tendências do mercado." ,
tools=[search_tool, web_rag_tool],
verbose=True
)
escritor = Agente(
role="Content Writer", , goal="Escreve posts de blog envolventes sobre o setor de IA", verbose=True )
goal="Escreve posts de blog envolventes sobre o setor de IA",
backstory="Um escritor habilidoso com paixão por tecnologia." ,
tools=[docs_tool, file_tool],
verbose=True
)
# Definir a tarefa
research = Task(
description="Pesquisar e fornecer um resumo das últimas tendências do setor de IA." ,
expected_output="Um resumo dos três principais desenvolvimentos quentes no setor de IA e fornecer uma perspectiva exclusiva sobre sua importância." ,
agent=researcher
)
write = Task(
description="Escreva uma publicação de blog envolvente com base no resumo do analista de pesquisa. Inspire-se nas últimas postagens de blog do catálogo." ,
expected_output="Uma postagem de blog de quatro parágrafos apresentada em formato markdown que seja envolvente, informativa e fácil de entender, evitando terminologia complexa." ,
agent=writer,
output_file='blog-posts/new_post.md' # A publicação final do blog será salva aqui
)
# Montagem da equipe
crew = Crew(
agentes=[pesquisador, escritor],
tasks=[research, write],
verbose=2
)
# Executar a tarefa
equipe.kickoff()

2.3.4 Criação de suas próprias ferramentas

O kit de ferramentas precisa ser instalado primeiro:

pip install 'crewai[tools]'
  • subclassificação BaseTool : por herança BaseTool os desenvolvedores podem criar ferramentas personalizadas. Você precisa definir o nome e a descrição da ferramenta e implementar a classe Executar para definir a lógica funcional específica da ferramenta. Exemplo:
from crewai_tools import BaseTool
class MyCustomTool(BaseTool).
name: str = "Nome da minha ferramenta"
description: str = "Descrição clara da finalidade dessa ferramenta; seu agente precisará dessas informações para usá-la."
def _run(self, argument: str) -> str.
Implementação do # aqui
return "O resultado da ferramenta personalizada"
  • Utilizar ferramenta decorador : Uso ferramenta Os decoradores permitem a criação mais limpa de ferramentas personalizadas. Basta definir a função, adicionar a tag @tool e fornecer apenas o nome e a descrição da ferramenta. Exemplo:
from crewai_tools import tool
@tool("Nome da minha ferramenta")
def my_tool(question: str) -> str.
"""Descreve claramente para que essa ferramenta é usada, e seu agente precisará dessas informações para usá-la.""""
# A lógica da função está aqui
return "O resultado de sua ferramenta personalizada"
  • Mecanismos de cache personalizados A ferramenta tem a opção de realizar cache_function para ajustar o comportamento do cache. A determinação de quando armazenar em cache os resultados com base em condições específicas oferece controle refinado sobre a lógica de cache. Exemplo:
from crewai_tools import tool
@tool
def multiplication_tool(primeiro_número: int, segundo_número: int) -> str.
"""Útil quando você precisa multiplicar dois números juntos.""""
return primeiro_número * segundo_número
def cache_func(args, result).
# Nesse caso, o resultado é armazenado em cache somente se o resultado for um múltiplo de 2
cache = result % 2 == 0
return cache
multiplication_tool.cache_function = cache_func

2.3.5 Uso da ferramenta LangChain

O CrewAI se integra perfeitamente ao kit de ferramentas da LangChain, permitindo que os desenvolvedores aproveitem as ferramentas internas fornecidas pela LangChain, como GoogleSerperAPIWrapper etc., ampliam os recursos do agente integrando-o ao sistema CrewAI por meio de uma configuração simples. Exemplo:

from crewai import Agent
from langchain.agents import Tool
from langchain.utilities import GoogleSerperAPIWrapper
# Configuração da chave da API
os.environ["SERPER_API_KEY"] = "Sua chave"
search = GoogleSerperAPIWrapper()
# Criar e atribuir a ferramenta de pesquisa ao agente
serper_tool = Tool(
name="Respostas intermediárias",
func=search.run,
description="Ferramenta para consultas baseadas em pesquisa"
)
agente = Agente(
role="Analista de pesquisa",
goal="Fornecer análises de mercado atualizadas",
backstory="Um analista especializado com um olhar atento às tendências do mercado." ,
tools=[serper_tool]
)

2.4 Processo

2.4.1 Realização do processo

  • Sequencial Tarefas: As tarefas são executadas sequencialmente em uma ordem predefinida, com o resultado de uma tarefa servindo como contexto para a próxima, garantindo a execução ordenada e coerente da tarefa.
  • Hierárquico Organize tarefas em níveis de gerenciamento especificando o modelo de linguagem de gerenciamento (manager_llm) para habilitar o processo. O agente gerente é responsável por supervisionar a execução da tarefa, incluindo o planejamento, a delegação e a validação de tarefas, que são atribuídas com base nos recursos do agente, e não pré-atribuídas.
  • Processo de consenso (planejado) Gerenciamento de tarefas: visa permitir a tomada de decisões colaborativa entre agentes na execução de tarefas e introduzir uma abordagem democrática ao gerenciamento de tarefas, ainda não implementada na base de código, mas que reflete a busca da CrewAI por desenvolvimento e inovação contínuos.

2.4.2 A função do processo no trabalho em equipe

Os processos permitem que os agentes individuais funcionem como um todo coeso, simplificando os esforços de colaboração para atingir objetivos comuns de forma eficiente e coordenada. Por meio de um projeto de processo sólido, as equipes são mais capazes de lidar com tarefas complexas e aumentar a produtividade geral.

2.4.3 Atribuição de processos ao gerente

Ao criar um Manager, o desenvolvedor pode especificar o tipo de processo para definir a política de execução. Para processos hierárquicos, você deve definir para o agente gerente o tipo de processo manager_llm. Exemplo:

de crewai import Crew, Process
de langchain_openai import ChatOpenAI
Processo sequencial #
equipe = equipe(
agentes=meus_agentes,
tasks=my_tasks,
process=Process.sequential
)
# processo hierárquico para garantir a disponibilidade manager_llm
tripulação = Tripulação(
agentes=meus_agentes,
tasks=my_tasks,
process=Process.hierarchical,
manager_llm=ChatOpenAI(model="gpt-4")
)

2.4.4 Características adicionais da tarefa

  • Execução assíncrona (Execução assíncrona) Execução de tarefas: permite que as tarefas sejam executadas de forma assíncrona, possibilitando o processamento paralelo e melhorando a produtividade geral da equipe. Os desenvolvedores podem escolher com flexibilidade métodos de execução síncronos ou assíncronos de acordo com as características da tarefa.
  • Revisão de insumos humanos (HIR) Revisão manual opcional dos resultados da tarefa para garantir a qualidade e a precisão antes de finalizar os resultados da tarefa, introduzindo uma camada adicional de supervisão para garantir a confiabilidade da execução da tarefa.
  • Personalização de saída A tarefa suporta uma variedade de formatos de saída, como JSON (output_json), o modelo Pydantic (output_pydantic) e saída de arquivo (arquivo_de_saída) para atender a diferentes necessidades e facilitar o processamento e a utilização dos dados.

2,5 Equipes

2.5.1 Atributos da equipe

  • Tarefas Lista de tarefas atribuídas à equipe que especifica o que a equipe precisa realizar.
  • Agentes Agente: Uma lista de agentes pertencentes à equipe, definindo a composição dos membros da equipe, cada um com suas funções e capacidades exclusivas.
  • Processo (opcional) Processo hierárquico: O tipo de processo que a equipe segue, como um processo sequencial ou hierárquico, determina a ordem e a maneira pela qual as tarefas são executadas.
  • Nível de detalhe (opcional) Nível de detalhe do registro em log durante a execução, facilitando para os desenvolvedores a obtenção de informações suficientes para depuração e monitoramento.
  • Manager LLM (opcional, necessário para o processo escalonado) Modelo de linguagem usado por agentes gerentes em um processo hierárquico para gerenciar o processo de execução de tarefas.
  • Chamada de função LLM (opcional) Se for repassado, a equipe usará esse LLM para fazer chamadas de recursos para a ferramenta para todos os agentes, que podem ser configurados de forma flexível pelo desenvolvedor, conforme necessário.
  • Configuração (opcional) Definições de configuração opcionais para as equipes Json talvez Dict[str, Any] O formato é fornecido para personalizar ainda mais o comportamento da equipe.
  • RPM máximo (opcional) Número máximo de solicitações que podem ser executadas por minuto durante a execução da equipe para evitar limitação de taxa; pode substituir as solicitações de agentes individuais max_rpm Configuração.
  • Idioma (opcional) Idioma: O idioma usado pela equipe, que é o inglês por padrão, pode ser ajustado de acordo com as necessidades reais.
  • Arquivos de idiomas (opcional) Caminhos de arquivo de idioma para equipes para facilitar o suporte a vários idiomas.
  • Memória (opcional) Memória executiva: Usada para armazenar memórias executivas (memórias físicas, de curto e longo prazo) para aumentar a capacidade de execução e aprendizado da equipe.
  • Cache (opcional) Cache: especifique se deve ou não usar o cache para armazenar os resultados da execução da ferramenta para melhorar a eficiência do processo.
  • Embedder (opcional) Configuração do incorporador: A configuração do incorporador usada pela equipe, principalmente para funções na memória, afeta a forma como os dados são incorporados e recuperados.
  • Saída total (opcional) Resultado final: Decida se a equipe retorna um resultado completo contendo todos os resultados da tarefa ou apenas o resultado final, para satisfazer diferentes necessidades de aquisição de resultados.
  • Retorno de chamada da etapa (opcional) Função chamada após cada etapa de cada agente para registrar operações ou executar outras operações que não substituem as específicas do agente step_callback.
  • Retornos de chamada de tarefa (opcional) Função de monitoramento: Uma função chamada após a conclusão de cada tarefa para monitorar ou executar outras ações após a tarefa.
  • Equipe compartilhada (opcional) Se as informações completas da equipe e a implementação são compartilhadas com a equipe do CrewAI para aprimorar a biblioteca e permitir o treinamento de modelos.
  • Arquivo de registro de saída (opcional) Se deve ou não criar um arquivo contendo a saída e a execução da equipe completa, é possível especificar o caminho e o nome do arquivo.

2.5.2 Exemplo de criação de uma equipe

Abaixo está um exemplo de uma equipe sendo montada, mostrando como agentes com funções e ferramentas complementares podem ser reunidos, tarefas atribuídas e processos selecionados:

from crewai import Crew, Agent, Task, Process
from langchain_community.tools import DuckDuckGoSearchRun
# Definir agentes com funções e ferramentas específicas
pesquisador = Agente(
função="Analista de pesquisa sênior",
objetivo="Descobrir tecnologias inovadoras de IA",
tools=[DuckDuckGoSearchRun()]
)
escritor = Agente(
role="Content Writer", goal="Escrever sobre tecnologias inovadoras de IA", tools=[DuckDuckGoSearchRun(]) ) writer = Agent(
objetivo="Escrever artigos envolventes sobre descobertas de IA", verbose=True)
verbose=True
)
# Criar uma tarefa para o agente
research_task = Task(
description="Identificar tecnologias inovadoras de IA",
agent=researcher
)
write_article_task = Tarefa(
description="Escrever artigos sobre as mais recentes tecnologias de IA", agent=writer )
agent=writer
)
# Montagem de uma equipe usando um processo sequencial
my_crew = Equipe(
agentes=[pesquisador, escritor],
tasks=[research_task, write_article_task],
process=Process.sequential,
full_output=True,
verbose=True,
)

2.5.3 Processo de execução da equipe

  • Sequencial Tarefas: As tarefas são executadas sequencialmente e o trabalho flui linearmente, o que é simples e intuitivo, e é adequado para cenários em que há uma sequência clara entre as tarefas.
  • Hierárquico O Agente Gerente coordena a equipe, delega tarefas e valida os resultados antes de prosseguir. Esse processo exige manager_llmEle é adequado para o gerenciamento e a atribuição de tarefas complexas, garantindo a execução eficiente de tarefas e o controle de qualidade.
  • Equipe de lançamento : Uso início() inicia um fluxo de trabalho da equipe, começa a executar a tarefa de acordo com o processo definido e obtém os resultados da execução da tarefa. Exemplo:
# Inicie a execução da tarefa da equipe
resultado = my_crew.kickoff()
print(result)

2.6 Memória

2.6.1 Componentes do sistema de memória

  • Memória de curto prazo (Short-term Memory) Armazenamento temporário de interações e resultados recentes: o armazenamento temporário de interações e resultados recentes permite que o agente recupere e use rapidamente as informações que estão intimamente relacionadas ao contexto atual, mantendo assim a coerência em um diálogo ou em uma sequência de tarefas e tomando decisões e respostas mais relevantes do ponto de vista contextual.
  • Memória de longo prazo (Long-term Memory) É um repositório de conhecimento que retém percepções e aprendizados valiosos de desempenhos anteriores. Com o passar do tempo, os agentes podem aprender com essa experiência e, gradualmente, construir e aprimorar seu sistema de conhecimento, o que, por sua vez, melhora suas capacidades futuras de tomada de decisão e solução de problemas para lidar melhor com cenários de tarefas complexas e variáveis.
  • Memória da entidade Informações sobre entidades: concentra-se na captura e na organização de informações sobre vários tipos de entidades encontradas no decorrer da execução da tarefa, abrangendo pessoas, lugares, conceitos e assim por diante. Isso ajuda o agente a compreender profundamente as conexões intrínsecas entre informações complexas, processar e integrar o conhecimento relevante de forma mais eficiente por meio do mapeamento preciso das relações entre entidades e fornecer uma perspectiva mais abrangente e aprofundada para a solução de problemas.
  • Memória de contexto O que é um agente: trabalha para manter as informações contextuais durante as interações, garantindo que o agente seja capaz de responder de forma consistente com coerência e relevância em uma série de tarefas ou diálogos sucessivos. Mesmo durante longas interações, o contexto e a intenção da tarefa podem ser compreendidos com precisão, evitando desconexões de informações ou mal-entendidos e, portanto, fornecendo resultados mais precisos e razoáveis.

2.6.2 Como os sistemas de memória capacitam os agentes

  • Aumento da conscientização contextual A sinergia da memória de curto prazo e da memória contextual permite que o agente mantenha uma compreensão firme do contexto durante a evolução de um diálogo ou de uma tarefa. Seja a correlação de informações em um diálogo de várias rodadas ou a continuação lógica em uma sequência de tarefas, o agente pode gerar respostas mais coerentes, consistentes e contextuais com base nas informações contextuais armazenadas, o que aumenta muito a fluência e a lógica da experiência de interação.
  • Criação de experiência e aceleração do aprendizado Memória de longo prazo: A memória de longo prazo oferece uma plataforma para o crescimento e a evolução dos agentes. Ao armazenar e revisar ações e resultados passados, os agentes podem extrair lições deles, descobrir padrões e normas e, em seguida, otimizar continuamente suas estratégias de tomada de decisão e métodos de solução de problemas. Esse processo de acumulação de experiência permite que o agente tome decisões mais inteligentes e eficientes quando confrontado com problemas semelhantes, melhorando significativamente a eficiência e a qualidade do trabalho.
  • Compreensão da entidade e otimização do processamento de informações Memória de entidade: A memória de entidade dá ao agente a capacidade de identificar e lembrar entidades importantes, permitindo que ele se concentre rapidamente nos pontos principais e esclareça as inter-relações entre as informações ao processar informações complexas. Isso não só ajuda o agente a entender os requisitos da tarefa com mais precisão, mas também permite que ele filtre rapidamente o conteúdo valioso e melhore a velocidade e a precisão do processamento de informações diante de grandes quantidades de informações, de modo a lidar com tarefas complexas e cenários de problemas diversificados com mais eficiência.

2.6.3 Implementação da memória em equipes

Ao configurar uma equipe, os desenvolvedores têm a flexibilidade de ativar e personalizar cada componente de memória com base nos objetivos da equipe e na natureza da tarefa. Por padrão, o sistema de memória é desativado, definindo a configuração da equipe na seção memory=TrueSe você tiver uma equipe de desenvolvimento, poderá ativar o recurso de memórias para fornecer à sua equipe recursos avançados de memória. O Memory usa o OpenAI Embeddings por padrão, mas os desenvolvedores também podem ajustar o incorporador parâmetro para outros modelos, como Google AI, Azure OpenAI, GPT4ALL, Vertex AI ou Cohere, para atender às necessidades de diferentes cenários. Exemplo:

from crewai import Crew, Agent, Task, Process
# Usando uma equipe com memória, usando os Embeddings padrão da OpenAI
my_crew = Crew(
agents=[...] ,
tasks=[...] ,
process=Process.sequential,
process=Process.sequential, memory=True, verbose=True
verbose=True
)
# Mudar para o Google AI Embedding usando uma equipe com uma função de memória
minha_equipe = Equipe(
agents=[...] ,
tasks=[...] ,
process=Process.sequential,
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 Benefícios do uso do sistema de memória da CrewAI

  • Aprendizagem adaptativa e otimização contínua Com o passar do tempo e a execução contínua de tarefas, a equipe é capaz de se adaptar gradualmente a novas informações e requisitos de tarefas e melhorar continuamente os métodos e as estratégias para lidar com as tarefas. O sistema de memória permite que os agentes aprendam com experiências passadas e ajustem automaticamente seus padrões de comportamento para que se sintam mais confortáveis ao enfrentar novas situações, e a eficiência geral da equipe continuará a melhorar com a experiência.
  • Aprimoramento da experiência personalizada A função de memória permite que o agente registre e identifique as preferências do usuário, o histórico de interações e outras informações, de modo a oferecer aos usuários serviços e experiências mais personalizados. Seja em termos de recomendação de conteúdo, resposta a perguntas ou interação, o agente é capaz de responder com precisão de acordo com as características personalizadas do usuário, atender às necessidades específicas do usuário e aumentar a aderência e a satisfação entre o usuário e o sistema.
  • Aprimoramento das habilidades de resolução de problemas Os repositórios de memória rica fornecem aos agentes uma sólida base de conhecimento, permitindo que eles aproveitem totalmente o aprendizado anterior e as informações contextuais ao resolver problemas. Ao recuperar e aproveitar rapidamente a experiência relevante, os agentes podem analisar os problemas de forma mais abrangente, identificar possíveis soluções e tomar decisões mais inteligentes e precisas, melhorando efetivamente sua capacidade de resolver problemas complexos e fornecendo um forte suporte para operações de equipe bem-sucedidas.

3. etapas práticas para a criação de um sistema multiagente baseado na CrewAI

3.1 Preparativos

3.1.1 Configuração do ambiente

Certifique-se de que seu sistema atenda aos requisitos de instalação do CrewAI e das dependências relacionadas. Dependendo do sistema operacional, talvez seja necessário instalar pacotes específicos ou configurar variáveis de ambiente. Por exemplo, em alguns sistemas, talvez seja necessário instalar o ambiente Python, as bibliotecas relacionadas e configurar as chaves de API.

3.1.2 Instalação do CrewAI e do Ollama (opcional)

Siga as instruções da documentação oficial para instalar o CrewAI e o Ollama (se você precisar usar o Ollama). Talvez você precise estar ciente da compatibilidade de versões, dependências e outros problemas durante o processo de instalação para garantir que a instalação seja concluída com êxito. Por exemplo, use o comando pip para instalar o CrewAI e seu kit de ferramentas:pip install crewai[tools]O guia de instalação da Ollama está disponível no site da Ollama e deve ser seguido de acordo.

3.1.3 Configuração do modelo

No arquivo de configuração do CrewAI, defina o Modelo de Linguagem (LLM) para o modelo desejado, como Llama3, etc. Essa etapa garante que o agente possa usar o modelo de linguagem apropriado para raciocinar e tomar decisões ao executar tarefas.

3.2 Criação de agentes

3.2.1 Definição das funções e metas do agente

Defina as funções e as metas de cada agente com base nos requisitos da tarefa. Por exemplo, para criar um agente responsável pela coleta de informações, sua função pode ser definida como "coletor de informações", com o objetivo de "coletar informações relevantes em um domínio específico"; ou, para criar um agente com foco na análise de dados, a função é "analista de dados", com o objetivo de "conduzir uma análise aprofundada dos dados coletados e extrair insights valiosos".

3.2.2 Configuração das propriedades do agente

De acordo com a função do agente e as características da tarefa, é razoável configurar os atributos do agente, como escolher o modelo de linguagem apropriado, adicionar as ferramentas necessárias, definir o número máximo de iterações e a estratégia de armazenamento em cache. Tomando o agente coletor de informações como exemplo, ele pode ser configurado com uma ferramenta de pesquisa na Web, definir um número máximo maior de solicitações para aumentar a eficiência da aquisição de informações e ativar o armazenamento em cache para reduzir as pesquisas repetitivas; já o agente analista de dados pode precisar se conectar a uma ferramenta de banco de dados específica e ajustar atributos como o número máximo de iterações de acordo com a complexidade da tarefa de análise.

3.2.3 Desenvolver a história do agente (opcional, mas recomendado)

Escrever uma história detalhada para o agente, embora seja uma etapa opcional, pode fornecer um contexto mais rico para os comportamentos e decisões do agente, aprimorar os recursos antropomórficos do agente e ajudar a melhorar a interatividade e a interpretabilidade do sistema. Por exemplo, para escrever uma história de fundo para um coletor de informações: "Você é um coletor de informações profissional que é bom em examinar rapidamente a enorme quantidade de informações na Web para encontrar conteúdo valioso. Você está envolvido na coleta de dados há muito tempo, conhece bem uma variedade de fontes de informação e é hábil em várias técnicas e ferramentas de pesquisa. Esta tarefa é ajudar a equipe a obter as informações mais recentes sobre [área específica], fornecendo um forte suporte para análises e tomadas de decisão subsequentes."

3.3 Definição de tarefas

3.3.1 Esclarecimento das descrições de tarefas

Forneça uma descrição clara e precisa de cada tarefa para garantir que os agentes entendam claramente os requisitos específicos da tarefa. Por exemplo, "Analisar o feedback do usuário sobre [nome do produto] nas mídias sociais no último mês e extrair os principais comentários e sugestões", "Prever tendências em [nome do setor] nos próximos três meses com base em dados de mercado", etc.

3.3.2 Atribuição de agentes de tarefas

Atribuir tarefas razoavelmente aos agentes apropriados com base em suas funções e capacidades. Você pode especificar diretamente o agente responsável pela execução da tarefa ou pode usar o mecanismo de processo do CrewAI para permitir que o sistema atribua tarefas automaticamente com base na disponibilidade, na experiência e em outros fatores do agente. Por exemplo, atribua tarefas de coleta de informações a agentes coletores de informações e tarefas de análise de dados a agentes analistas de dados.

3.3.3 Configuração das propriedades da tarefa

De acordo com os requisitos da tarefa, defina outros atributos da tarefa, como o formato de saída esperado (JSON, modelo ou arquivo Pydantic etc.), se a execução assíncrona é necessária, se a revisão manual de entrada é necessária e defina o contexto da tarefa. Por exemplo, para tarefas com altos requisitos de tempo real, elas podem ser definidas como execução assíncrona para melhorar a velocidade geral de resposta do sistema; para tarefas importantes de tomada de decisão, a revisão manual de entrada pode ser ativada para garantir a precisão dos resultados.

3.4 Ferramentas de integração

3.4.1 Escolhendo a ferramenta certa

Escolha a ferramenta certa para a tarefa na rica biblioteca de ferramentas fornecidas pela CrewAI, como as de pesquisa na Web WebsiteSearchTool, para leitura de arquivos FileReadToolA seguir, alguns exemplos das análises de dados usadas na CSVSearchTool etc. Ferramentas personalizadas também podem ser criadas conforme necessário para atender aos requisitos exclusivos de tarefas específicas.

3.4.2 Integração de ferramentas com agentes e tarefas

Atribua as ferramentas selecionadas aos agentes apropriados para que eles possam invocá-las ao executar as tarefas. Ao definir uma tarefa, especifique explicitamente as ferramentas a serem usadas para a tarefa a fim de garantir que as ferramentas sejam totalmente integradas à tarefa e trabalhem juntas. Por exemplo, em uma tarefa de coleta de informações, equipe o agente coletor de informações com a ferramenta WebsiteSearchTool responder cantando DirectorySearchToolpara permitir que ele acesse informações de páginas da Web e catálogos locais.

3.5 Formação da equipe

3.5.1 Agentes combinados

Combine agentes com diferentes funções e competências para formar uma equipe colaborativa. Certifique-se de que os membros da equipe tenham funções complementares e sejam capazes de trabalhar juntos em tarefas complexas. Por exemplo, uma equipe pode incluir agentes com diferentes funções, como coletores de informações, analistas de dados, criadores de conteúdo etc., cada um com sua própria experiência, trabalhando juntos para atingir as metas do projeto.

3.5.2 Definição dos processos da equipe

Dependendo das características e dos requisitos das tarefas, escolha um processo de equipe adequado, como um processo sequencial ou um processo hierárquico. Os processos sequenciais são adequados para cenários em que há uma ordem clara de precedência entre as tarefas, e os agentes executam as tarefas sequencialmente em uma ordem predeterminada; os processos hierárquicos são adequados para tarefas complexas que exigem gerenciamento e coordenação, e as tarefas são atribuídas e supervisionadas por agentes gerenciais.

3.5.3 Configuração das propriedades da equipe

De acordo com as necessidades da equipe, defina vários atributos da equipe, como o nível de detalhes de registro, a taxa máxima de solicitações, as configurações de idioma, a configuração da memória e do cache e a possibilidade de compartilhar informações da equipe. Uma configuração razoável dos atributos da equipe pode otimizar a eficiência operacional da equipe e atender às necessidades de diferentes cenários.

3.6 Execução de tarefas e monitoramento

3.6.1 Iniciar a tarefa da equipe

fazer uso de início() inicia o processo de execução de tarefas da equipe, e o sistema fará com que o agente comece a trabalhar de acordo com o processo definido e a atribuição de tarefas. Durante o processo de execução da tarefa, o progresso da tarefa pode ser monitorado em tempo real por meio de registro e saída do console.

3.6.2 Monitoramento da execução da tarefa

Usando a função de registro e as ferramentas de monitoramento relacionadas fornecidas pelo CrewAI, prestamos muita atenção ao status de execução das tarefas, às etapas de operação dos agentes, aos resultados de saída e a outras informações. Por meio do monitoramento detalhado, os problemas que podem ocorrer durante a execução da tarefa, como erro de execução do agente, tempo limite da tarefa, consumo excessivo de recursos, etc., podem ser descobertos a tempo.

3.6.3 Processamento dos resultados da execução da tarefa

Após a conclusão da execução da tarefa, a saída da tarefa é capturada e processada. Com base no formato de saída esperado da tarefa, os resultados são analisados e analisados para extrair informações valiosas para a tomada de decisões subsequentes ou para o processamento posterior. Ao mesmo tempo, com base nos resultados da execução da tarefa e nos problemas encontrados durante o monitoramento, faça os ajustes e as otimizações necessárias na configuração do agente, da tarefa ou da equipe para melhorar o desempenho e a precisão do sistema.

4. estudo de caso: aplicação da CrewAI em um projeto real

4.1 Sistema inteligente de atendimento ao cliente

4.1.1 Arquitetura do sistema e funções do agente

No sistema inteligente de atendimento ao cliente, vários agentes são construídos para simular o fluxo de trabalho do atendimento humano ao cliente. Eles incluem o agente de recebimento de perguntas do usuário, o agente de classificação de perguntas, o agente de consulta de informações, o agente de geração de respostas e o agente de revisão de respostas. O agente de recebimento de problemas do usuário é responsável por receber o problema de consulta do usuário e passá-lo ao agente de classificação de problemas; o agente de classificação de problemas atribui o problema ao agente de consulta de informações correspondente, de acordo com o tipo de problema; o agente de consulta de informações usa várias ferramentas (como a ferramenta de consulta à base de conhecimento, a ferramenta de pesquisa de banco de dados etc.) para encontrar as informações relevantes; o agente de geração de respostas gera a resposta preliminar de acordo com as informações consultadas; o agente de auditoria de respostas audita e otimiza a resposta gerada para garantir que a resposta não seja um problema. O agente de geração de respostas gera respostas preliminares com base nas informações consultadas; o agente de revisão de respostas analisa e otimiza as respostas geradas para garantir a precisão e a qualidade das respostas.

4.1.2 Fluxo de tarefas e colaboração

Quando um usuário faz uma pergunta, o agente de recebimento de perguntas do usuário registra a pergunta e a passa para o agente de classificação de perguntas. O agente de classificação de problemas classifica o problema em diferentes tipos, como problemas comuns, problemas técnicos, problemas pós-venda etc., por meio de análise de palavras-chave, compreensão semântica e outras técnicas. Em seguida, com base no resultado da classificação, o problema é atribuído ao agente de consulta de informações correspondente. O agente de consulta de informações procura informações relevantes na base de conhecimento, no banco de dados ou em recursos externos de acordo com o tipo de problema. Por exemplo, para problemas comuns, as respostas são recuperadas diretamente da base de conhecimento; para problemas técnicos, pode ser necessário consultar documentos técnicos ou interagir com sistemas técnicos especializados. Com base nas informações consultadas, o agente de geração de respostas usa técnicas de geração de linguagem natural para transformar as informações em respostas claras e compreensíveis. Por fim, o agente de revisão de respostas realiza a verificação gramatical, a revisão lógica e a avaliação da polidez da resposta, além de otimização e modificação adicionais, se necessário. Durante todo o processo, os agentes trabalham juntos de forma eficiente por meio do mecanismo de comunicação e dos recursos de agendamento de tarefas do CrewAI para fornecer aos usuários respostas rápidas e precisas.

4.2 Assistente de criação de conteúdo inteligente

4.2.1 Funções do agente e divisão do trabalho

O assistente de criação de conteúdo inteligente consiste em vários agentes trabalhando juntos, incluindo o agente de planejamento de tema, o agente de coleta de material, o agente de geração de conteúdo e o agente de embelezamento de conteúdo. O agente de planejamento de temas é responsável por determinar o tema de criação com base nas necessidades do usuário ou nas tendências do mercado; o agente de coleta de materiais coleta materiais relevantes, como artigos, imagens, dados etc., usando ferramentas de pesquisa na Web e ferramentas de consulta a bancos de dados; o agente de geração de conteúdo cria o primeiro rascunho com base no tema e nos materiais usando algoritmos de geração de linguagem natural; e o agente de retoque de conteúdo realiza a otimização gramatical, o ajuste de estilo e a combinação lógica do primeiro rascunho, de modo a atender melhor aos requisitos e às expectativas dos usuários. O agente de retoque de conteúdo otimizará a gramática, o estilo e a lógica do primeiro rascunho para torná-lo mais alinhado com os requisitos e as expectativas dos usuários.

4.2.2 Processos criativos e mecanismos sinérgicos

Quando um usuário faz uma solicitação de criação (por exemplo, para escrever um artigo sobre [um tópico específico]), o agente de planejamento de tópicos primeiro analisa e planeja o tópico e determina a estrutura geral e o conteúdo principal do artigo. Em seguida, o agente de coleta de material procura artigos relevantes, relatórios de pesquisa, casos e outros materiais na Internet de acordo com o tema, organiza-os e os passa para o agente de geração de conteúdo. O agente de geração de conteúdo gera o primeiro rascunho do artigo com base na estrutura do tópico e nos materiais coletados, usando modelos de aprendizagem profunda. Por exemplo, ele pode gerar conteúdo de parágrafo e organizar a estrutura do artigo com base nas ideias e nos dados do material. Por fim, o agente de retoque de conteúdo realiza um retoque abrangente do primeiro rascunho, verificando se há erros gramaticais, otimizando a seleção de vocabulário e ajustando a estrutura da frase para tornar o artigo mais fluente, suave e atraente. Durante todo o processo de criação, os agentes compartilham informações e feedback em tempo real por meio dos mecanismos de comunicação e colaboração da CrewAI para garantir o bom andamento do trabalho de criação.

4.3 Sistemas inteligentes de tomada de decisões de investimento

4.3.1 Composição do sistema e responsabilidades do agente

O sistema inteligente de tomada de decisões de investimento consiste em um agente de coleta de dados de mercado, um agente de análise de dados, um agente de avaliação de risco, um agente de recomendação de estratégia de investimento e um agente de otimização de portfólio. O agente de coleta de dados de mercado é responsável por coletar dados de mercado em tempo real de várias fontes de dados financeiros (por exemplo, bolsas de valores, sites de notícias financeiras, bancos de dados financeiros etc.), incluindo preços de ações, volume de negócios, indicadores macroeconômicos etc.; o agente de análise de dados limpa, organiza e analisa os dados coletados para extrair informações valiosas, como tendências de mercado, dinâmica do setor, condições financeiras da empresa etc.; o agente de avaliação de risco avalia o nível de risco do alvo de investimento usando um modelo de avaliação de risco com base nos resultados da análise de dados; o agente de recomendação de estratégia de investimento avalia o nível de risco do alvo de investimento usando um modelo de avaliação de risco; e o agente de recomendação de estratégia de investimento avalia o nível de risco do alvo de investimento com base nos resultados da análise de dados. Com base nos resultados da análise de dados, o agente de avaliação de risco aplica o modelo de avaliação de risco para avaliar o nível de risco das metas de investimento; o agente de recomendação de estratégia de investimento recomenda estratégias de investimento adequadas, como investimento de longo prazo, especulação de curto prazo, investimento diversificado etc., com base nas condições de mercado e nas preferências de risco dos investidores; o agente de otimização de portfólio otimiza o portfólio de investimento com base nas estratégias de investimento recomendadas e determina o índice ideal de alocação de ativos.

4.3.2 Processos de tomada de decisão e modos de colaboração

Os agentes de coleta de dados de mercado coletam continuamente dados de mercado atualizados e os repassam aos agentes de análise de dados. O agente de análise de dados realiza uma análise aprofundada dos dados, como a previsão de movimentos de preços de ações por meio de métodos de análise técnica e a avaliação do valor intrínseco das empresas por meio de análise fundamental. O agente de avaliação de risco avalia o nível de risco de diferentes metas de investimento com base nos resultados da análise de dados, combinados com dados históricos e modelos de risco. O agente de recomendação de estratégia de investimento recomenda estratégias de investimento personalizadas para os investidores, levando em conta as tendências do mercado, os resultados da avaliação de risco e o apetite de risco dos investidores. Por exemplo, para investidores com maior apetite de risco, ele pode recomendar uma proporção maior de investimento em ações; para investidores conservadores, ele pode recomendar um portfólio mais robusto de investimentos em títulos e fundos. Por fim, o agente de otimização de portfólio aplica um algoritmo de otimização matemática com base nas estratégias de investimento recomendadas para determinar a alocação ideal do portfólio para maximizar os retornos e minimizar os riscos. Durante todo o processo de tomada de decisão, cada agente trabalha em conjunto para obter um fluxo de dados eficiente e uma tomada de decisão científica por meio do mecanismo de comunicação e orquestração de processos da CrewAI.


Conteúdo 2
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Guia para a criação de sistemas multiagentes com base na CrewAI

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil