Article image
Felipe Paniago
Felipe Paniago08/07/2025 08:56
Compartilhe

Montando um Crew Básico com CrewAI

    Se você é um desenvolvedor interessado em criar sistemas inteligentes que coordenam múltiplos agentes de IA para executar tarefas complexas de forma organizada, este artigo é para você. Aqui, vamos explorar como montar um Crew básico utilizando a classe Crew da biblioteca CrewAI, uma ferramenta poderosa para orquestrar agentes e tarefas em Python de forma prática e eficiente.

    Sobre a tecnologia CrewAI

    CrewAI é uma biblioteca robusta para orquestração de múltiplos agentes de inteligência artificial, projetada para coordenar suas interações, habilidades e objetivos, possibilitando a automação de fluxos de trabalho complexos. Cada agente é configurado com um papel, objetivos, e uma "backstory" que orienta seu comportamento, enquanto o Crew gerencia o fluxo de tarefas entre eles. Essa estrutura é especialmente útil em aplicações como planejamento colaborativo, criação de conteúdo automatizada, análise de dados, entre outras demandas que exigem múltiplas etapas e agentes especializados.

    Conceitos fundamentais: Agents, Tasks e Crew

    - Agents (Agentes): Entidades com papéis e metas específicas que executam ações baseadas em suas configurações.

    - Tasks (Tarefas): Atividades atribuídas aos agentes, contendo descrições claras e resultados esperados, podendo também utilizar ferramentas adicionais para ampliar suas capacidades.

    - Crew (Equipe): O componente que agrupa os agentes e tarefas, gerenciando o fluxo de execução por meio do parâmetro `process` e controlando o nível de detalhes exibido via `verbose`.

    Implementação: Montando seu primeiro Crew

    Vamos construir um exemplo prático onde definimos dois agentes com papéis distintos e suas tarefas associadas, organizadas em um fluxo sequencial para facilitar o acompanhamento e o gerenciamento das execuções.

    from crewai import Agent, Task, Crew, Process
    
    # Definindo o agente Analista de Dados com seu papel, objetivo e histórico
    agent_data_analyst = Agent(
      role="Data Analyst",  # Papel do agente
      goal="Analyze data trends in the market",  # Objetivo esperado
      backstory="Experienced in economics and data analysis.",  # Contexto para tomada de decisão
      verbose=True  # Ativa logs detalhados para depuração
    )
    
    # Definindo o agente Pesquisador de Mercado com suas características
    agent_market_researcher = Agent(
      role="Market Researcher",
      goal="Gather information on market dynamics",
      backstory="Detail-oriented researcher",
      verbose=True
    )
    
    # Criando uma tarefa de coleta e análise de dados para o Analista
    task_data_collection = Task(
      description="Collect recent market data and identify trends.",  # Descrição clara da tarefa
      expected_output="Summary report of market trends.",  # Resultado esperado
      agent=agent_data_analyst  # Agente responsável
    )
    
    # Criando uma tarefa de pesquisa aprofundada para o Pesquisador
    task_dynamics_research = Task(
      description="Research factors affecting market dynamics.",
      expected_output="Detailed analysis of market factors.",
      agent=agent_market_researcher
    )
    
    # Montando o Crew com os agentes e tarefas definidos, processo sequencial e verbose ativado
    simple_crew = Crew(
      agents=[agent_data_analyst, agent_market_researcher],  # Lista de agentes
      tasks=[task_data_collection, task_dynamics_research],  # Lista de tarefas
      process=Process.sequential,  # Execução sequencial das tarefas
      verbose=True  # Exibição dos logs detalhados
    )
    
    # Executando o fluxo de trabalho do Crew
    result = simple_crew.kickoff()
    
    # Exibindo o resultado bruto da execução
    print(result.raw)
    

    Explicação passo a passo

    1. Definição dos agentes: Criamos dois agentes com papéis bem definidos, incluindo uma meta clara e um contexto que ajuda a direcionar seu comportamento.

    2. Associação das tarefas: Cada agente recebe uma tarefa específica, descrita com clareza e com o resultado esperado bem definido.

    3. Configuração do Crew: Os agentes e tarefas são agrupados na classe Crew, configurados para executar as tarefas de forma sequencial, facilitando a análise e controle do fluxo.

    4. Ativação do modo verbose: Para acompanhar o andamento da execução em detalhes e facilitar o debug.

    5. Execução do processo: A função `kickoff()` inicia a execução do fluxo, acionando os agentes para realizarem suas tarefas conforme definido.

    6. Resultado: O retorno pode ser acessado por meio da propriedade `raw`, contendo os outputs gerados pelas tarefas.

    Parâmetros essenciais da classe Crew

    - agents: lista contendo objetos do tipo Agent que participam do fluxo.

    - tasks: lista contendo objetos do tipo Task associadas aos agentes.

    - process: define a ordem e modo de execução das tarefas, podendo ser `Process.sequential` para uma execução linear, ou `Process.hierarchical` para fluxos com gerência entre agentes.

    - verbose: booleano que controla a exibição detalhada dos logs da execução, essencial para entender o comportamento dos agentes durante o desenvolvimento.

    Exemplo de caso de uso real: Planejamento de viagens com TripCrew

    Um dos usos práticos da CrewAI é no desenvolvimento do TripCrew, que reúne agentes especializados para selecionar cidades, pesquisar informações locais e montar roteiros personalizados. Esse exemplo real demonstra o poder da orquestração colaborativa, onde agentes dividem responsabilidades e cooperam em tarefas complexas, facilitando o planejamento integrado e dinâmico.

    Próximos passos para aprofundar o conhecimento

    - Explore diferentes estratégias de processo, como `Process.hierarchical`, para entender como criar hierarquias e fluxos gerenciados de agentes.

    - Incorpore ferramentas auxiliares (tools) para ampliar a abrangência e funcionalidade dos agentes.

    - Personalize agentes e tarefas através de configurações em YAML para facilitar a manutenção e escalabilidade.

    - Utilize funcionalidades avançadas, tais como planejamento automático e memória integrada, para criar sistemas inteligentes mais sofisticados.

    Conclusão

    Montar um Crew básico com CrewAI é uma excelente porta de entrada para desenvolvedores que desejam automatizar fluxos de trabalho complexos através da orquestração de múltiplos agentes de IA. Ao compreender os conceitos de agents, tasks e a gestão executiva feita pela Crew, você estará apto a construir sistemas altamente colaborativos, flexíveis e com grande potencial de aplicação em diversas áreas.

    Para dar continuidade ao seu aprendizado e dominar ainda mais a configuração e uso do CrewAI, não deixe de conferir o curso completo e detalhado oferecido pela DIO.

    Conheça o novo curso da DIO de CrewAI: https://www.dio.me/courses/instalacao-e-configuracao-do-crewai

    Compartilhe
    Comentários (0)