Compare commits

...

1 Commits

Author SHA1 Message Date
Thiago Moretto
861560aa93 Adds Task key to the output to back ref to it on callbacks/webhooks 2025-02-27 16:31:25 -03:00
3 changed files with 4 additions and 0 deletions

View File

@@ -373,6 +373,7 @@ class Task(BaseModel):
pydantic_output, json_output = self._export_output(result) pydantic_output, json_output = self._export_output(result)
task_output = TaskOutput( task_output = TaskOutput(
key=self.key,
name=self.name, name=self.name,
description=self.description, description=self.description,
expected_output=self.expected_output, expected_output=self.expected_output,

View File

@@ -9,6 +9,7 @@ from crewai.tasks.output_format import OutputFormat
class TaskOutput(BaseModel): class TaskOutput(BaseModel):
"""Class that represents the result of a task.""" """Class that represents the result of a task."""
key: Optional[str] = Field(description="Key of the task", default=None)
description: str = Field(description="Description of the task") description: str = Field(description="Description of the task")
name: Optional[str] = Field(description="Name of the task", default=None) name: Optional[str] = Field(description="Name of the task", default=None)
expected_output: Optional[str] = Field( expected_output: Optional[str] = Field(

View File

@@ -111,6 +111,7 @@ def test_task_callback():
task.execute_sync(agent=researcher) task.execute_sync(agent=researcher)
task_completed.assert_called_once_with(task.output) task_completed.assert_called_once_with(task.output)
assert task.output.key == task.key
assert task.output.description == task.description assert task.output.description == task.description
assert task.output.expected_output == task.expected_output assert task.output.expected_output == task.expected_output
assert task.output.name == task.name assert task.output.name == task.name
@@ -149,6 +150,7 @@ def test_task_callback_returns_task_output():
assert isinstance(callback_data, str) assert isinstance(callback_data, str)
output_dict = json.loads(callback_data) output_dict = json.loads(callback_data)
expected_output = { expected_output = {
"key": task.key,
"description": task.description, "description": task.description,
"raw": "exported_ok", "raw": "exported_ok",
"pydantic": None, "pydantic": None,