Merge pull request #954 from crewAIInc/hotfix/improve-async-logging

Fix logging for async and sync tasks
This commit is contained in:
Brandon Hancock (bhancock_ai)
2024-07-17 11:20:13 -04:00
committed by GitHub
2 changed files with 5 additions and 7 deletions

View File

@@ -657,6 +657,7 @@ class Crew(BaseModel):
context = self._get_context( context = self._get_context(
task, [last_sync_output] if last_sync_output else [] task, [last_sync_output] if last_sync_output else []
) )
self._log_task_start(task, agent_to_use.role)
future = task.execute_async( future = task.execute_async(
agent=agent_to_use, agent=agent_to_use,
context=context, context=context,
@@ -669,6 +670,7 @@ class Crew(BaseModel):
futures.clear() futures.clear()
context = self._get_context(task, task_outputs) context = self._get_context(task, task_outputs)
self._log_task_start(task, agent_to_use.role)
task_output = task.execute_sync( task_output = task.execute_sync(
agent=agent_to_use, agent=agent_to_use,
context=context, context=context,
@@ -741,9 +743,8 @@ class Crew(BaseModel):
# Add the new tool # Add the new tool
task.tools.append(new_tool) task.tools.append(new_tool)
def _log_task_start(self, task: Task, agent: Optional[BaseAgent]): def _log_task_start(self, task: Task, role: str = "None"):
color = self._logging_color color = self._logging_color
role = agent.role if agent else "None"
self._logger.log("debug", f"== Working Agent: {role}", color=color) self._logger.log("debug", f"== Working Agent: {role}", color=color)
self._logger.log("info", f"== Starting Task: {task.description}", color=color) self._logger.log("info", f"== Starting Task: {task.description}", color=color)
if self.output_log_file: if self.output_log_file:
@@ -792,7 +793,7 @@ class Crew(BaseModel):
futures: List[Tuple[Task, Future[TaskOutput], int]], futures: List[Tuple[Task, Future[TaskOutput], int]],
was_replayed: bool = False, was_replayed: bool = False,
) -> List[TaskOutput]: ) -> List[TaskOutput]:
task_outputs = [] task_outputs: List[TaskOutput] = []
for future_task, future, task_index in futures: for future_task, future, task_index in futures:
task_output = future.result() task_output = future.result()
task_outputs.append(task_output) task_outputs.append(task_output)

View File

@@ -8,7 +8,6 @@ from copy import copy
from hashlib import md5 from hashlib import md5
from typing import Any, Dict, List, Optional, Tuple, Type, Union from typing import Any, Dict, List, Optional, Tuple, Type, Union
from langchain_openai import ChatOpenAI from langchain_openai import ChatOpenAI
from opentelemetry.trace import Span from opentelemetry.trace import Span
from pydantic import UUID4, BaseModel, Field, field_validator, model_validator from pydantic import UUID4, BaseModel, Field, field_validator, model_validator
@@ -255,9 +254,7 @@ class Task(BaseModel):
content = ( content = (
json_output json_output
if json_output if json_output
else pydantic_output.model_dump_json() else pydantic_output.model_dump_json() if pydantic_output else result
if pydantic_output
else result
) )
self._save_file(content) self._save_file(content)