mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-02 04:38:29 +00:00
* Add name and expected_output to TaskOutput This commit adds task information to the TaskOutput class. This is useful to provide extra context to callbacks. * Populate task name from function names This commit populates task name from function names when using annotations.
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
from crewai.agent import Agent
|
|
from crewai.project import agent, task
|
|
from crewai.task import Task
|
|
|
|
|
|
class SimpleCrew:
|
|
@agent
|
|
def simple_agent(self):
|
|
return Agent(
|
|
role="Simple Agent", goal="Simple Goal", backstory="Simple Backstory"
|
|
)
|
|
|
|
@task
|
|
def simple_task(self):
|
|
return Task(description="Simple Description", expected_output="Simple Output")
|
|
|
|
@task
|
|
def custom_named_task(self):
|
|
return Task(
|
|
description="Simple Description",
|
|
expected_output="Simple Output",
|
|
name="Custom",
|
|
)
|
|
|
|
|
|
def test_agent_memoization():
|
|
crew = SimpleCrew()
|
|
first_call_result = crew.simple_agent()
|
|
second_call_result = crew.simple_agent()
|
|
|
|
assert (
|
|
first_call_result is second_call_result
|
|
), "Agent memoization is not working as expected"
|
|
|
|
|
|
def test_task_memoization():
|
|
crew = SimpleCrew()
|
|
first_call_result = crew.simple_task()
|
|
second_call_result = crew.simple_task()
|
|
|
|
assert (
|
|
first_call_result is second_call_result
|
|
), "Task memoization is not working as expected"
|
|
|
|
|
|
def test_task_name():
|
|
simple_task = SimpleCrew().simple_task()
|
|
assert (
|
|
simple_task.name == "simple_task"
|
|
), "Task name is not inferred from function name as expected"
|
|
|
|
custom_named_task = SimpleCrew().custom_named_task()
|
|
assert (
|
|
custom_named_task.name == "Custom"
|
|
), "Custom task name is not being set as expected"
|