Improving agent logging

This commit is contained in:
João Moura
2024-03-11 17:05:54 -03:00
parent 1f95d7b982
commit cb5a528550
3 changed files with 13 additions and 6 deletions

View File

@@ -3,7 +3,6 @@ import uuid
from typing import Any, Dict, List, Optional, Union from typing import Any, Dict, List, Optional, Union
from langchain_core.callbacks import BaseCallbackHandler from langchain_core.callbacks import BaseCallbackHandler
from pydantic import ( from pydantic import (
UUID4, UUID4,
BaseModel, BaseModel,
@@ -68,7 +67,8 @@ class Crew(BaseModel):
description="Language model that will run the agent.", default=None description="Language model that will run the agent.", default=None
) )
manager_callbacks: Optional[List[InstanceOf[BaseCallbackHandler]]] = Field( manager_callbacks: Optional[List[InstanceOf[BaseCallbackHandler]]] = Field(
default=None, description="A list of callback handlers to be executed by the manager agent when hierarchical process is used" default=None,
description="A list of callback handlers to be executed by the manager agent when hierarchical process is used",
) )
function_calling_llm: Optional[Any] = Field( function_calling_llm: Optional[Any] = Field(
description="Language model that will run the agent.", default=None description="Language model that will run the agent.", default=None
@@ -232,8 +232,10 @@ class Crew(BaseModel):
task.tools += AgentTools(agents=agents_for_delegation).tools() task.tools += AgentTools(agents=agents_for_delegation).tools()
role = task.agent.role if task.agent is not None else "None" role = task.agent.role if task.agent is not None else "None"
self._logger.log("debug", f"Working Agent: {role}") self._logger.log("debug", f" == Working Agent: {role}", color="bold_yellow")
self._logger.log("info", f"Starting Task: {task.description}") self._logger.log(
"info", f" == Starting Task: {task.description}", color="bold_yellow"
)
output = task.execute(context=task_output) output = task.execute(context=task_output)
if not task.async_execution: if not task.async_execution:

View File

@@ -10,7 +10,7 @@ class Logger:
) )
self.verbose_level = verbose_level self.verbose_level = verbose_level
def log(self, level, message): def log(self, level, message, color="bold_green"):
level_map = {"debug": 1, "info": 2} level_map = {"debug": 1, "info": 2}
if self.verbose_level and level_map.get(level, 0) <= self.verbose_level: if self.verbose_level and level_map.get(level, 0) <= self.verbose_level:
self._printer.print(f"[{level.upper()}]: {message}", color="bold_green") self._printer.print(f"[{level.upper()}]: {message}", color=color)

View File

@@ -6,9 +6,14 @@ class Printer:
self._print_red(content) self._print_red(content)
elif color == "bold_green": elif color == "bold_green":
self._print_bold_green(content) self._print_bold_green(content)
elif color == "bold_yellow":
self._print_bold_yellow(content)
else: else:
print(content) print(content)
def _print_bold_yellow(self, content):
print("\033[1m\033[93m {}\033[00m".format(content))
def _print_bold_green(self, content): def _print_bold_green(self, content):
print("\033[1m\033[92m {}\033[00m".format(content)) print("\033[1m\033[92m {}\033[00m".format(content))