From f67d0a26f1c428b5d8c36b6cf8911990e45092b3 Mon Sep 17 00:00:00 2001 From: Braelyn Boynton Date: Wed, 20 Mar 2024 18:25:41 -0700 Subject: [PATCH] track tool usage --- src/crewai/agent.py | 6 +++--- src/crewai/tools/tool_usage.py | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 253cdaec8..df09ff067 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -25,10 +25,10 @@ from crewai.agents import CacheHandler, CrewAgentExecutor, CrewAgentParser, Tool from crewai.utilities import I18N, Logger, Prompts, RPMController from crewai.utilities.token_counter_callback import TokenCalcHandler, TokenProcess from agentops.agent import track_agent -from agentops import LangchainCallbackHandler +from agentops.langchain_callback_handler import LangchainCallbackHandler -@track_agent(name=None) +@track_agent() class Agent(BaseModel): """Represents an agent in a system. @@ -124,7 +124,7 @@ class Agent(BaseModel): def __init__(__pydantic_self__, **data): config = data.pop("config", {}) super().__init__(**config, **data) - __pydantic_self__._agent_ops_agent_name = __pydantic_self__.role + __pydantic_self__.agent_ops_agent_name = __pydantic_self__.role @field_validator("id", mode="before") @classmethod diff --git a/src/crewai/tools/tool_usage.py b/src/crewai/tools/tool_usage.py index 3a020892f..98f280a5f 100644 --- a/src/crewai/tools/tool_usage.py +++ b/src/crewai/tools/tool_usage.py @@ -9,7 +9,7 @@ from crewai.agents.tools_handler import ToolsHandler from crewai.telemetry import Telemetry from crewai.tools.tool_calling import InstructorToolCalling, ToolCalling from crewai.utilities import I18N, Converter, ConverterError, Printer -from agentops import record, ToolEvent +from agentops import ToolEvent, ErrorEvent, record OPENAI_BIGGER_MODELS = ["gpt-4"] @@ -79,13 +79,16 @@ class ToolUsage: self._printer.print(content=f"\n\n{error}\n", color="red") self.task.increment_tools_errors() return error + + event = ToolEvent(name=calling.tool_name) + record(event) try: tool = self._select_tool(calling.tool_name) - record(ToolEvent(name=calling.tool_name)) except Exception as e: error = getattr(e, "message", str(e)) self.task.increment_tools_errors() self._printer.print(content=f"\n\n{error}\n", color="red") + record(ErrorEvent(details=error, trigger_event=event)) return error return f"{self._use(tool_string=tool_string, tool=tool, calling=calling)}"