From b98f8f9fe1f79d9d380f3bd8ddb6bc800cf59d0e Mon Sep 17 00:00:00 2001 From: Eduardo Chiarotti Date: Wed, 13 Nov 2024 10:07:28 -0300 Subject: [PATCH] fix: Step callback issue (#1595) * fix: Step callback issue * fix: Add empty thought since its required --- src/crewai/agents/crew_agent_executor.py | 37 ++++++++++++------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/crewai/agents/crew_agent_executor.py b/src/crewai/agents/crew_agent_executor.py index aa641e061..bf14e6915 100644 --- a/src/crewai/agents/crew_agent_executor.py +++ b/src/crewai/agents/crew_agent_executor.py @@ -145,25 +145,26 @@ class CrewAgentExecutor(CrewAgentExecutorMixin): formatted_answer.result = action_result self._show_logs(formatted_answer) - if self.step_callback: - self.step_callback(formatted_answer) + if self.step_callback: + self.step_callback(formatted_answer) - if self._should_force_answer(): - if self.have_forced_answer: - return AgentFinish( - output=self._i18n.errors( - "force_final_answer_error" - ).format(formatted_answer.text), - text=formatted_answer.text, - ) - else: - formatted_answer.text += ( - f'\n{self._i18n.errors("force_final_answer")}' - ) - self.have_forced_answer = True - self.messages.append( - self._format_msg(formatted_answer.text, role="assistant") - ) + if self._should_force_answer(): + if self.have_forced_answer: + return AgentFinish( + thought="", + output=self._i18n.errors( + "force_final_answer_error" + ).format(formatted_answer.text), + text=formatted_answer.text, + ) + else: + formatted_answer.text += ( + f'\n{self._i18n.errors("force_final_answer")}' + ) + self.have_forced_answer = True + self.messages.append( + self._format_msg(formatted_answer.text, role="assistant") + ) except OutputParserException as e: self.messages.append({"role": "user", "content": e.error})