Which Agentic AI Framework to Pick? LangGraph vs. CrewAI vs. AutoGen
Análise de Frameworks Agentes
Introdução aos Frameworks Agentes
- O apresentador expressa frustração com a quantidade de frameworks agentes disponíveis e busca entender qual é o mais adequado para suas necessidades.
- Menciona três frameworks populares lançados no final de 2023 e início de 2024: Microsoft Autogen, Crew AI e Lang Graph.
Comparação dos Frameworks
Critérios de Avaliação
- Os frameworks serão comparados usando um gráfico em estrela, considerando características como:
- Suporte a streaming (tokens ou mensagens).
- Capacidade de incluir humanos no processo decisório.
- Funcionalidade para revisar erros passados.
- Recursos de memória.
- Interface low-code para criação de agentes.
Detalhes sobre o Autogen
Características do Autogen
- O logo do Autogen é criticado por sua aparência antiquada. O framework é baseado em um sistema assíncrono de comunicação distribuída chamado "actor framework".
- Cada ator representa um agente que pode enviar e receber mensagens, permitindo conversas contínuas até que uma tarefa seja concluída.
Curva de Aprendizado
- A curva de aprendizado do Autogen é considerada rápida, com apenas seis linhas de código necessárias para começar. A complexidade adicional se limita à configuração das conversas entre agentes.
Integrações e Ecossistema
- O desempenho nas integrações com diferentes modelos linguísticos é discutido. Há uma dependência da OpenAI, exigindo configuração adicional para outros modelos.
- O ecossistema inclui ferramentas como Compos e várias integrações com produtos da Microsoft, mas apresenta limitações para usuários da AWS.
Monitoramento e Escalabilidade
- O Autogen possui parceria com a Agent Ops para monitoramento, permitindo rastrear gastos e problemas durante o uso dos agentes.
- A escalabilidade do Autogen é abordada; embora suporte mensageria assíncrona, há incertezas sobre a estabilidade das versões atuais.
Conclusão Inicial sobre o Autogen
- Apesar das críticas às integrações limitadas e à necessidade de configurações adicionais, o apresentador considera que o framework tem potencial devido à sua estrutura assíncrona.
Análise do Serviço Assíncrono Autogen
Estrutura e Modelo de Comunicação
- O serviço assíncrono Autogen é baseado no modelo de ator, que utiliza um framework de mensagens assíncronas. A estrutura inteira é construída sobre esse modelo de comunicação.
- Apesar do suporte a mensagens assíncronas, existem problemas que levaram à atualização para a versão 0.4, os quais não estão bem documentados.
Flexibilidade e Design
- O modelo de ator permite flexibilidade em sistemas de software assíncronos, onde cada ator representa uma API ou microserviço com responsabilidades bem definidas.
- Para modelos de linguagem, essa abordagem pode ser limitante devido à falta de flexibilidade no design dos agentes e na modularização das seções principais.
Documentação e Facilidade de Uso
- A documentação do Autogen é acessível após alguma busca inicial; ao clicar em "get started", o usuário encontra tutoriais úteis para instalação.
- Embora a documentação seja boa, sua dificuldade em ser encontrada resulta em uma nota 7 pela usabilidade.
Funcionalidades Adicionais
Streaming e Intervenção Humana
- O Autogen suporta streaming tanto para entrada quanto saída, permitindo processamento em tempo real, o que é importante para casos de uso ao vivo.
- A funcionalidade "humano no loop" é limitada a três opções: nunca, sempre ou terminar; isso pode restringir intervenções humanas durante a execução.
Ferramentas Low Code
- O Autogen Studio oferece uma interface low code open source que facilita o uso por programadores menos experientes.
Limitações da Funcionalidade
- Não há suporte para "time travel", impossibilitando revisitar tarefas completadas para ver como mudanças poderiam ter afetado os resultados.
Análise do Lang Graph
Arquitetura e Complexidade
- O Lang Graph baseia-se nas arquiteturas Pragal e Apache Beam, sendo um framework mais genérico comparado ao Autogen.
- A criação e utilização do Lang Graph assemelham-se à biblioteca NetworkX em Python, onde nós e arestas podem ser conectados livremente.
Curva de Aprendizado
- A curva de aprendizado do Lang Graph é considerada íngreme devido à necessidade de entender qual arquitetura agente implementar.
- Embora existam bons tutoriais disponíveis, muitos usuários enfrentaram dificuldades conceituais com o Lang Graph.
Integrações Potenciais
Integrações e Escalabilidade do Lang Graph
Integração com Lang Chain
- O Lang Graph se integra completamente com o Lang Chain, pois ambas as ferramentas pertencem à mesma empresa. Essa integração é vantajosa, mas não limita a utilização do Lang Graph caso o usuário opte por não usar o Lang Chain.
Escalabilidade e Deployability
- O Lang Graph oferece suporte total para operações assíncronas desde o início, sendo baseado em Pragal e Apache Beam, o que aumenta a confiança na escalabilidade da ferramenta.
- A complexidade de escalabilidade no Lang Graph é maior em comparação ao AutoGen devido ao suporte de estado, mas permite acesso ao estado a qualquer momento para persistência.
- A flexibilidade de design do Lang Graph permite que os usuários decidam como estruturar nós e arestas, facilitando a reutilização e combinação de componentes.
Flexibilidade de Design
- O Lang Graph é um framework verdadeiro construído sobre grafos de rede, permitindo liberdade total na implementação de arquiteturas como roteadores e agentes reflexivos.
- Embora essa flexibilidade exija mais código e seja mais difícil de aprender, ela proporciona uma ampla gama de possibilidades para personalização.
Documentação do Lang Graph
Qualidade da Documentação
- A documentação do Lang Graph foi criticada anteriormente por sua qualidade inferior, mas melhorias significativas foram feitas nos últimos meses.
- Um curso foi disponibilizado para ajudar novos usuários a entender as funcionalidades principais da ferramenta.
Recursos Adicionais do Langra
Suporte a Streaming e Ferramentas
- O Langra possui suporte robusto para streaming tanto de mensagens quanto de tokens conforme as necessidades dos usuários.
- Oferece um ambiente flexível onde é possível solicitar entrada humana durante a execução do grafo, pausando até receber essa entrada.
Funcionamento do Crew AI
Estrutura dos Agentes no Crew AI
- O Crew AI cria uma abstração agente dentro da equipe (crew), onde cada agente pode ser um modelo linguístico associado a ferramentas específicas ou funções como desenvolvedor ou redator publicitário.
Curva de Aprendizado
- Comparado ao AutoGen, o Crew AI apresenta conceitos adicionais que precisam ser compreendidos. No entanto, iniciar com ele é relativamente rápido devido à simplicidade na definição das tarefas em arquivos YAML.
Integrações no Crew AI
Conexões com Outras Ferramentas
- O Crew AI se integra diretamente com o Lang Chain, permitindo que ferramentas criadas nessa plataforma sejam utilizadas nas equipes (crews).
Análise de Ferramentas de Monitoramento e Frameworks
Integração com Ferramentas de Monitoramento
- O vídeo discute a utilização de arquivos markdown e menciona ferramentas específicas para monitoramento, como Lang trce, Open Lit e Port Key.
- Destaca-se a integração do Open Lit, uma ferramenta open source que permite hospedagem gratuita da observabilidade, em contraste com o Langra que se integra ao Lsmith.
Escalabilidade do Crew AI
- O Crew AI é avaliado quanto à sua escalabilidade em ambientes distribuídos, permitindo execução assíncrona de tarefas.
- A funcionalidade de memória do Crew AI pode ser limitada devido ao uso de um banco de dados SQL local, exigindo configuração adicional para escalabilidade.
- Comparado ao Autogen, o Crew AI oferece mais flexibilidade na abstração das tarefas e agentes.
Flexibilidade e Documentação do Crew AI
- O Crew AI é um framework baseado em tarefas que exige decomposição dos problemas em tarefas específicas; isso pode ser limitante para problemas mais complexos.
- A documentação do Crew AI é considerada excelente, com um site fácil de navegar e bem organizado entre seções conceituais e guias práticos.
Funcionalidades Adicionais do Crew AI
- Embora não suporte streaming diretamente, o Crew AI permite interação humana no final das tarefas e possui funcionalidades como "time travel" para revisitar execuções passadas.
- O sistema suporta diferentes tipos de memória (curto prazo, longo prazo), facilitando a configuração inicial.
Considerações Finais sobre Frameworks
- Atualmente, o suporte do Crew AI está restrito ao Python; não há uma interface oficial low code disponível.
- Para quem busca resolver problemas baseados em tarefas rapidamente ou precisa de boas integrações, o Crew AI é recomendado. Para soluções mais complexas ou interativas (como chatbots), Langra pode ser a melhor escolha.