From 1c2903abea7bc01131acfe18ee09c5b7902ef02a Mon Sep 17 00:00:00 2001 From: Lorenze Jay Date: Fri, 14 Feb 2025 09:26:18 -0800 Subject: [PATCH] Add event handling for tool usage events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Introduce event listeners for ToolUsageFinishedEvent and ToolUsageErrorEvent - Log tool usage events with descriptive emoji icons (✅ and ❌) - Update event_listener to track and log tool usage lifecycle --- src/crewai/utilities/events/event_listener.py | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/crewai/utilities/events/event_listener.py b/src/crewai/utilities/events/event_listener.py index 80d265105..7394f2277 100644 --- a/src/crewai/utilities/events/event_listener.py +++ b/src/crewai/utilities/events/event_listener.py @@ -3,6 +3,7 @@ from pydantic import PrivateAttr from crewai.telemetry.telemetry import Telemetry from crewai.utilities import Logger from crewai.utilities.events.base_event_listener import BaseEventListener +from .tool_usage_events import ToolUsageErrorEvent, ToolUsageFinishedEvent from .agent_events import AgentExecutionCompletedEvent, AgentExecutionStartedEvent from .crew_events import ( @@ -14,7 +15,7 @@ from .crew_events import ( CrewTestStartedEvent, CrewTrainCompletedEvent, CrewTrainFailedEvent, - CrewTrainStartedEvent, + CrewTrainStartedEvent ) from .flow_events import ( FlowCreatedEvent, @@ -228,6 +229,23 @@ class EventListener(BaseEventListener): event.timestamp, color=self.color, ) + + # Tool Usage Events + @event_bus.on(ToolUsageFinishedEvent) + def on_tool_usage_finished(source, event: ToolUsageFinishedEvent): + self.logger.log( + f"✅ Tool Usage Finished: '{event.tool_name}'", + event.timestamp, + color=self.color, + ) + + @event_bus.on(ToolUsageErrorEvent) + def on_tool_usage_error(source, event: ToolUsageErrorEvent): + self.logger.log( + f"❌ Tool Usage Error: '{event.tool_name}'", + event.timestamp, + color=self.color, + ) event_listener = EventListener()