Visão Geral
Uma crew no crewAI representa um grupo colaborativo de agentes trabalhando em conjunto para alcançar um conjunto de tarefas. Cada crew define a estratégia de execução de tarefas, colaboração entre agentes e o fluxo de trabalho geral.Atributos de Crew
Criando Crews
Existem duas maneiras principais de criar crews no CrewAI: utilizando configuração JSONC (recomendada para novas crews) ou definindo a crew em código para projetos clássicos e casos avançados.Configuração JSONC (Recomendado)
Novos projetos criados comcrewai create crew <name> usam crew.jsonc para configurações da crew e tarefas, além de um arquivo por agente em agents/. crewai run detecta crew.jsonc ou crew.json, carrega os agentes referenciados, pergunta por placeholders ausentes e inicia a crew.
crew.jsonc
agents resolve primeiro para agents/<name>.jsonc e depois para agents/<name>.json. Para crews hierárquicas, use "process": "hierarchical" com manager_llm ou manager_agent.
Configuração YAML Clássica
Projetos clássicos criados comcrewai create crew <name> --classic usam crew.py, config/agents.yaml, config/tasks.yaml e os decorators @CrewBase, @agent, @task e @crew.
Essa abordagem continua suportada para projetos existentes em Python/YAML e para equipes que precisam de controle explícito via decorators.
Após criar um projeto clássico, você pode definir sua crew em uma classe que herda de CrewBase e utiliza decorators para definir agentes, tarefas e a própria crew.
Exemplo de Classe Crew com Decorators
code
code
As tarefas serão executadas na ordem em que forem definidas.
CrewBase, junto com esses decorators, automatiza a coleta de agentes e tarefas, reduzindo a necessidade de gerenciamento manual.
Visão geral dos Decorators de annotations.py
O CrewAI fornece vários decorators no arquivo annotations.py que são usados para marcar métodos dentro de sua classe crew para tratamento especial:
@CrewBase: Marca a classe como classe base de crew.@agent: Denota um método que retorna um objetoAgent.@task: Denota um método que retorna um objetoTask.@crew: Denota o método que retorna o objetoCrew.@before_kickoff: (Opcional) Marca um método a ser executado antes da crew iniciar.@after_kickoff: (Opcional) Marca um método a ser executado após a crew finalizar.
Definição Direta em Código (Alternativa)
Como alternativa, você pode definir a crew diretamente em código sem utilizar arquivos de configuração YAML.code
code
- Agentes e tarefas são definidos diretamente dentro da classe, sem decorators.
- Criamos e gerenciamos manualmente a lista de agentes e tasks.
- Essa abordagem fornece mais controle, mas pode ser menos sustentável para projetos maiores.
Saída da Crew
A saída de uma crew no framework CrewAI é encapsulada na classeCrewOutput.
Essa classe fornece uma forma estruturada de acessar os resultados da execução da crew, incluindo vários formatos como string bruta, JSON e modelos Pydantic.
O CrewOutput inclui os resultados da tarefa final, uso de tokens e as saídas das tasks individuais.
Atributos do Crew Output
Métodos e Propriedades do Crew Output
Acessando a Saída da Crew
Após executar uma crew, sua saída pode ser acessada pelo atributooutput do objeto Crew. A classe CrewOutput oferece várias formas de interagir com esta saída.
Exemplo
Code
Acessando Logs da Crew
Você pode visualizar o log em tempo real da execução da crew, definindooutput_log_file como True(Boolean) ou um file_name(str). Suporta logging de eventos como tanto file_name.txt quanto file_name.json.
Se for True(Boolean), salvará como logs.txt.
Caso output_log_file seja False(Boolean) ou None, os logs não serão gerados.
Code
Utilização de Memória
As crews podem utilizar memória (curto prazo, longo prazo e memória de entidade) para potencializar sua execução e aprendizado ao longo do tempo. Este recurso permite que as crews armazenem e recuperem memórias de execução, auxiliando na tomada de decisão e nas estratégias de execução de tasks.Utilização de Cache
Caches podem ser utilizados para armazenar resultados de execuções de ferramentas, tornando o processo mais eficiente ao evitar a reexecução de tasks idênticas.Métricas de Uso da Crew
Após a execução da crew, você pode acessar o atributousage_metrics para visualizar as métricas de uso do modelo de linguagem (LLM) para todas as tasks executadas pela crew. Isso fornece insights sobre eficiência operacional e oportunidades de melhoria.
Code
Processo de Execução da Crew
- Sequential Process: As tasks são executadas uma após a outra, permitindo um fluxo de trabalho linear.
- Hierarchical Process: Um agente gerente coordena a crew, delegando tarefas e validando resultados antes de prosseguir. Nota: Um
manager_llmoumanager_agenté necessário para este processo e é essencial para validar o fluxo.
Iniciando uma Crew
Uma vez que sua crew esteja montada, inicie o workflow com o métodokickoff(). Isso inicia a execução conforme o fluxo de processo definido.
Code
Diferentes Formas de Iniciar uma Crew
Assim que sua crew estiver definida, inicie o fluxo de trabalho com o método kickoff apropriado. O CrewAI oferece vários métodos para melhor controle do processo.Métodos Síncronos
kickoff(): Inicia o processo de execução seguindo o fluxo definido.kickoff_for_each(): Executa tasks sequencialmente para cada evento de entrada ou item da coleção fornecida.
Métodos Assíncronos
O CrewAI oferece duas abordagens para execução assíncrona:Para cargas de trabalho de alta concorrência,
akickoff() e akickoff_for_each() são recomendados pois usam async nativo para execução de tasks, operações de memória e recuperação de conhecimento.Code
Streaming na Execução da Crew
Para visibilidade em tempo real da execução da crew, você pode habilitar streaming para receber saída conforme é gerada:Code
Repetindo Execução a partir de uma Task Específica
Agora é possível reiniciar a execução a partir de uma task específica usando o comando CLIreplay.
O recurso de replay no CrewAI permite reexecutar a partir de uma task específica através da interface de linha de comando (CLI). Rodando o comando crewai replay -t <task_id>, você pode especificar o task_id para o processo de replay.
Kickoffs agora salvam localmente as saídas das tasks dos kickoffs recentes para permitir replay posteriormente.
Repetindo a Partir de uma Task Específica Usando o CLI
Para usar o recurso de replay, siga estes passos:- Abra seu terminal ou prompt de comando.
- Navegue até o diretório do seu projeto CrewAI.
- Execute o seguinte comando:
