10 pontos por GN⁺ 2024-06-21 | 2 comentários | Compartilhar no WhatsApp
  • A Octomind usa agentes de IA para gerar e corrigir automaticamente testes end-to-end no Playwright.
  • No início, usava o framework LangChain, mas com o tempo o alto nível de abstração do LangChain passou a causar problemas.

Problemas do LangChain

  • A abstração do LangChain foi útil no começo, mas, à medida que surgiram requisitos mais complexos, ficou difícil entender e manter o código.
  • Entender a estrutura interna do LangChain e fazer debugging consumia muito tempo.
  • Por exemplo, até em um código para traduzir uma simples palavra em inglês para o italiano, usar LangChain aumentava a complexidade.

O problema das abstrações do LangChain

  • O LangChain empilha várias abstrações, aumentando a complexidade do código.
  • Essas abstrações tornam mais difícil entender o código e fazer debugging.
  • Por exemplo, até em uma tarefa simples de buscar dados JSON de uma API, usar LangChain aumentava a complexidade.

Impacto na equipe de desenvolvimento

  • Ao tentar implementar uma arquitetura de agentes complexa, o LangChain passou a atuar como fator limitante.
  • Depois de remover o LangChain, a equipe conseguiu programar com liberdade de acordo com os requisitos.

É preciso um framework para criar aplicações de IA?

  • O LangChain foi útil no início, mas, no longo prazo, teria sido melhor desenvolver sem framework.
  • A maioria das aplicações de IA pode ser implementada suficientemente bem com código simples e alguns pacotes externos.
  • Até que os padrões de uso de agentes estejam estabelecidos, recomenda-se uma abordagem simples.

Desenvolvimento rápido e conciso com blocos de construção modulares

  • Frameworks impõem estrutura, mas as aplicações de IA ainda não têm padrões de uso consolidados.
  • A abordagem de blocos de construção modulares prefere código simples de baixo nível e acelera o desenvolvimento.
  • Usando componentes modulares como bancos de dados vetoriais, é possível manter a base de código enxuta e adaptável.

Opinião do GN⁺

  • Limites do LangChain: o alto nível de abstração do LangChain é útil no começo, mas pode se tornar um obstáculo quando surgem requisitos complexos.
  • Vantagens da abordagem modular: a abordagem com blocos de construção modulares facilita a compreensão e a manutenção do código, além de acelerar o desenvolvimento.
  • Repensando a necessidade de frameworks: nem toda aplicação de IA precisa de um framework; muitas podem ser implementadas apenas com código simples e pacotes externos.
  • A importância da velocidade de desenvolvimento: na área de IA, experimentação rápida e prototipagem são essenciais, e frameworks podem limitar isso.
  • Padrões futuros de uso de agentes: até que os padrões de uso de agentes estejam estabelecidos, é melhor manter uma abordagem simples.

2 comentários

 
yangeok 2024-06-24

Dizem que é uma arquitetura fracassada, e agora estou vendo isso até no GeekNews.

 
GN⁺ 2024-06-21
Comentários do Hacker News
  • Construiu o primeiro agente LLM comercial em outubro/novembro do ano passado: construir o agente do zero, sem usar LangChain, ajudou a obter resultados melhores.

  • Complexidade dos frameworks de LLM: frameworks de LLM como o LangChain tendem a introduzir complexidade ao estilo de Java ou Python.

  • Comparação entre LangChain e ChatGPT: o LangChain foi criado antes do surgimento do ChatGPT, mas, como o ChatGPT passou a oferecer um modelo conversacional melhor, a necessidade do LangChain diminuiu.

  • Controvérsia sobre o valor do LangChain: o LangChain tentou se posicionar entre o desenvolvedor e o LLM, mas não adicionou valor prático e introduziu abstrações desnecessárias.

  • Boas abstrações e más abstrações: boas abstrações lidam com a lógica da aplicação, enquanto más abstrações escondem o trabalho necessário e fazem perder percepção.

  • Problemas no uso de agentes: para geração de conteúdo, usar prompts sequenciais é mais fácil e mais eficaz do que usar agentes.

  • Apresentação do framework Ragged: apresenta o Ragged, um conector leve que permite integração fácil com LLMs. Ele oferece uma interface unificada semelhante a um ORM.

  • Falta de utilidade do LangChain: a abordagem do LangChain é interessante, mas, na prática, usar diretamente bibliotecas de runtime para LLM é mais eficiente.

  • Frameworks de agentes que mudam rapidamente: o framework de agentes em uso muda muito rápido, e até pequenas mudanças de versão podem quebrar a configuração atual.

  • Problema de complexidade do LangChain: o LangChain é complexo demais para casos de uso simples e difícil de adaptar para casos complexos. Em muitos casos, codificar diretamente é a melhor opção.