Agents com tools sem ReAct

Home Fóruns Domine LLMs com LangChain Agents com tools sem ReAct

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #47720

    Prezado professor,

    Estou acompanhando as aulas sobre o uso de ReAct juntamente com as tools e acho esse recurso excelente para aprimorar o raciocínio das LLMs.

    No entanto, no meu ambiente de testes — utilizando o Ollama com o Llama 3.1 8B local — ao fazer perguntas, mesmo simples, como “Qual é a data de hoje?”, o modelo acessa a tool de data, mas não conclui a resposta. Em vez disso, exibe a mensagem: “Agent stopped due to iteration limit or time limit.”

    Por outro lado, ao testar com o Llama 3.3 80B oferecido pela Groq, as respostas são geradas normalmente. Observe que modelos maiores e mais complexos lidam melhor com o ReAct, enquanto modelos menores acabam se perdendo durante o raciocínio.

    Gostaria de saber como utilizar agents com tools sem recorrer ao mecanismo ReAct, de modo a contornar essas limitações nos modelos menores locais. Se possível, peço um exemplo de implementação.

    Obrigado pelo apoio.

    #47728
    Gabriel Alves
    Moderador

      Olá Michael!

      O problema que você está enfrentando é um tanto comum ao trabalhar com modelos menores, como o Llama 3.1 8B, que podem não ter capacidade suficiente para lidar com o mecanismo ReAct de forma eficiente. É um modelo bem menor (8B) comparado aos mais atuais com maior capacidade de raciocínio, ou seja, tem limitações nessa capacidade. Para que funcione sem problemas, o ReAct exige que o modelo não apenas gere respostas, mas também raciocine passo a passo e interaja com ferramentas (tools), o que pode ser desafiador para modelos com menos parâmetros.

      Para contornar essa limitação, o que eu faria é continuar usando via provedor de modelos como o Groq ou OpenRouter, acaba funcionando bem com menos esforço. Caso continue usando esse mesmo modelo com menos parâmetros, você pode utilizar agents sem o mecanismo ReAct, optando por abordagens mais diretas, como o uso de Zero-Shot Agents ou ainda codificar um agente customizado. Essas abordagens simplificam o processo de interação com as tools, reduzindo a complexidade do raciocínio necessário.

      O Zero-Shot Agent não exige múltiplas iterações de pensamento/ação, em vez de simular um raciocínio passo a passo ele tenta resolver a tarefa diretamente com o contexto que possui.

      Quanto ao código, aqui tem um exemplo completo e a explicação. Hoje é recomendado usar o LangGraph para isso, que faz parte do ecossistema LangChain.

      Obs: Tentar implementar um agente que requer uma ampla variedade de ferramentas ou raciocínio complexo pode não levar a resultados bem-sucedidos, mesmo se fizermos esforços extensivos de engenharia de prompt. Pode ser que modificando muito o prompt você consiga melhorar significativamente os resultados, mas há um momento em que não se melhora mais, é necessário testar novos modelos. Portanto, pode ser interessante ainda antes de mudar o código testar outros modelos menores e que sejam suportados pelo hardware local, já que podem ter capacidade da reasoning superior mesmo sendo menores (como o DeepSeek 7B).

    Visualizando 2 posts - 1 até 2 (de 2 do total)
    • Você deve fazer login para responder a este tópico.