Os Large Language Models (LLMs) revolucionaram o campo de Processamento de Linguagem Natural (NLP) com capacidades impressionantes de geração de texto, entendimento de contexto e tomada de decisão automatizada. A evolução dessas tecnologias culminou na criação dos agents, sistemas capazes de interagir e tomar decisões de maneira autônoma. Neste post, vamos fazer uma introdução aos agents de LLM, falando sobre os principais tipos disponíveis e o uso da ferramenta LangGraph.
A evolução dos LLMs: de técnicas básicas de NLP aos agents
Antes de chegarmos aos agents de LLM, é importante entender de onde surgiram os LLMs. No início, técnicas como Bag of Words (BoW), TF-IDF e n-grams eram amplamente utilizadas no NLP para representar o texto em formas compreensíveis por máquinas. Embora eficazes para tarefas simples como classificação de texto, essas técnicas tinham limitações severas em capturar o contexto e o significado semântico das palavras.
Com o avanço das Redes Neurais, modelos como Word2Vec e GloVe começaram a ser usados para criar representações vetoriais mais ricas. Em seguida, a introdução de arquiteturas como LSTMs e GRUs melhorou significativamente a capacidade de modelos de capturar dependências temporais no texto.
A grande virada veio com o Transformer, introduzido no artigo “Attention is All You Need”. Ele permitiu que os modelos aprendessem de maneira mais eficiente e escalável, pavimentando o caminho para LLMs como GPT, BERT, e seus sucessores, que são capazes de processar grandes volumes de dados textuais, responder perguntas complexas, e até gerar textos quase indistinguíveis dos escritos por humanos.
Chegada dos agents de LLM
Os agents de LLM surgiram como uma evolução dos LLMs, indo além da geração de texto passiva para uma interação mais ativa com o ambiente. Esses agentes conseguem tomar decisões baseadas em instruções e aprender a partir de feedback, tornando-se ferramentas relevantes para automação e resolução de problemas em diversas áreas. Eles não só geram respostas, mas também podem executar tarefas como navegar em sistemas, fazer perguntas de esclarecimento e ajustar suas estratégias conforme necessário.
Langchain
O LangChain é um framework projetada para facilitar o desenvolvimento de aplicações impulsionadas por LLMs, permitindo que os modelos de linguagem interajam de maneira mais eficiente com ambientes externos, como APIs e bancos de dados. Ele foi fundamental para a evolução dos agents, pois simplifica a criação de fluxos de trabalho complexos e permite que LLMs realizem tarefas interativas e sequenciais, como gerar respostas, buscar informações e executar comandos. O LangChain se destacou por unir modelos de linguagem com lógica programática, ampliando as capacidades e aplicações práticas dos LLMs em diversos cenários.
LangGraph
LangGraph é uma ferramenta inovadora que simplifica o desenvolvimento de agents de LLMs, oferecendo uma interface intuitiva que permite a criação e configuração de fluxos de trabalho de maneira visual. Com suporte a modelos pré-treinados como GPT e BERT, LangGraph facilita a integração com diversas APIs, permitindo que os agents busquem dados em tempo real e interajam dinamicamente com outras aplicações. A ferramenta inclui recursos de monitoramento em tempo real para avaliar o desempenho dos agents, promovendo um ciclo de melhoria contínua, além de ser flexível e escalável, adaptando-se a diferentes projetos e tamanhos de equipe.
Tipos de agents disponíveis
Ao criar seu agent, é importante saber que há diferentes tipos de agents com capacidades e objetivos variados. Alguns dos mais comuns incluem:
Plan-and-Execute
Esses agentes primeiro dividem o problema em sub-tarefas, criam um plano detalhado e, em seguida, o executam em etapas. Um exemplo intuitivo seria um agente usado em uma plataforma de e-commerce, onde ele planeja a sequência de ações necessárias para buscar produtos, comparar preços e fechar a compra. Ele planeja as etapas (pesquisa de produtos, comparação de preços, compra) e depois as executa uma a uma.
Paper: Plan-and-Solve Prompting:Improving Zero-Shot Chain-of-Thought Reasoning by Large Language Models
Doc: Plan-and-Execute Agents from langchain
Multi-Agent
Em um ambiente multi-agente, diferentes agentes trabalham em conjunto, cada um especializado em uma tarefa. Imagine um sistema de suporte ao cliente automatizado onde um agente responde perguntas técnicas, outro lida com questões de faturamento e outro oferece soluções para problemas de software. Juntos, eles colaboram para resolver o problema do cliente de forma eficiente.
Paper: AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation
Doc: Multi-agent Collaboration
Critique e Revise (Reflection / Reflexion)
O Reflection permite que o agente “pense sobre seu próprio pensamento.” Ele revisa suas ações passadas para identificar o que funcionou e o que não deu certo, ajustando seu comportamento com base nessas lições para tomar decisões mais assertivas no futuro. Essa habilidade de aprendizado contínuo é essencial para que os agentes se tornem progressivamente mais inteligentes e eficazes em suas tarefas.
O Reflexion é uma arquitetura desenvolvida para aprimorar o aprendizado por meio de feedback verbal e autorreflexão. Nesse modelo, o agente avalia criticamente suas próprias respostas em uma tarefa, buscando produzir uma resposta final de qualidade superior, mesmo que isso resulte em um tempo de execução mais prolongado. Diferente do Reflection, o Reflexion tem a capacidade de acessar ferramentas externas ao LLM, como buscadores (ex: Tavily), para obter informações atualizadas ou específicas, o que o torna mais flexível em determinadas situações.
Esses agentes avaliam seu próprio desempenho ao completar uma tarefa e depois revisa a resposta. Um exemplo seria um assistente de escrita de texto: ele gera um parágrafo inicial, “critica” sua fluidez e clareza, e então o revisa, ajustando a gramática ou melhorando o tom. Esse ciclo de autocrítica e revisão refina continuamente o output.
Paper: Reflexion: Language Agents with Verbal Reinforcement Learning
Doc: Reflection and critique from langchain
ReAct (Reason + Act)
Os agentes ReAct são projetados para interagir em tempo real com o ambiente, ajustando seu raciocínio conforme recebem feedback. Um exemplo prático seria um robô de entrega que, ao encontrar obstáculos no caminho, raciocina sobre a situação, decide a melhor ação (desviar ou esperar), e atualiza seu plano à medida que novas informações surgem. Esse processo de adaptação contínua torna os agentes mais eficientes em ambientes dinâmicos.
A arquitetura ReAct combina raciocínio (Reason) e ação (Act) de forma iterativa, refletida no próprio nome. O fluxo geral funciona da seguinte maneira:
- O modelo “pensa” sobre qual ação tomar em resposta a uma entrada e a observações anteriores.
- Ele escolhe uma ação a partir das ferramentas disponíveis (ou decide responder diretamente ao usuário).
- O modelo gera argumentos para essa ferramenta selecionada.
- O agente executor interpreta a ferramenta escolhida e a aciona com os argumentos fornecidos.
- O executor devolve os resultados da ferramenta ao modelo como uma nova observação.
Esse ciclo se repete até que o agente tome a decisão final e forneça uma resposta. Embora existam implementações baseadas em prompting que não dependem de características específicas do modelo, as versões mais robustas utilizam funcionalidades como o acionamento de ferramentas para formatar saídas de maneira confiável e reduzir variações nos resultados.
Paper: ReAct: Synergizing Reasoning and Acting in Language Models
Doc: ReAct from langchain
Self-Ask
O agente Self-Ask é voltado para o auto-questionamento, onde ele faz perguntas a si mesmo para melhorar seu entendimento de uma tarefa. Um exemplo seria um sistema de FAQ que, ao receber uma pergunta ambígua, faz perguntas de verificação antes de dar uma resposta final. Ele pode perguntar “Você quis dizer X ou Y?” antes de responder à consulta com precisão.
Paper: Measuring and Narrowing the Compositionality Gap in Language Models
Doc: Self-Ask with search from langchain
Conclusão
Em resumo, os agents de LLMs representam uma evolução significativa na maneira como interagimos com modelos de linguagem, oferecendo soluções mais dinâmicas e adaptáveis para uma variedade de tarefas. Com diferentes tipos, como Plan-and-Execute, Multi-Agent, Critique Revise, ReAct, e Self-Ask, esses agentes são capazes de processar informações de maneira mais eficiente, interagir em tempo real e aprender com suas experiências. A integração de ferramentas como LangGraph acelera o desenvolvimento e a implementação desses agents, permitindo que desenvolvedores e pesquisadores criem aplicações mais sofisticadas e personalizadas. À medida que a tecnologia avança, a potencialidade dos agents só tende a crescer, prometendo transformar ainda mais a forma como utilizamos a inteligência artificial em nosso cotidiano, desde assistentes pessoais até sistemas complexos de automação.
Saiba mais:
Prompt Engineering Guide
Awesome LLM agents
What is an LLM Agent and how does it work?
Recomendação de livros
Pingback: Interagindo com o pandas DataFrame através de agentes - IA Com Café