From ca1b8d84ead9ca44bc2db3eab341d30460a67157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moura?= Date: Sun, 8 Jun 2025 00:03:42 -0700 Subject: [PATCH] improving logs further --- src/crewai/utilities/events/event_listener.py | 2 ++ .../events/utils/console_formatter.py | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/crewai/utilities/events/event_listener.py b/src/crewai/utilities/events/event_listener.py index f978918df..838eee2cc 100644 --- a/src/crewai/utilities/events/event_listener.py +++ b/src/crewai/utilities/events/event_listener.py @@ -108,6 +108,7 @@ class EventListener(BaseEventListener): event.crew_name or "Crew", source.id, "completed", + event.output, ) @crewai_event_bus.on(CrewKickoffFailedEvent) @@ -170,6 +171,7 @@ class EventListener(BaseEventListener): source.id, source.agent.role, "completed", + event.output, ) # Reset branch pointers for clean state management diff --git a/src/crewai/utilities/events/utils/console_formatter.py b/src/crewai/utilities/events/utils/console_formatter.py index 4a0006a55..6cece7a8d 100644 --- a/src/crewai/utilities/events/utils/console_formatter.py +++ b/src/crewai/utilities/events/utils/console_formatter.py @@ -188,6 +188,7 @@ class ConsoleFormatter: crew_name: str, source_id: str, status: str = "completed", + output: Optional[Any] = None, ) -> None: """Handle crew tree updates with consistent formatting.""" if not self.verbose or tree is None: @@ -220,6 +221,22 @@ class ConsoleFormatter: ID=source_id, ) + # Add output content if available and not in starting state + if output is not None and status in ["completed", "failed"]: + # Extract the raw output text + output_text = "" + if hasattr(output, 'raw'): + output_text = output.raw + elif isinstance(output, str): + output_text = output + else: + output_text = str(output) + + display_output = output_text + + content.append("\n\nOutput:\n", style="white bold") + content.append(display_output, style="white") + self.print_panel(content, title, style) def create_crew_tree(self, crew_name: str, source_id: str) -> Optional[Tree]: @@ -277,6 +294,7 @@ class ConsoleFormatter: task_id: str, agent_role: str, status: str = "completed", + output: Optional[Any] = None, ) -> None: """Update task status in the tree.""" if not self.verbose or crew_tree is None: @@ -314,6 +332,23 @@ class ConsoleFormatter: content = self.create_status_content( f"Task {status.title()}", str(task_id), style, Agent=agent_role ) + + # Add output content if available + if output is not None: + # Extract the raw output text + output_text = "" + if hasattr(output, 'raw'): + output_text = output.raw + elif isinstance(output, str): + output_text = output + else: + output_text = str(output) + + display_output = output_text + + content.append("\n\nOutput:\n", style="white bold") + content.append(display_output, style="white") + self.print_panel(content, panel_title, style) def create_agent_branch(