CrewAI : estrutura de ponta para orquestrar agentes de IA autônomos e role-playing. Ao promover a inteligência colaborativa, a CrewAI permite que os agentes trabalhem juntos de forma integrada, lidando com tarefas complexas.
Página inicial | Documentação | Converse com o Documentos | Exemplos | Discurso
Por que CrewAI?
Começando
Principais recursos
Exemplos
Tutorial rápido
Escreva descrições de cargos
Planejador de viagem
Análise de estoque
Conectando sua equipe a um modelo
Como o CrewAI se compara
Contribuição
Telemetria
Licença
O poder da colaboração com IA tem muito a oferecer. CrewAI foi projetado para permitir que agentes de IA assumam funções, compartilhem objetivos e operem em uma unidade coesa – como uma equipe bem lubrificada. Esteja você construindo uma plataforma de assistente inteligente, um conjunto automatizado de atendimento ao cliente ou uma equipe de pesquisa multiagente, a CrewAI fornece a espinha dorsal para interações multiagentes sofisticadas.
Para começar com CrewAI, siga estas etapas simples:
Certifique-se de ter Python >=3.10 <=3.13 instalado em seu sistema. CrewAI usa UV para gerenciamento de dependências e manipulação de pacotes, oferecendo uma experiência perfeita de configuração e execução.
Primeiro, instale o CrewAI:
pip instalar tripulaçãoai
Se desejar instalar o pacote ‘crewai’ junto com seus recursos opcionais que incluem ferramentas adicionais para agentes, você pode fazer isso usando o seguinte comando:
pip instalar 'crewai[ferramentas]'
O comando acima instala o pacote básico e também adiciona componentes extras que requerem mais dependências para funcionar.
Para criar um novo projeto CrewAI, execute o seguinte comando CLI (Command Line Interface):
Crewai criar equipe <project_name>
Este comando cria uma nova pasta de projeto com a seguinte estrutura:
my_project/ ├── .gitignore ├── pyproject.toml ├── README.md ├── .env └── src/ └── my_project/ ├── __init__.py ├── main.py ├── crew.py ├── tools/ │ ├── custom_tool.py │ └── __init__.py └── config/ ├── agents.yaml └── tasks.yaml
Agora você pode começar a desenvolver sua equipe editando os arquivos na pasta src/my_project
. O arquivo main.py
é o ponto de entrada do projeto, o arquivo crew.py
é onde você define sua equipe, o arquivo agents.yaml
é onde você define seus agentes e o arquivo tasks.yaml
é onde você define suas tarefas.
Modifique src/my_project/config/agents.yaml
para definir seus agentes.
Modifique src/my_project/config/tasks.yaml
para definir suas tarefas.
Modifique src/my_project/crew.py
para adicionar sua própria lógica, ferramentas e argumentos específicos.
Modifique src/my_project/main.py
para adicionar entradas personalizadas para seus agentes e tarefas.
Adicione suas variáveis de ambiente ao arquivo .env
.
Instacie sua tripulação:
Crewai criar tripulação mais recente desenvolvimento de IA
Modifique os arquivos conforme necessário para se adequar ao seu caso de uso:
agentes.yaml
# src/my_project/config/agents.yamlresearcher: role: > {topic} Objetivo do pesquisador de dados sênior: > Descubra desenvolvimentos de ponta na história de fundo de {topic}: > Você é um pesquisador experiente com um talento especial para descobrir os desenvolvimentos mais recentes em {tópico}. Conhecido pela sua capacidade de encontrar as informações mais relevantes e apresentá-las de forma clara e concisa. reporting_analyst: role: > {topic} Objetivo do analista de relatórios: > Criar relatórios detalhados com base na análise de dados de {topic} e nas descobertas da pesquisa. Histórico: > Você é um analista meticuloso com um olhar atento aos detalhes. Você é conhecido por sua capacidade de transformar dados complexos em relatórios claros e concisos, facilitando que outras pessoas entendam e atuem com base nas informações que você fornece.
tarefas.yaml
# src/my_project/config/tasks.yamlresearch_task: description: > Conduza uma pesquisa completa sobre {topic} Certifique-se de encontrar qualquer informação interessante e relevante, visto que o ano atual é 2024. esperado_output: > Uma lista com 10 marcadores dos mais informações relevantes sobre {tópico} agente: pesquisadorreporting_task: descrição: > Revise o contexto obtido e expanda cada tópico em uma seção completa para um relatório. Certifique-se de que o relatório seja detalhado e contenha toda e qualquer informação relevante. esperado_output: > Relatórios completos com os principais tópicos, cada um com uma seção completa de informações. Formatado como markdown sem agente '```': reporting_analyst arquivo_de_saída: relatório.md
tripulação.py
# src/my_project/crew.pyfrom Crewai import Agent, Crew, Process, Taskfrom Crewai.project import CrewBase, agente, tripulação, taskfrom Crewai_tools import SerperDevTool@CrewBaseclass LatestAiDevelopmentCrew(): """LatestAiDevelopment Crew"""@agentdef pesquisador(self ) -> Agente: return Agente( config=self.agents_config['researcher'], verbose = Verdadeiro, ferramentas = [SerperDevTool ()] ) @agentdef reporting_analyst(self) -> Agente: return Agente( config=self.agents_config['reporting_analyst'], detalhado=True ) @taskdef research_task(self) -> Tarefa: return Task( config=self.tasks_config['research_task'], ) @taskdef reporting_task(self) -> Tarefa: return Task( config=self.tasks_config['reporting_task'], output_file='report.md' ) @crewdef crew(self) -> Crew: """Cria a equipe LatestAiDevelopment"""return Crew( agents=self.agents, # Criado automaticamente pelo @agent decoratortasks=self.tasks, # Criado automaticamente pelo @task decoratorprocess=Process.sequential, detalhado=True, )
principal.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfrom last_ai_development.crew import LatestAiDevelopmentCrewdef run():""" Execute a equipe. """inputs = {'topic': 'AI Agents'}LatestAiDevelopmentCrew ().crew().kickoff(entradas=entradas)
Antes de executar sua equipe, certifique-se de ter as seguintes chaves definidas como variáveis de ambiente em seu arquivo .env
:
Uma chave de API OpenAI (ou outra chave de API LLM): OPENAI_API_KEY=sk-...
Uma chave de API Serper.dev: SERPER_API_KEY=YOUR_KEY_HERE
Bloqueie as dependências e instale-as usando o comando CLI, mas primeiro navegue até o diretório do seu projeto:
cd meu_projeto instalação da tripulação (opcional)
Para executar sua tripulação, execute o seguinte comando na raiz do seu projeto:
corrida da tripulação
ou
python src/meu_projeto/main.py
Se ocorrer um erro devido ao uso de poesia, execute o seguinte comando para atualizar seu pacote Crewai:
atualização da tripulação
Você deverá ver a saída no console e o arquivo report.md
deverá ser criado na raiz do seu projeto com o relatório final completo.
Além do processo sequencial, você pode utilizar o processo hierárquico, que atribui automaticamente um gestor à equipe definida para coordenar adequadamente o planejamento e execução das tarefas por meio de delegação e validação de resultados. Veja mais sobre os processos aqui.
Design de agente baseado em função : personalize agentes com funções, objetivos e ferramentas específicas.
Delegação autônoma entre agentes : os agentes podem delegar tarefas de forma autônoma e fazer perguntas entre si, aumentando a eficiência na resolução de problemas.
Gerenciamento flexível de tarefas : defina tarefas com ferramentas personalizáveis e atribua-as aos agentes de forma dinâmica.
Orientado a Processos : Atualmente suporta apenas execução sequential
de tarefas e processos hierarchical
, mas processos mais complexos como consensuais e autônomos estão sendo trabalhados.
Salvar saída como arquivo : salve a saída de tarefas individuais como um arquivo para poder usá-la mais tarde.
Analisar a saída como Pydantic ou Json : analise a saída de tarefas individuais como um modelo Pydantic ou como Json, se desejar.
Funciona com modelos de código aberto : execute sua equipe usando IA aberta ou modelos de código aberto, consulte a página Connect CrewAI to LLMs para obter detalhes sobre como configurar as conexões de seus agentes com modelos, mesmo aqueles em execução localmente!
Você pode testar diferentes exemplos da vida real de equipes de IA no repositório de exemplos CrewAI:
Gerador de página de destino
Ter participação humana na execução
Planejador de viagem
Análise de estoque
Confira o código deste exemplo ou assista ao vídeo abaixo:
Confira o código deste exemplo ou assista ao vídeo abaixo:
Confira o código deste exemplo ou assista ao vídeo abaixo:
CrewAI oferece suporte ao uso de vários LLMs por meio de uma variedade de opções de conexão. Por padrão, seus agentes usarão a API OpenAI ao consultar o modelo. No entanto, existem várias outras maneiras de permitir que seus agentes se conectem aos modelos. Por exemplo, você pode configurar seus agentes para usarem um modelo local por meio da ferramenta Ollama.
Consulte a página Connect CrewAI to LLMs para obter detalhes sobre como configurar as conexões de seus agentes com os modelos.
Vantagem do CrewAI : CrewAI é construído com a produção em mente. Oferece a flexibilidade dos agentes conversacionais do Autogen e a abordagem de processo estruturado do ChatDev, mas sem a rigidez. Os processos da CrewAI são projetados para serem dinâmicos e adaptáveis, adaptando-se perfeitamente aos fluxos de trabalho de desenvolvimento e produção.
Autogen : Embora o Autogen seja bom na criação de agentes conversacionais capazes de trabalhar juntos, falta-lhe um conceito inerente de processo. No Autogen, orquestrar as interações dos agentes requer programação adicional, que pode se tornar complexa e complicada à medida que a escala das tarefas aumenta.
ChatDev : ChatDev introduziu a ideia de processos no domínio dos agentes de IA, mas sua implementação é bastante rígida. As customizações no ChatDev são limitadas e não voltadas para ambientes de produção, o que pode prejudicar a escalabilidade e flexibilidade em aplicações do mundo real.
CrewAI é de código aberto e agradecemos contribuições. Se você deseja contribuir, por favor:
Bifurque o repositório.
Crie uma nova ramificação para seu recurso.
Adicione seu recurso ou melhoria.
Envie uma solicitação pull.
Agradecemos sua contribuição!
bloqueio uv sincronização UV
uv venv
instalação pré-confirmada
uv execute pytest.
uvx meupy
construção uv
pip instalar dist/*.tar.gz
CrewAI utiliza telemetria anônima para coletar dados de uso com o objetivo principal de nos ajudar a melhorar a biblioteca, concentrando nossos esforços nos recursos, integrações e ferramentas mais utilizadas.
É fundamental entender que NÃO são coletados dados relativos a prompts, descrições de tarefas, histórias ou objetivos dos agentes, uso de ferramentas, chamadas de API, respostas, quaisquer dados processados pelos agentes ou segredos e variáveis de ambiente, com exceção das condições mencionadas . Quando o recurso share_crew
está habilitado, dados detalhados, incluindo descrições de tarefas, histórias ou objetivos dos agentes e outros atributos específicos, são coletados para fornecer insights mais profundos, respeitando a privacidade do usuário. Não oferecemos uma maneira de desativá-lo agora, mas ofereceremos no futuro.
Os dados coletados incluem:
Versão do CrewAI
Assim podemos entender quantos usuários estão usando a versão mais recente
Versão do Python
Assim, podemos decidir quais versões serão melhor suportadas
SO geral (por exemplo, número de CPUs, macOS/Windows/Linux)
Portanto, sabemos em qual sistema operacional devemos nos concentrar e se poderíamos construir recursos específicos relacionados ao sistema operacional
Número de agentes e tarefas em uma equipe
Portanto, garantimos que estamos testando internamente com casos de uso semelhantes e educamos as pessoas sobre as melhores práticas
Processo de tripulação sendo usado
Entenda onde devemos concentrar nossos esforços
Se os Agentes estiverem usando memória ou permitindo delegação
Entenda se melhoramos os recursos ou talvez até os abandonamos
Se as tarefas estiverem sendo executadas em paralelo ou sequencialmente
Entenda se devemos focar mais na execução paralela
Modelo de linguagem sendo usado
Suporte aprimorado nos idiomas mais usados
Funções dos agentes em uma tripulação
Entenda casos de uso de alto nível para que possamos construir melhores ferramentas, integrações e exemplos sobre isso
Nomes de ferramentas disponíveis
Entender dentre as ferramentas disponíveis publicamente, quais estão sendo mais utilizadas para que possamos melhorá-las
Os usuários podem optar pela Telemetria Adicional, compartilhando os dados completos de telemetria definindo o atributo share_crew
como True
em suas Tripulações. A ativação share_crew
resulta na coleta de dados detalhados da equipe e da execução de tarefas, incluindo goal
, backstory
, context
e output
de tarefas. Isso permite uma visão mais profunda dos padrões de uso, respeitando a escolha do usuário de compartilhar.
CrewAI é lançado sob a licença MIT.
R: CrewAI é uma estrutura de ponta para orquestrar agentes de IA autônomos e role-playing. Ele permite que os agentes trabalhem juntos de forma integrada, lidando com tarefas complexas por meio de inteligência colaborativa.
R: Você pode instalar o CrewAI usando pip:
pip instalar tripulaçãoai
Para ferramentas adicionais, use:
pip instalar 'crewai[ferramentas]'
R: Sim, CrewAI oferece suporte a vários LLMs, incluindo modelos locais. Você pode configurar seus agentes para usar modelos locais por meio de ferramentas como Ollama e LM Studio. Verifique a documentação do LLM Connections para obter mais detalhes.
R: Os principais recursos incluem design de agente baseado em função, delegação autônoma entre agentes, gerenciamento flexível de tarefas, execução orientada a processos, salvamento de saída como arquivos e compatibilidade com modelos proprietários e de código aberto.
R: CrewAI foi projetado pensando na produção, oferecendo flexibilidade semelhante aos agentes de conversação da Autogen e processos estruturados como ChatDev, mas com mais adaptabilidade para aplicações do mundo real.
R: Sim, CrewAI é de código aberto e aceita contribuições da comunidade.
R: CrewAI usa telemetria anônima para coletar dados de uso para fins de melhoria. Nenhum dado confidencial (como prompts, descrições de tarefas ou chamadas de API) é coletado. Os usuários podem optar por compartilhar dados mais detalhados definindo share_crew=True
em suas equipes.
R: Você pode encontrar vários exemplos da vida real no repositório de exemplos do CrewAI, incluindo planejadores de viagens, ferramentas de análise de estoque e muito mais.
R: Contribuições são bem-vindas! Você pode bifurcar o repositório, criar um novo branch para seu recurso, adicionar sua melhoria e enviar uma solicitação pull. Verifique a seção Contribuição no README para obter mais detalhes.