Pular para o conteúdo principal
InicioTutoriaisInteligência Artificial (IA)

CrewAI: Um guia com exemplos de sistemas de múltiplos agentes de IA

A CrewAI é uma plataforma que permite aos desenvolvedores criar e implementar fluxos de trabalho automatizados usando vários agentes de IA que colaboram para executar tarefas complexas.
Actualizado 13 de set. de 2024  · 9 min leer

Os agentes de IA são assistentes que podem executar tarefas e interagir com o mundo. Ao contrário dos sistemas tradicionais que seguem regras fixas, eles podem aprender e se adaptar a novas situações. Pense neles como robôs inteligentes que auxiliam em uma variedade de tarefas.

Mas o que diferencia os agentes de IA de outras entidades de IA, como os populares modelos de linguagem populares de que todos nós já ouvimos falar?

Neste artigo, abordarei essa questão e apresentarei a CrewAIuma estrutura Python gratuita e de código aberto criada para simplificar o desenvolvimento de sistemas de IA multiagentes. Exploraremos a distinção entre agentes e modelos de linguagem, discutiremos por que as estruturas de agentes são importantes para você criar aplicativos de IA. criar aplicativos de IAe demonstraremos como o CrewAI permite que os agentes colaborem e obtenham ótimos resultados.

Agentes de IA vs. LLMs

Vamos desfazer um mal-entendido comum sobre a diferença entre agentes e modelos de linguagem grandes (LLMs). Ambos pertencem à família da inteligência artificial, mas possuem recursos distintos.

Agentes de IA vs. LLMs

Modelos de idiomas, como ChatGPT e Geminisão altamente competentes no uso da linguagem. Eles passaram por um treinamento extensivo em grandes quantidades de texto e código, o que os dotou da capacidade de compreender e produzir uma linguagem que se assemelha muito à comunicação humana.

Os LLMs são especialistas em inteligência artificial, produzindo uma ampla variedade de conteúdo, incluindo traduções, resumos, narrativas criativas ou até mesmo poesia. Seu escopo é normalmente limitado a tarefas relacionadas ao idioma.

Os agentes, no entanto, estão concentrados principalmente em realizar ações. Eles são capazes de navegar, interagir com objetos e tomar decisões com base em suas percepções. 

Em resumo, os modelos de linguagem são cérebros e os agentes são mãos. Juntos, eles formam uma dupla poderosa.

Portanto, como os agentes desempenham um papel tão importante nos aplicativos de IA, como podemos gerenciar sua complexidade quando vários agentes precisam trabalhar juntos? É aqui que entram as estruturas de agentes.

A necessidade de uma estrutura de agente

A necessidade de estruturas de agentes decorre da crescente complexidade dos aplicativos de IA, especialmente aqueles que envolvem vários agentes trabalhando em colaboração para atingir um objetivo comum. Vamos ver por que as estruturas de agentes são essenciais.   

Orquestração e coordenação

À medida que os sistemas de IA crescem em escala, eles geralmente incorporam vários agentes com diversos recursos. Gerenciar essas interações e garantir que elas funcionem de forma harmoniosa torna-se cada vez mais difícil.

As estruturas de agentes oferecem um ambiente estruturado que permite a orquestração das atividades dos agentes, definindo suas funções e responsabilidades e melhorando a comunicação.

Em sistemas multiagentes, um aspecto importante é a alocação eficiente de tarefas para os agentes mais adequados e o gerenciamento eficaz de recursos compartilhados. As estruturas de agentes oferecem mecanismos dinâmicos para alocação de tarefas, negociação de recursos e resolução de conflitos.

Modularidade e reutilização

As estruturas de agentes promovem uma abordagem modular para o desenvolvimento de IA, em que os agentes são projetados e implementados como componentes independentes. Essa modularidade permite uma melhor organização do código e possibilita a reutilização de módulos de agentes em vários projetos, simplificando assim o desenvolvimento e a manutenção de sistemas complexos. Com essa estrutura baseada em componentes, os desenvolvedores de IA podem se concentrar em agentes individuais sem interromper o sistema maior.

Além disso, as estruturas de agentes geralmente adotam uma arquitetura baseada em funções, permitindo que os desenvolvedores atribuam funções específicas aos agentes, que definem seus recursos e permissões. Esse design baseado em funções leva a um sistema mais organizado e gerenciável, no qual os agentes podem ser adicionados, removidos ou modificados com impacto mínimo na arquitetura geral. Essa flexibilidade garante que os sistemas possam evoluir e se adaptar a novos requisitos sem uma reengenharia significativa.

Adaptabilidade e aprendizado

Os ambientes do mundo real geralmente são dinâmicos, imprevisíveis e estão em constante evolução. As estruturas de agentes equipam os agentes para que percebam as mudanças em seu ambiente e adaptem seus comportamentos de acordo com elas. Essa adaptabilidade garante que os agentes possam funcionar de forma eficaz mesmo em cenários complexos e em constante mudança, tornando-os melhores para lidar com os desafios do mundo real.

Além disso, as estruturas de agentes frequentemente incorporam mecanismos de aprendizado que permitem que os agentes melhorem seu desempenho ao longo do tempo. Ao aprender com o feedback e as experiências, os agentes podem otimizar continuamente seus processos de tomada de decisão e se adaptar a novos desafios à medida que eles surgem. Essa melhoria contínua permite que os agentes se tornem mais eficazes e valiosos, contribuindo para a eficiência e o sucesso do sistema a longo prazo.

E por falar em estruturas de agentes, vamos apresentar uma que está causando impacto na comunidade de IA: CrewAI.

O que é a CrewAI?

O CrewAI é uma estrutura Python de código aberto projetada para dar suporte ao desenvolvimento e ao gerenciamento de sistemas de IA multiagentes.

O CrewAI aprimora esses sistemas de IA atribuindo funções específicas, permitindo a tomada de decisões autônomas e facilitando a comunicação entre os agentes. Essa abordagem permite que eles resolvam problemas complexos com mais eficiência do que agentes individuais trabalhando sozinhos.

Logotipo da CrewAI

Essa estrutura consiste em uma série de ferramentas, incluindo mecanismos de pesquisa na Web e modelos de linguagem, permitindo que os agentes se envolvam com o mundo externo, coletem informações e ajam para cumprir seus objetivos.

O design e o dimensionamento do CrewAI o tornam perfeito para o desenvolvimento de aplicativos multiagentes básicos e complexos, incentivando um método colaborativo para enfrentar desafios e tomar decisões em sistemas de IA.

Vamos dar uma olhada em alguns dos principais recursos que tornam o CrewAI uma ferramenta avançada para a criação de sistemas multiagentes.

  • Orquestração de agentes: A CrewAI garante que cada agente saiba qual é a sua parte no desempenho. Ele fornece as ferramentas para definir e coordenar os comportamentos dos agentes, garantindo que todos estejam jogando em sincronia.
  • Arquitetura baseada em funções: Assim como atribuir diferentes instrumentos aos músicos, o CrewAI permite que você atribua funções específicas aos agentes, definindo seus recursos e permissões. Isso cria um sistema modular e bem estruturado, mesmo quando as coisas ficam complexas.
  • Comunicação flexível: O CrewAI oferece suporte a vários canais de comunicação, permitindo que os agentes troquem informações sem problemas. Pense nisso como se você tivesse um bate-papo particular, uma discussão em grupo e um megafone, tudo em um só lugar.
  • Integração de ferramentas: A CrewAI permite que os agentes interajam com o mundo por meio de várias ferramentas. Essas ferramentas permitem que os agentes pesquisem na Web, entendam a linguagem, analisem dados e executem tarefas personalizadas.
  • Escalabilidade: O CrewAI foi projetado para ser dimensionado sem esforço, garantindo que seu sistema multiagente permaneça responsivo e eficiente à medida que cresce.

Mas quais são os benefícios que a CrewAI traz para você? Vamos explorar suas vantagens.

Benefícios de usar o CrewAI

O Crew.ai permite que vários agentes de IA colaborem, compartilhem conhecimento e coordenem suas ações em direção a um objetivo comum.

Ao automatizar a distribuição de tarefas e o gerenciamento de recursos, o Crew.ai permite que os agentes se concentrem em suas funções específicas com o mínimo de sobrecarga.

A estrutura também oferece suporte à adaptabilidade, permitindo que os agentes ajustem seu comportamento com base em condições ou objetivos variáveis.

Além disso, o Crew.ai simplifica o processo de desenvolvimento com uma plataforma fácil de usar para criar e gerenciar sistemas multiagentes.

Benefícios da CrewAI

Outro ponto forte do CrewAI é sua integração com uma ampla gama de ferramentas. Isso amplia os recursos dos agentes, permitindo que eles interajam com o mundo externo e coletem informações.

O CrewAI oferece suporte a ferramentas como mecanismos de pesquisa na Web, modelos de linguagem, ferramentas de análise de dados e até mesmo funcionalidades personalizadas. Isso permite que os agentes executem tarefas que vão além de seus recursos principais, como a recuperação de informações da Web ou a realização de análises de dados complexas.

Prática: Criando uma ferramenta de pesquisa na Web com a CrewAI

Vamos arregaçar as mangas e criar um fluxo de trabalho usando as ferramentas da CrewAI para extrair o conteúdo do site e, em seguida, executar o RAG nele. 

Precisamos escrever o código que fará com que a ferramenta funcione. Antes de começarmos, vamos instalar os pacotes crewai-tools e crewai usando pip:

pip install crewai-tools crewai

Depois que você tiver instalado os pacotes, siga as etapas abaixo. Neste exemplo, usaremos três ferramentas diferentes: ScrapeWebsiteTool para extrair o site, FileWriterTool para gravar o arquivo e TXTSearchTool para pesquisar o contexto do RAG. Vamos começar.

Etapa 1: Extração de um site

Primeiro, importamos as bibliotecas necessárias e inicializamos o site ScrapeWebsiteTool. Essa ferramenta é usada para extrair conteúdo de um site. Nesse caso, ele está configurado para extrair conteúdo da página "Artificial Intelligence" da Wikipedia:

from crewai_tools import ScrapeWebsiteTool, FileWriterTool, TXTSearchTool
import requests

# Initialize the tool, potentially passing the session
tool = ScrapeWebsiteTool(website_url='https://en.wikipedia.org/wiki/Artificial_intelligence')  

# Extract the text
text = tool.run()
print(text)

Step2: Escreva o texto extraído em um arquivo

Agora usamos o FileWriterTool para salvar o texto extraído em um arquivo chamado ai.txt.

# Initialize the tool
file_writer_tool = FileWriterTool()

# Write content to a file in a specified directory
result = file_writer_tool._run(filename='ai.txt', content = text, directory = '', overwrite=True)
print(result)

Etapa 3: Configurar a ferramenta de pesquisa de texto

Configuramos outra ferramenta para pesquisar o conteúdo do arquivo ai.txt que acabamos de salvar. Também definimos a variável de ambiente para a chave da API da OpenAI.

import os
from crewai_tools import TXTSearchTool

os.environ['OPENAI_API_KEY'] = 'API-KEY'

# Initialize the tool with a specific text file, so the agent can search within the given text file's content
tool = TXTSearchTool(txt='ai.txt')

Etapa 4: Criar um agente para a tarefa e executá-la

Criamos um agente analista de dados com a função de educador. A tarefa desse agente é responder à pergunta "O que é processamento de linguagem natural?" com base no texto que pesquisamos no arquivo.

from crewai import Agent, Task, Crew

context = tool.run('What is natural language processing?')

data_analyst = Agent(
    role='Educator',
    goal=f'Based on the context provided, answer the question - What is Natural Language Processing? Context - {context}',
    backstory='You are a data expert',
    verbose=True,
    allow_delegation=False,
    tools=[tool]
)

test_task = Task(
    description="Understand the topic and give the correct response",
    tools=[tool],
    agent=data_analyst,
    expected_output='Give a correct response'
)

crew = Crew(
    agents=[data_analyst],
    tasks=[test_task]
)

output = crew.kickoff()

Saída:

saída do agente de tripulação

Conclusão

O CrewAI oferece uma plataforma prática para o gerenciamento de sistemas multiagentes. Seja na extração de conteúdo ou na delegação de tarefas, essa estrutura oferece suporte à colaboração entre agentes e os ajuda a se adaptar e melhorar.

Ao integrar ferramentas e fornecer uma estrutura organizada, o CrewAI facilita para os desenvolvedores o gerenciamento das interações dos agentes, a distribuição de tarefas e a garantia de um desempenho ideal.

Desenvolver aplicativos de IA

Aprenda a criar aplicativos de IA usando a API OpenAI.

Comece a Treinar Gratuitamente

Photo of Bhavishya Pandit
Author
Bhavishya Pandit
LinkedIn
Twitter

Engenheiro sênior de GenAI e criador de conteúdo que obteve 20 milhões de visualizações ao compartilhar conhecimento sobre GenAI e ciência de dados.

Temas

Aprenda IA com estes cursos!

Certificação disponível

Course

Desenvolvimento de sistemas de IA com a API OpenAI

3 hr
3K
Aproveite a API OpenAI para deixar seus aplicativos de IA prontos para produção.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow