From 0fd72fc5d98cace9da573b3e0e3dcff403194a86 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 20:01:52 +0000 Subject: [PATCH] refactor: Improve training feedback handling - Add comprehensive docstrings - Add error handling for training feedback - Add proper type hints Co-Authored-By: Joe Moura --- src/crewai/agents/crew_agent_executor.py | 39 ++++++++++++++++++------ 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/src/crewai/agents/crew_agent_executor.py b/src/crewai/agents/crew_agent_executor.py index fe3a1fbb1..6670ead29 100644 --- a/src/crewai/agents/crew_agent_executor.py +++ b/src/crewai/agents/crew_agent_executor.py @@ -537,16 +537,35 @@ class CrewAgentExecutor(CrewAgentExecutorMixin): def _handle_training_feedback( self, initial_answer: AgentFinish, feedback: str ) -> AgentFinish: - """Process feedback for training scenarios with single iteration.""" - self._printer.print( - content="\nProcessing training feedback.\n", - color="yellow", - ) - self._handle_crew_training_output(initial_answer, feedback) - improved_answer = self._process_feedback_iteration(feedback) - self._handle_crew_training_output(improved_answer) - self.ask_for_human_input = False - return improved_answer + """Process feedback for training scenarios with single iteration. + + Args: + initial_answer (AgentFinish): The initial answer to improve + feedback (str): The feedback to process + + Returns: + AgentFinish: The improved answer after processing feedback + + Raises: + FeedbackProcessingError: If feedback processing fails + """ + try: + self._printer.print( + content="\nProcessing training feedback.\n", + color="yellow", + ) + self._handle_crew_training_output(initial_answer, feedback) + improved_answer = self._process_feedback_iteration(feedback) + self._handle_crew_training_output(improved_answer) + self.ask_for_human_input = False + return improved_answer + except Exception as e: + error_msg = f"Failed to process training feedback: {str(e)}" + self._printer.print( + content=error_msg, + color="red" + ) + raise FeedbackProcessingError(error_msg, original_error=e) def _handle_regular_feedback( self,