From 3ffe98bf397ca17e83a5169b8bef46a321856da1 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:00:56 +0000 Subject: [PATCH] refactor: Improve feedback handling documentation and error handling - Add comprehensive docstrings - Enhance error handling in LLM feedback response - Add proper type hints Co-Authored-By: Joe Moura --- src/crewai/agents/crew_agent_executor.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/crewai/agents/crew_agent_executor.py b/src/crewai/agents/crew_agent_executor.py index 845b77102..59985f9d6 100644 --- a/src/crewai/agents/crew_agent_executor.py +++ b/src/crewai/agents/crew_agent_executor.py @@ -587,7 +587,17 @@ class CrewAgentExecutor(CrewAgentExecutorMixin): raise FeedbackProcessingError(error_msg, original_error=e) def _get_llm_feedback_response(self, feedback: str) -> Optional[str]: - """Get LLM classification of whether feedback requires changes.""" + """Get LLM classification of whether feedback requires changes. + + Args: + feedback (str): The feedback to classify + + Returns: + Optional[str]: The LLM's response indicating if changes are needed + + Raises: + FeedbackProcessingError: If LLM call fails after max retries + """ prompt = self._i18n.slice("human_feedback_classification").format( feedback=feedback ) @@ -600,8 +610,9 @@ class CrewAgentExecutor(CrewAgentExecutorMixin): except Exception as error: self._log_feedback_error(retry, error) + error_msg = f"Failed to get LLM feedback response after {MAX_LLM_RETRY} retries" self._log_max_retries_exceeded() - return None + raise FeedbackProcessingError(error_msg) def _feedback_requires_changes(self, response: Optional[str]) -> bool: """Determine if feedback response indicates need for changes."""