Tropecei no CrewAI algumas semanas atrás por meio do curso "Practical Multi AI Agents and Advanced Use Cases with crewAI". Embora inicialmente relutante em experimentá-lo já que estou usando Langgraph para meu agente Sydney, duas coisas despertaram meu interesse:
- Estava explorando formas de criar podcasts do zero, particularmente focando em como usar IA Generativa para "raciocinar" sobre meus 15 anos de conteúdo de blog em vez de simplesmente copiar e colar posts. Havia tentado o NotebookLLM para isso (que funcionou OK, você pode conferir o episódio de podcast aqui), mas queria mais controle sobre o fluxo da conversa e os ganchos de abertura.
- Queria aprender algo novo e experimentar os modelos de texto-para-fala da OpenAI.
Atualização nov 2025: Me formei do uso do framework de agentes e comecei a programar do zero com Claude Code e Google Gemini CLI. Isso me deu muito mais controle. Meus lançamentos mais recentes são STRAŦUM (inteligência de mercado) e DIALØGUE (gerador de podcast por IA) — que evoluiu diretamente deste experimento com CrewAI abaixo.
Depois de cerca de 10 dias brincando com CrewAI, aqui estão minhas principais observações:
1. O que há de bom
1.1 Surpreendentemente fácil de começar
- A curva de aprendizado inicial é notavelmente curta — comecei a funcionar em apenas algumas horas
- Configurar ferramentas personalizadas (como recuperar conteúdo do meu blog usando Weaviate como vector store) foi direto. Converter seu script de podcast em output de áudio também é bastante fácil de configurar.
- A capacidade de descrever agentes e suas tarefas em inglês simples usando arquivos YAML é poderosa (Dica: o autocomplete do Visual Studio Code é super útil aqui!)
1.2 Seleção flexível de modelos
Alternar entre diferentes LLMs é tão simples quanto atualizar seu crew.py:
llm_openai_4o_mini = LLM(model="gpt-4o-mini", temperature=0)
llm_anthropic_35 = LLM(model="claude-3-5-sonnet-20240620", temperature=0)
llm_openai_4o = LLM(model="gpt-4o", temperature=0)
llm_gemini_15_pro = LLM(model="gemini/gemini-1.5-pro-002", temperature=0)
Você pode então atribuir modelos específicos a diferentes agentes com base em seus pontos fortes. Por exemplo,
@agent
def content_researcher(self) -> Agent:
return Agent(
config=self.agents_config['content_researcher'],
llm=llm_anthropic_35,
tools=[BlogContentRetrievalTool()],
verbose=True
)
Tudo isso significa um grande nível de controle sobre como quero que meu podcast seja estruturado e roteirizado.
1.3 Texto-para-Fala: Promessas e Limitações
Embora a API de texto-para-fala da OpenAI seja impressionante em qualidade, atualmente oferece apenas seis modelos de voz. Para criação de podcast, isso é bastante limitante — especialmente quando você está tentando criar conversas envolventes entre múltiplos apresentadores. A falta de variedade de vozes significa que você pode acabar com podcasts que soam parecidos com outros que usam a mesma tecnologia. Esta é definitivamente uma área onde espero ver melhorias no futuro, seja por meio da OpenAI expandindo suas opções de voz ou por meio de integração com outros provedores de texto-para-fala.
Entendo também as preocupações com a segurança da IA, então os diferentes labs de IA podem não estar tão apressados em fornecer muitos modelos de voz.
2. A verificação da realidade: não é apenas "clique e crie"
Inicialmente, me preocupei que isso pudesse contribuir para a enxurrada de conteúdo gerado por IA (ou "AI Slop") que estamos vendo online. Afinal, eu poderia gerar um script de podcast de 15 minutos em cerca de 5 minutos. (No curso de treinamento do DeepLearning.AI acima, João na verdade passou por um exemplo de código de "Criação de conteúdo em escala".)
No entanto, minha perspectiva mudou depois de realmente ler/revisar os primeiros scripts gerados.
Criar conteúdo de alta qualidade ainda requer trabalho significativo!
2.1 Estrutura de agentes cuidadosa
Tive que revisar a estrutura do crew de IA várias vezes, adicionando funções adicionais, especialmente o papel de um "fact_checker". Meu crew atual de podcast inclui:
- Pesquisador de conteúdo
- Roteirista
- Verificador de fatos
- Editor de roteiro
- Produtor de áudio
2.2 Refinamento contínuo
O sucesso requer:
- Definir cuidadosamente os objetivos e tarefas de cada agente usando linguagem específica do setor. Alguém com verdadeira experiência na área de podcast pode usar linguagem específica do setor e pode pedir a cada agente que execute uma tarefa muito específica. O output será muito melhor assim.
- Ser seletivo com o acesso a ferramentas (mais nem sempre é melhor). É fácil para os agentes ficarem presos em loops contínuos.
- Regras claras de delegação entre agentes
- Requisitos específicos de estrutura de output
- Critérios de qualidade bem definidos de "Como é um bom trabalho" (Até envolvi minha filha aqui — ela é a criativa! :D).
Então novamente, como você pode ver, embora usar um crew de agentes de IA ajude a acelerar meu trabalho significativamente (pelo menos 5X da pesquisa até o roteiro, verificação de fatos, revisão, criação de áudio), ainda cabe a mim criar conteúdo de alta qualidade.
2.3 A seleção de modelos importa
Diferentes modelos LLM têm "personalidades" distintas e níveis variados de seguimento de instruções. Então você tem que experimentar para entender os pontos fortes e fracos dos diferentes modelos e como eles se adequam às suas necessidades em cada etapa do processo.
Algumas observações:
- As respostas da API podem diferir das respostas da interface web de chat para o mesmo modelo
- Atualmente, prefiro modelos Anthropic para conteúdo de forma longa usando a API. No entanto, quando se trata da versão web, na verdade acho que claude-3-5-sonnet-20241022 e GPT-4o estão empatados.
- O o1-preview da OpenAI é meu preferido para tarefas de programação
2.4 Feedback e memória são divisores de águas
Você precisa fornecer feedback ao seu crew de IA. Eles são bons em seguir direções, mas não sabem o que você quer e não conseguem ler sua mente (pelo menos ainda não haha). A capacidade de treinar seu crew por meio de feedback é crucial.
Com CrewAI, é bem simples treinar seu crew e dar feedback, simplesmente executando
crewai train -n <n_iterations> <filename> (optional)
Embora eu ainda não tenha explorado totalmente as funções de memória do CrewAI, a combinação de feedback e memória parece incrivelmente poderosa para criar output consistente e de alta qualidade.
3. Me mostre os resultados!
Ok, ok — estou te ouvindo dizendo "Chandler, você já falou o suficiente. Me mostre um exemplo do script de podcast gerado pelo seu crew de IA!"
Aqui está um exemplo completo de fluxo de trabalho:
- Fase de Pesquisa: Veja como o agente Pesquisador de Conteúdo analisou e extraiu informações-chave dos meus posts de blog
- Resumo da Verificação de Fatos: O relatório detalhado de verificação do Verificador de Fatos
- Rascunho Inicial do Roteiro: A primeira versão do Roteirista sobre a conversa do podcast
- Roteiro Final Polido: A versão refinada do Editor de Roteiro com fluxo e engajamento melhorados
- Ouça o Resultado: A versão de áudio final produzida pelo agente Produtor de Áudio
Cada link acima mostra a progressão do conteúdo bruto até o podcast polido, demonstrando como diferentes agentes contribuem para o produto final.
Embora ainda tenha pensamentos sobre como posso melhorar todo o pipeline mais, espero que o acima lhe dê uma boa noção do que é possível.
Pensamentos finais
O CrewAI me impressionou com seu equilíbrio de simplicidade e poder. Embora torne a criação de conteúdo mais acessível, não é um botão mágico — qualidade ainda requer expertise, planejamento cuidadoso e refinamento contínuo.
Você já experimentou com frameworks multi-agente como CrewAI ou Langgraph? Adoraria ouvir o que você está construindo com eles — fique à vontade para deixar um comentário ou entrar em contato.
Abraços,
Chandler
Atualização jan 2026: Este experimento com CrewAI eventualmente se tornou DIALØGUE — um app de produção completo. A limitação de voz que mencionei acima? Acabei mudando para Gemini TTS, o que me deu 30 vozes em 7 idiomas. Bem diferente das 6 vozes da OpenAI! Se você tiver curiosidade, confira.