crewAI é um framework de orquestração multiagente de código aberto criado por João Moura. Esse framework baseado em Python aproveita a colaboração da inteligência artificial (IA) ao orquestrar agentes autônomos que desempenham papéis específicos e trabalham juntos como uma equipe (crew) para completar tarefas. O objetivo do crewAI é fornecer uma base sólida para automatizar fluxos de trabalho multiagentes.1
O termo “crew” refere-se a agentes de IA que trabalham juntos de forma autônoma, delegando tarefas entre si e fazendo perguntas uns aos outros, de maneira semelhante a uma equipe de trabalho na vida real. Cada equipe multiagente é composta por agentes de IA complementares, que desempenham papéis específicos e utilizam ferramentas preexistentes ou personalizadas para concluir um conjunto de tarefas designado. Os modelos de linguagem (LLMs) atuam como um motor de raciocínio para os agentes, selecionando uma sequência de ações a serem executadas.2 Os agentes do crewAI podem ser configurados para utilizar qualquer grande modelo de linguagem (LLM) de código aberto ou interface de programação de aplicativos (API).
Pesquisas recentes expandem o escopo dos LLMs além da geração de texto, demonstrando que eles podem atuar como agentes versáteis para interações conversacionais, tomada de decisões e conclusão de tarefas.3 No campo emergente da IA e nas pesquisas sobre agentes de IA e frameworks agênticos, frameworks multiagentes, incluindo o crewAI, estão ganhando destaque na área de IA generativa.
A próxima geração de aplicações de IA utilizará arquiteturas agênticas para criar sistemas autônomos baseados em agentes.4 Esses frameworks agênticos lidam com tarefas complexas em diversas soluções de IA, aprimorando as tarefas de IA generativa. Por exemplo, chatbots de IA podem ser uma modalidade de implementação de frameworks agênticos. Os chatbots agênticos, ao contrário dos não agênticos, podem utilizar ferramentas disponíveis, planejar ações antes de executá-las e manter memória. Esses recursos produzem conversas mais refinadas e significativas.
Os frameworks agênticos são arquiteturas de agentes de IA que utilizam chamadas de ferramentas e orquestração para aplicações de IA. Os sistemas agênticos empregam planejamento, refinamento iterativo, reflexão e outros mecanismos de controle para aproveitar totalmente os recursos de raciocínio do modelo e concluir tarefas de ponta a ponta.5A implementação de agentes de IA dentro dos sistemas de IA automatiza processos essenciais para o funcionamento de aplicações de IA generativa.
Além disso, os frameworks agênticos proporcionam aprendizado e desempenho aprimorados. Fazer ajuste fino de LLMs para tarefas de tomada de decisão personalizadas pode ser computacionalmente caro e reduzir a capacidade de generalização dos modelos.6 Já os agentes de IA podem aprender com suas ações e experiências anteriores, reduzindo o custo computacional necessário para ajustar modelos.
Os frameworks de agente único dependem de um único modelo de linguagem para executar uma ampla gama de tarefas e responsabilidades. O agente recebe um prompt de sistema e utiliza as ferramentas necessárias para concluir suas tarefas, como pesquisa, APIs e até outros agentes. Embora frameworks de agente único possam interagir com outros agentes por meio de ferramentas, eles não cooperam da mesma forma que frameworks multiagentes.
Nos frameworks de agente único, não há um mecanismo de feedback de outros agentes de IA; portanto, é recomendável a implementação de opções para feedback humano a fim de melhorar a precisão ao longo do tempo. As arquiteturas de agente único têm melhor desempenho em problemas bem definidos, nos quais o feedback de outros agentes ou usuários não é necessário.7
Em vez de tentar incorporar todos os recursos em um único modelo, os frameworks multiagentes dividem as tarefas entre vários agentes especializados. As arquiteturas multiagentes envolvem dois ou mais agentes, que podem utilizar o mesmo modelo de linguagem ou diferentes modelos. Independentemente do tamanho da equipe, os agentes trabalham dentro do mesmo ambiente, modelando os objetivos uns dos outros, a memória e o plano de ação. Essas arquiteturas apresentam vantagens significativas sobre o prompting com cadeia de pensamentos (CoT), no qual o modelo precisa dividir tarefas em uma sequência de etapas.8 Os frameworks multiagentes tendem a ter um desempenho melhor quando colaboração e múltiplos caminhos de execução distintos são necessários.
As melhores arquiteturas de agentes a serem utilizadas dependem dos detalhes específicos da aplicação e do caso de uso. Sistemas de agente único são mais eficazes para resolver problemas específicos e restritos. Pode-se pensar nos agentes como solucionadores de problemas. Alguns problemas exigem os recursos individuais de um agente especializado, enquanto outros podem demandar um grupo de solucionadores de problemas ou uma equipe composta por múltiplos agentes. Sistemas multiagentes são equipes de agentes que trabalham juntas para resolver problemas que ultrapassam os recursos ou o conhecimento individual de cada agente. Sistemas multiagentes podem resolver problemas que são grandes demais para sistemas de agente único. Pesquisas indicam que sistemas multiagentes oferecem vantagens significativas, incluindo maior velocidade, confiabilidade aprimorada e tolerância a dados e conhecimento incertos.9 Os principais benefícios dos sistemas multiagentes, semelhantes ao crewAI, incluem colaboração entre agentes, fluxos de trabalho autônomos e escalabilidade.
Agentes de IA podem ser otimizados por meio de seus parâmetros versáteis e personalizáveis. Cada agente recebe uma persona que define seu papel, juntamente com instruções específicas para seu comportamento.10 Frameworks multiagentes utilizam as habilidades dos agentes para gerenciar tarefas dentro de uma equipe, atuando em funções específicas e interagindo entre si. A composição dessas equipes pode ser ajustada e otimizada conforme a aplicação e os objetivos gerais.
Uma das formas de implementação dessa abordagem é por meio de agentes generativos colaborativos. Frameworks multiagentes fornecem os recursos essenciais para uma colaboração eficaz.11 Alguns frameworks multiagentes disponibilizam modelos para colaboração entre agentes com base no objetivo geral. O crewAI facilita a colaboração entre agentes, permitindo que usuários organizem agentes em equipes ou grupos que trabalham para executar um objetivo ou tarefa em comum.
Agentes de IA autônomos podem executar uma tarefa ou uma série de tarefas complexas sem direção explícita. O potencial dos agentes autônomos baseados em LLM é reconhecido como uma abordagem líder para alcançar a inteligência artificial geral (AGI).12 Esses agentes baseados em LLM podem executar tarefas por meio de planejamento e ações autodirigidas. Embora tenham demonstrado recursos impressionantes, agentes de IA ainda enfrentam desafios para expandir suas competências em tarefas que exigem formas mais complexas de raciocínio.13 Sistemas agentes ajudam a mitigar esses desafios ao fornecer um framework para fluxos de trabalho autônomos. O crewAI oferece comportamento autônomo por meio de um processo hierárquico que utiliza um agente gerente gerado autonomamente para supervisionar a execução e a alocação de tarefas dos agentes.
Os sistemas multiagentes devem ser escalados em diversas dimensões diferentes. Essas dimensões incluem o aumento do número total de agentes em um sistema ou aplicação, a ampliação da diversidade dos agentes e o crescimento do volume de dados com os quais os agentes operam.14 Muitos frameworks multiagentes oferecem ferramentas como monitoramento e métricas para avaliar se o sistema está escalando com sucesso. O crewAI permite a integração com ferramentas de monitoramento de recursos e métricas de terceiros para configurar observabilidade e avaliações para LLMs, frameworks de LLM e bancos de dados de vetores.
Agentes de IA são sistemas ou programas baseados em LLM desenvolvidos para executar diversas tarefas complexas. Os agentes possuem recursos de memória e planejamento que permitem tomar decisões de forma independente e agir com base em experiências anteriores.15Os agentes ampliam os recursos dos LLMs tradicionais ao utilizar suas saídas para acionar outras ferramentas de software (como recuperação de dados) e reinserir os resultados no LLM até que o objetivo geral seja alcançado. O que diferencia os agentes de IA dos LLMs tradicionais é sua capacidade de navegar, interagir e se adaptar ao ambiente por meio de planejamento de ações, uso de memória e integração de ferramentas. Os sistemas agentes oferecem ferramentas e orquestração para que os agentes executem algoritmos de aprendizado de máquina associados às suas tarefas.
O crewAI é construído sobre LangChain com um design modular. Seus principais componentes incluem agentes, ferramentas, tarefas, processos e equipes.
Os agentes são os componentes fundamentais do framework crewAI. Cada agente é uma unidade autônoma com diferentes funções que contribuem para o objetivo geral da equipe. Cada agente é programado para executar tarefas, tomar decisões e se comunicar com outros agentes.
O crewAI incentiva os usuários a pensarem nos agentes como membros de uma equipe. Os agentes podem ter diferentes funções, como "cientista de dados", "pesquisador" ou "gerente de produto". A equipe multiagente colabora de forma eficaz para executar fluxos de trabalho automatizados.
Essa forma de sistema multiagente tem o objetivo de aprimorar as capacidades de raciocínio dos LLMs por meio de discussões entre agentes, utilizando uma estrutura de representação de funções para facilitar a resolução de problemas complexos.16 Os agentes interagem entre si por meio dos mecanismos internos de delegação e comunicação do crewAI, o que lhes permite delegar tarefas ou fazer perguntas a outros agentes de forma autônoma.
Os objetivos e características dos agentes são definidos por seus atributos. Os agentes do crewAI possuem três atributos principais: função (role), objetivo (goal) e histórico (backstory).
Por exemplo, a configuração de um agente no crewAI pode ser assim:
agent = Agent(O crewAI oferece vários parâmetros opcionais, incluindo atributos que permitem selecionar qual LLM e quais ferramentas o agente utilizará.17
As ferramentas são habilidades ou funções que os agentes usam para executar diferentes tarefas. Os usuários podem aproveitar tanto ferramentas personalizadas quanto ferramentas já disponíveis no crewAI Toolkit e no LangChain Tools.
As ferramentas expandem os recursos dos agentes ao permitir que executem uma ampla variedade de tarefas, incluindo manipulação de erros, mecanismos de cache e personalização por meio de argumentos flexíveis.
Todas as ferramentas incluem manipulação de erros e suporte a mecanismos de cache.
O crewAI toolkit contém um pacote de ferramentas de pesquisa que usam a geração aumentada de recuperação em diferentes fontes. Alguns exemplos incluem:
Além das ferramentas RAG, o kit também contém várias ferramentas de web scraping para coleta e extração de dados.
O crewAI oferece integração simples com ferramentas do LangChain. A seguir, alguns exemplos de ferramentas internas disponíveis no LangChain:
Os usuários podem criar suas próprias ferramentas para otimizar ainda mais os recursos dos agentes. Como parte do pacote de ferramentas do crewAI, os usuários podem criar uma ferramenta definindo uma descrição clara de sua finalidade. O agente utilizará a descrição definida pelo usuário para empregar a ferramenta personalizada. Ferramentas personalizadas podem, opcionalmente, implementar um mecanismo de cache ajustável para controle mais refinado.
Tarefas são atribuições específicas executadas pelos agentes. Os detalhes de execução são definidos por meio dos atributos da tarefa. Múltiplos agentes podem ser designados para trabalhar juntos na mesma tarefa.
Os atributos da tarefa necessários incluem descrição, agente e produção esperada. Esses atributos definem o escopo da tarefa, o agente responsável e o objetivo a ser alcançado. Uma tarefa pode ser atribuída diretamente a um agente ou ser gerenciada pelo processo hierárquico do crewAI, que decide a alocação com base nas funções e disponibilidade dos agentes.
Aqui está um exemplo de uma tarefa:
data_collection = Task(Os atributos opcionais das tarefas incluem integração com ferramentas, execução assíncrona para concorrência e formatos de saída, como JSON, modelos Pydantic e arquivos de resultados.
Os recursos das tarefas incluem integração com ferramentas, execução assíncrona, revisão por input humano e personalização da saída.
Os resultados de uma tarefa podem estabelecer o contexto para uma tarefa futura. Por exemplo, as saídas de uma tarefa de "pesquisa" podem ser usadas como contexto para a execução de uma tarefa de "redação". Considere um exemplo simples: uma equipe composta por dois agentes, um agente de pesquisa e um agente redator. O agente de pesquisa é responsável por encontrar exemplos dos principais casos de uso de IA generativa. O agente redator pode então utilizar essa pesquisa como contexto para escrever um artigo curto sobre o mesmo ou um tópico semelhante.
As tarefas podem ser definidas para serem executadas de forma assíncrona. Isso é útil para tarefas que demandam um tempo prolongado para serem concluídas ou que não são necessárias para a execução imediata das próximas tarefas. O atributo context pode ser usado em uma tarefa futura para definir que sua execução deve aguardar a conclusão da tarefa assíncrona.21
Os processos permitem que agentes de IA individuais operem como uma unidade coesa ao orquestrar a execução de tarefas. Em frameworks agênticos os processos definem como os agentes trabalharão juntos e quais tarefas serão atribuídas a eles. O crewAI compara os processos à gestão de projetos, pois garantem que as tarefas sejam distribuídas e executadas com eficiência, mantendo-se alinhadas a uma estratégia predefinida para atingir o objetivo.
O crewAI inclui duas implementações de processos: sequencial e hierárquico, além de um terceiro planejado chamado processo consensual. Os processos podem ser atribuídos a uma equipe de agentes para que operem de forma integrada. Ao atribuir um processo a uma equipe, o tipo de processo determina a estratégia de execução.
Uma equipe representa um conjunto coletivo de agentes que colaboram para concluir um conjunto predefinido de tarefas.23 Cada equipe define a estratégia para a execução de tarefas, a atuação dos agentes e o fluxo de trabalho geral. As equipes possuem vários atributos que ajudam a reunir agentes com funções e ferramentas complementares, atribuir tarefas e selecionar um processo que determina a ordem de execução e a interação.24
Os usuários escolhem e definem uma lista de agentes para trabalharem juntos como uma equipe. As equipes recebem uma lista de tarefas a serem concluídas. Atributos opcionais definem a estratégia de execução, a colaboração entre agentes e o fluxo de trabalho geral.
Exemplo de uma equipe composta por dois agentes trabalhando juntos para coletar e organizar dados de atendimento ao cliente:
my_crew = Crew(Atributos adicionais incluem funções de callback, configurações de idioma e memória, além de opções para definir um agente gerente e um LLM a ser utilizado, dependendo do fluxo de processo (por exemplo, sequencial ou hierárquico). Uma vez que a equipe é formada, o fluxo de trabalho é iniciado por meio de um método de inicialização. O crewAI oferece vários métodos de inicialização para controlar o processo, incluindo execução assíncrona e execução de tarefas individuais.25
O crewAI pode se conectar a qualquer LLM por meio de diversas opções de conexão. Por padrão, os agentes utilizam o modelo GPT-4 da OpenAI para processamento de linguagem, mas crewAI oferece flexibilidade para conexão com diferentes LLMs, incluindo modelos como a série IBM Granite. Modelos locais podem ser conectados por meio do ollama ou outras APIs abertas. Exemplos de configuração de chave de API e tutoriais sobre como conectar diferentes LLMs estão disponíveis na documentação do crewAI. O crewAI é compatível com todos os componentes LLM do LangChain, fornecendo suporte básico para uma interface executável em qualquer LLM.
Frameworks de agentes de IA, como o crewAI, servem como ferramentas fundamentais para pesquisadores e desenvolvedores criarem sistemas inteligentes em diversos domínios, desde chatbots baseados em agentes até sistemas multiagentes complexos.
Alguns exemplos do mundo real incluem criação de páginas interativas e o uso de uma equipe para automatizar o crescimento da presença nas redes sociais. Uma coleção de exemplos práticos pode ser encontrada no repositório "crewAI-examples" no GitHub, organizado por Moura, permitindo que os usuários testem o framework por conta própria.26 Esses exemplos também incluem introduções para iniciantes no uso do framework.
Aqui está uma lista de alguns desses exemplos e outros casos de uso que surgiram na comunidade crewAI:
O crewAI se compara a frameworks multiagentes como AutoGen e ChatDev. A principal vantagem do crewAI é a combinação dos pontos fortes desses dois frameworks. O crewAI combina a flexibilidade dos agentes conversacionais do AutoGen com a abordagem estruturada de processos do ChatDev.30
O AutoGen é um framework de agentes de código aberto da Microsoft que utiliza algoritmos de processamento de linguagem natural (NLP) para agentes conversacionais de IA. Embora ambas as plataformas sejam utilizadas em aplicações semelhantes, cada uma possui vantagens e desvantagens específicas. Ambos são sistemas flexíveis com agentes de IA personalizáveis e capazes de colaboração. O crewAI oferece uma forma mais simples de orquestrar interações entre agentes, fornecendo atributos personalizáveis que controlam os processos da aplicação. AutoGen, por outro lado, exige uma configuração mais detalhada em termos de programação para alcançar esse mesmo nível. AutoGen possui um mecanismo integrado para executar rapidamente código gerado por LLMs. Atualmente,a 31 o crewAI não oferece ferramentas nativas para essa funcionalidade, mas é possível realizá-la com configurações adicionais de programação.
ChatDev é uma plataforma de código aberto que utiliza colaboração multiagente baseada em representação de funções (role-playing), incluindo crewAI. No entanto, a estrutura de processos do ChatDev é rígida, o que limita a personalização e prejudica a escalabilidade e a flexibilidade para ambientes de produção. Frameworks como o crewAI são projetados para se integrar a aplicações de terceiros e suportar fluxos de trabalho personalizáveis, tornando-se ideais para ambientes dinâmicos e adaptáveis. Uma funcionalidade exclusiva do ChatDev é sua extensão para navegadores, permitindo encadear conversas entre vários agentes dentro de um navegador da web.32
Como um framework de orquestração multiagente, crewAI representa mais uma inovação no avanço da inteligência artificial. Arquiteturas baseadas em agentes aprimoram o desempenho e os recursos dos agentes de IA, permitindo que aplicações baseadas em LLMs executem tarefas que vão além da geração de linguagem.
Entrevistamos duas mil organizações a respeito de suas iniciativas de IA para descobrir o que está funcionando, o que não está e como se preparar.
O IBM Granite é nossa família de modelos de IA abertos, de alto desempenho e confiáveis, personalizados para a empresa e otimizados para escalar suas aplicações de IA. Explore as opções de linguagens, código, séries temporais e proteções.
Acesse nosso catálogo completo com mais de 100 cursos online comprando uma assinatura individual ou multiusuário hoje mesmo, para você expandir suas habilidades em uma variedade de nossos produtos por um preço único com desconto.
Liderada pelos principais líderes da IBM, o currículo dessa experiência foi desenvolvido para ajudar líderes empresariais a terem o conhecimento necessário para priorizar os investimentos em IA que podem estimular o crescimento.
Quer ter mais retorno sobre seus investimentos em IA? Saiba como o dimensionamento da IA generativa em áreas importantes promove mudanças, ajudando suas melhores mentes a criar e oferecer soluções novas e inovadoras.
Saiba como incorporar com confiança a IA generativa e o aprendizado de máquina em sua empresa.
Aprofunde-se nos três elementos críticos de uma estratégia de IA forte: gerar vantagem competitiva, escalar a IA em toda a empresa e avançar na IA confiável.
[1] “Ai Agents Forreal Use Cases,” crewAI, https://www.crewai.com
[2] “Agents," LangChain, https://python.langchain.com/v0.1/docs/modules/agents/?WT.mc_id=academic-105485-koreyst.
[3] Yuan Li, Yixuan Zhang e Lichao Sun, “MetaAgents: Simulating Interactions of Human Behaviors for LLM-Based Task-Oriented Coordination via Collaborative Generative Agents,” arXiv.org, 10 de outubro de 2023, https://arxiv.org/abs/2310.06500.
[4] Tula Masterman et al., “The Landscape of Emerging AI Agent Architectures for Reasoning, Planning, and Tool Calling: A Survey,” arXiv.org, 17 de abril de 2024, https://arxiv.org/abs/2404.11584.
[5] Masterman et al., “The Landscape of Emerging AI Agent Architectures,”
[6] Andrew Zhao et al., “Expel: LLM Agents Are Experiential Learners,” Proceedings of the AAAI Conference on Artificial Intelligence, March 24, 2024, https://ojs.aaai.org/index.php/AAAI/article/view/29936.
[7] Masterman et al., “The Landscape of Emerging AI Agent Architectures,”
[8] Jason Wei et al, “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models”, https://arxiv.org/abs/2201.11903.
[9] Sooyong Park e Vijayan Sugumaran, “Designing Multi-Agent Systems: A Framework and Application,” Expert Systems with Applications 28, no. 2 (February 2005): 259–71, https://doi.org/10.1016/j.eswa.2004.10.006.
[10] Masterman et al., “The Landscape of Emerging AI Agent Architectures,”
[11] Li et al, “MetaAgents: Simulating Interactions,”
[12] Lei Wang et al., "A Survey on Large Language Model Based Autonomous Agents - Frontiers of Computer Science", SpringerLink, 22 de março de 2024,.
[13] Li et al, “MetaAgents: Simulating Interactions,”
[14] Omer F. Rana and Kate Stout, “What Is Scalability in Multi-Agent Systems?,” ACM Digital Library, 1º de junho de 2000, https://dl.acm.org/doi/10.1145/336595.337033.
[15] Petrova-Dimitrova, Veselka, “Classifications of Intelligence Agents and Their Applications”, Journal of the Technical University – Sofia Plovdiv branch, Bulgaria “Fundamental Sciences and Applications, Vol. 28, 2022, https://journals.tu-plovdiv.bg/index.php/journal/article/view/559/43
[16] Li et al, “MetaAgents: Simulating Interactions,”
[17] Inc crewAI, “Crewai Agents,” crewAI, https://docs.crewai.com/core-concepts/Agents/#creating-an-agent
[18] “Shell (Bash),”LangChain, https://python.langchain.com/v0.2/docs/integrations/tools/bash.
[19] “Document Comparison,” LangChain, https://python.langchain.com/v0.1/docs/integrations/toolkits/document_comparison_toolkit
[20] “Python,” LangChain, https://python.langchain.com/v0.1/docs/integrations/toolkits/python
[21] Inc crewAI, “Crewai Tasks,” crewAI, https://docs.crewai.com/core-concepts/Tasks/#asynchronous-execution
[22] Inc crewAI, “Managing Processes in Crewai,” crewAI, https://docs.crewai.com/core-concepts/Processes/#hierarchical-process.
[23] MarioDeFelipe, “Multi AI Agents Use Case. SAP Maintenance Notification Creation,” SAP Community, 20 de fevereiro de 2024, https://community.sap.com/t5/artificial-intelligence-and-machine-learning-blogs/multi-ai-agents-use-case-sap-maintenance-notification-creation/ba-p/13608309
[24] Inc crewAI, “Crewai Crews,” crewAI, https://docs.crewai.com/core-concepts/Crews/#kicking-off-a-crew
[25] Inc crewAI, “Crewai Crews,” crewAI, https://docs.crewai.com/core-concepts/Crews/#different-ways-to-kicking-off-a-crew
[26] crewAIInc, “CREWAIINC/Crewai-Examples,” GitHub, https://github.com/crewAIInc/crewAI-examples?tab=readme-ov-file
[27] Thallyscostalat, “Building a Powerful Multi-Agent Workflow with Crewai and Groq,” Medium, 19 de maio de 2024, https://medium.com/@thallyscostalat/building-a-powerful-multi-agent-workflow-with-crewai-and-groq-55b4a1ba5cf6
[28] crewAIInc, “Crewai-Examples/Crewai-Langgraph at Main · CREWAIINC/Crewai-Examples,” GitHub, https://github.com/crewAIInc/crewAI-examples/tree/main/CrewAI-LangGraph
[29] crewAIInc, “Crewai-Examples/Stock_analysis at Main · CREWAIINC/Crewai-Examples,” GitHub, https://github.com/crewAIInc/crewAI-examples/tree/main/stock_analysis
[30] crewAIInc, “CREWAIINC/Crewai: Framework for Orchestrating Role-Playing, Autonomous AI Agents. by Fostering Collaborative Intelligence, Crewai Empowers Agents to Work Together Seamlessly, Tackling Complex Tasks.,” GitHub, https://github.com/crewAIInc/crewAI?tab=readme-ov-file#how-crewai-compares.
[31] Vrousgou, Olga, “Code Execution Is Now by Default inside Docker Container: Autogen,” AutoGen RSS, 23 de janeiro de 2024, https://microsoft.github.io/autogen/blog/2024/01/23/Code-execution-in-docker/.
[32] “Chatdev IDE: Building Your AI Agent,” ChatDev, https://chatdev.toscl.com/introduce/.