Add event handling for tool usage events

- 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
This commit is contained in:
Lorenze Jay
2025-02-14 09:26:18 -08:00
parent f4547648b4
commit 1c2903abea

View File

@@ -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()