mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-09 16:18:30 +00:00
Add back AgentOps as Optional Dependency (#543)
* implements agentops with a langchain handler, agent tracking and tool call recording * track tool usage * end session after completion * track tool usage time * better tool and llm tracking * code cleanup * make agentops optional * optional dependency usage * remove telemetry code * optional agentops * agentops version bump * remove org key * true dependency * add crew org key to agentops * cleanup * Update pyproject.toml * Revert "true dependency" This reverts commite52e8e9568. * Revert "cleanup" This reverts commit7f5635fb9e. * optional parent key * agentops 0.1.5 * Revert "Revert "cleanup"" This reverts commitcea33d9a5d. * Revert "Revert "true dependency"" This reverts commit4d1b460b* cleanup * Forcing version 0.1.5 * Update pyproject.toml * agentops update * noop * add crew tag * black formatting * use langchain callback handler to support all LLMs * agentops version bump * track task evaluator * merge upstream * Fix typo in instruction en.json (#676) * Enable search in docs (#663) * Clarify text in docstring (#662) * Update agent.py (#655) Changed default model value from gpt-4 to gpt-4o. Reasoning. gpt-4 costs 30$ per million tokens while gpt-4o costs 5$. This is more cost friendly for default option. * Update README.md (#652) Rework example so that if you use a custom LLM it doesn't throw code errors by uncommenting. * Update BrowserbaseLoadTool.md (#647) * Update crew.py (#644) Fixed Type on line 53 * fixes #665 (#666) * Added timestamp to logger (#646) * Added timestamp to logger Updated the logger.py file to include timestamps when logging output. For example: [2024-05-20 15:32:48][DEBUG]: == Working Agent: Researcher [2024-05-20 15:32:48][INFO]: == Starting Task: Research the topic [2024-05-20 15:33:22][DEBUG]: == [Researcher] Task output: * Update tool_usage.py * Revert "Update tool_usage.py" This reverts commit95d18d5b6f. incorrect bramch for this commit * support skip auto end session * conditional protect agentops use * fix crew logger bug * fix crew logger bug * Update crew.py * Update tool_usage.py --------- Co-authored-by: João Moura <joaomdmoura@gmail.com> Co-authored-by: Howard Gil <howardbgil@gmail.com> Co-authored-by: Olivier Roberdet <niox5199@gmail.com> Co-authored-by: Paul Sanders <psanders1@gmail.com> Co-authored-by: Anudeep Kolluri <50168940+Anudeep-Kolluri@users.noreply.github.com> Co-authored-by: Mike Heavers <heaversm@users.noreply.github.com> Co-authored-by: Mish Ushakov <10400064+mishushakov@users.noreply.github.com> Co-authored-by: theCyberTech - Rip&Tear <84775494+theCyberTech@users.noreply.github.com> Co-authored-by: Saif Mahmud <60409889+vmsaif@users.noreply.github.com>
This commit is contained in:
@@ -19,7 +19,20 @@ from crewai.utilities.token_counter_callback import TokenCalcHandler
|
||||
from crewai.agents.agent_builder.base_agent import BaseAgent
|
||||
from crewai.utilities.training_handler import CrewTrainingHandler
|
||||
|
||||
agentops = None
|
||||
try:
|
||||
import agentops
|
||||
from agentops import track_agent
|
||||
except ImportError:
|
||||
|
||||
def track_agent():
|
||||
def noop(f):
|
||||
return f
|
||||
|
||||
return noop
|
||||
|
||||
|
||||
@track_agent()
|
||||
class Agent(BaseAgent):
|
||||
"""Represents an agent in a system.
|
||||
|
||||
@@ -48,6 +61,8 @@ class Agent(BaseAgent):
|
||||
default=None,
|
||||
description="Maximum execution time for an agent to execute a task",
|
||||
)
|
||||
agent_ops_agent_name: str = None
|
||||
agent_ops_agent_id: str = None
|
||||
cache_handler: InstanceOf[CacheHandler] = Field(
|
||||
default=None, description="An instance of the CacheHandler class."
|
||||
)
|
||||
@@ -84,6 +99,7 @@ class Agent(BaseAgent):
|
||||
def __init__(__pydantic_self__, **data):
|
||||
config = data.pop("config", {})
|
||||
super().__init__(**config, **data)
|
||||
__pydantic_self__.agent_ops_agent_name = __pydantic_self__.role
|
||||
|
||||
@model_validator(mode="after")
|
||||
def set_agent_executor(self) -> "Agent":
|
||||
@@ -101,6 +117,12 @@ class Agent(BaseAgent):
|
||||
):
|
||||
self.llm.callbacks.append(token_handler)
|
||||
|
||||
if agentops and not any(
|
||||
isinstance(handler, agentops.LangchainCallbackHandler) for handler in self.llm.callbacks
|
||||
):
|
||||
agentops.stop_instrumenting()
|
||||
self.llm.callbacks.append(agentops.LangchainCallbackHandler())
|
||||
|
||||
if not self.agent_executor:
|
||||
if not self.cache_handler:
|
||||
self.cache_handler = CacheHandler()
|
||||
|
||||
Reference in New Issue
Block a user