Home › Fóruns › Domine LLMs com LangChain › ReAct no LangChain
- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 3 meses atrás por
Gabriel Alves.
- AutorPosts
- 7 de fevereiro de 2025 às 01:07 #47696
Prezado professor,
Durante a aula sobre a implementação do ReAct, foi apresentado um prompt template do LangChain Hub contendo quatro parâmetros. Gostaria de saber se a abordagem exige obrigatoriamente a presença desses quatro parâmetros ou se há flexibilidade para modificar ou omitir algum deles.
Além disso, é possível ajustar o prompt para que o agente realize apenas uma iteração em vez de um ciclo contínuo de revisões (Thought/Action/Action Input/Observation)? Caso sim, qual seria a melhor forma de estruturar o prompt para esse comportamento?
Para fins de referência, segue o prompt template apresentado:
'Answer the following questions as best you can. You have access to the following tools:\n\n {tools}\n\n Use the following format:\n\n Question: the input question you must answer\n Thought: you should always think about what to do\n Action: the action to take, should be one of [{tool_names}]\n Action Input: the input to the action\n Observation: the result of the action\n ... (this Thought/Action/Action Input/Observation can repeat N times)\n Thought: I now know the final answer\n Final Answer: the final answer to the original input question\n\n Begin!\n\n Question: {input}\n Thought:{agent_scratchpad}'
8 de fevereiro de 2025 às 15:30 #47719Olá Michael!
Sim é possível customizar esse prompt, note que na aula foi baixado o PromptTemplate “hwchase17/react” através do método hub.pull mas você poderia defini-lo manualmente (caso sua intenção seja modificar as instruções no prompt) ou até baixar outro template (por exemplo hwchase17/react-chat ou outro dentro do Hub do LangChain).
Esse prompt usado foi projetado para seguir o ciclo completo de Thought/Action/Action Input/Observation, o que é essencial para a lógica de raciocínio iterativo dos agentes ReAct. Embora haja alguma flexibilidade para adaptar o prompt, remover ou omitir essas etapas pode comprometer a eficácia do agente na resolução de problemas complexos. No entanto, você pode ajustar o comportamento do agente para reduzir ou limitar o número de iterações.
Para fazer o agente realizar apenas uma iteração, você pode modificar o prompt ou controlar a lógica de execução. Uma ideia seria ajustar o prompt para que o agente saiba que deve fornecer a resposta final após a primeira observação – por exemplo, após o bloco Observation, você pode incluir instruções explícitas como: “Agora, com base na observação acima, forneça a resposta final diretamente.” Outra abordagem seria controlar isso no código, ajustando via parâmetros (max_iterations ou max_steps) no agente LangChain para limitar o ciclo a uma única rodada.
- AutorPosts
- Você deve fazer login para responder a este tópico.