diff --git a/src/crewai/agents/parser.py b/src/crewai/agents/parser.py index 71444a20a..1bda4df5c 100644 --- a/src/crewai/agents/parser.py +++ b/src/crewai/agents/parser.py @@ -124,14 +124,15 @@ class CrewAgentParser: ) def _extract_thought(self, text: str) -> str: - regex = r"(.*?)(?:\n\nAction|\n\nFinal Answer)" - thought_match = re.search(regex, text, re.DOTALL) - if thought_match: - thought = thought_match.group(1).strip() - # Remove any triple backticks from the thought string - thought = thought.replace("```", "").strip() - return thought - return "" + thought_index = text.find("\n\nAction") + if thought_index == -1: + thought_index = text.find("\n\nFinal Answer") + if thought_index == -1: + return "" + thought = text[:thought_index].strip() + # Remove any triple backticks from the thought string + thought = thought.replace("```", "").strip() + return thought def _clean_action(self, text: str) -> str: """Clean action string by removing non-essential formatting characters."""