Hi ! I’m trying to build a crew but i’m stuck with an error and have no idea how to solve it.
Does anyone have a clue ?
Thanks !
(.venv) (base) victorgalli@MBP-de-Victor superscoping % crewai run
Running the Crew
Traceback (most recent call last):
File "/Users/victorgalli/superscoping/.venv/bin/run_crew", line 10, in <module>
sys.exit(run())
^^^^^
File "/Users/victorgalli/superscoping/src/superscoping/main.py", line 5, in run
crew = SuperscopingCrew()
^^^^^^^^^^^^^^^^^^
File "/Users/victorgalli/superscoping/.venv/lib/python3.11/site-packages/crewai/project/crew_base.py", line 36, in __init__
self.map_all_task_variables()
File "/Users/victorgalli/superscoping/.venv/lib/python3.11/site-packages/crewai/project/crew_base.py", line 203, in map_all_task_variables
self._map_task_variables(
File "/Users/victorgalli/superscoping/.venv/lib/python3.11/site-packages/crewai/project/crew_base.py", line 225, in _map_task_variables
if context_list := task_info.get("context"):
^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'get'
An error occurred while running the crew: Command '['uv', 'run', 'run_crew']' returned non-zero exit status 1.
Here is my crew.py :
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task, before_kickoff, after_kickoff
@CrewBase
class SuperscopingCrew:
"""Superscoping Crew"""
# Paths to your YAML configuration files
# To see an example agent and task defined in YAML, checkout the following:
# - Task: https://docs.crewai.com/concepts/tasks#yaml-configuration-recommended
# - Agents: https://docs.crewai.com/concepts/agents#yaml-configuration-recommended
agents_config = 'config/agents.yaml'
tasks_config = 'config/tasks.yaml'
@before_kickoff
def prepare_inputs(self, inputs):
inputs['additional_data'] = "Some extra information"
return inputs
@after_kickoff
def process_output(self, output):
output.raw += "\nProcessed after kickoff."
return output
@agent
def agent_metier(self) -> Agent:
return Agent(
config=self.agents_config['agent_metier'],
verbose=True,
allow_delegation=True
)
@agent
def ai_problem_solver(self) -> Agent:
return Agent(
config=self.agents_config['ai_problem_solver'],
verbose=True,
allow_delegation=True
)
@agent
def tech_lead(self) -> Agent:
return Agent(
config=self.agents_config['tech_lead'],
verbose=True,
allow_delegation=True
)
@agent
def ai_tech_validator(self) -> Agent:
return Agent(
config=self.agents_config['ai_tech_validator'],
verbose=True,
allow_delegation=True
)
@agent
def ai_software_engineer(self) -> Agent:
return Agent(
config=self.agents_config['ai_software_engineer'],
verbose=True,
allow_delegation=True
)
@agent
def ai_tech_project_supervisor(self) -> Agent:
return Agent(
config=self.agents_config['ai_tech_project_supervisor'],
verbose=True
)
@task
def qualification_analysis(self) -> Task:
return Task(
config=self.tasks_config['qualification_analysis']
)
@task
def job_to_be_done_formalization(self) -> Task:
return Task(
config=self.tasks_config['job_to_be_done_formalization']
)
@task
def success_metrics_definition(self) -> Task:
return Task(
config=self.tasks_config['success_metrics_definition']
)
@task
def roi_estimation(self) -> Task:
return Task(
config=self.tasks_config['roi_estimation']
)
@task
def algorithmic_translation(self) -> Task:
return Task(
config=self.tasks_config['algorithmic_translation']
)
@task
def algorithmic_pipeline_definition(self) -> Task:
return Task(
config=self.tasks_config['algorithmic_pipeline_definition']
)
@task
def data_identification(self) -> Task:
return Task(
config=self.tasks_config['data_identification']
)
@task
def technical_components_proposal(self) -> Task:
return Task(
config=self.tasks_config['technical_components_proposal']
)
@task
def technical_feasibility_validation(self) -> Task:
return Task(
config=self.tasks_config['technical_feasibility_validation']
)
@task
def security_and_compliance_check(self) -> Task:
return Task(
config=self.tasks_config['security_and_compliance_check']
)
@task
def feature_breakdown(self) -> Task:
return Task(
config=self.tasks_config['feature_breakdown']
)
@task
def time_estimation(self) -> Task:
return Task(
config=self.tasks_config['time_estimation']
)
@task
def global_consistency_check(self) -> Task:
return Task(
config=self.tasks_config['global_consistency_check']
)
@task
def final_summary(self) -> Task:
return Task(
config=self.tasks_config['final_summary'],
output_file="output/project_summary.md"
)
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents, # Automatically collected by the @agent decorator
tasks=self.tasks, # Automatically collected by the @tasks decorator
process=Process.sequential,
verbose=True,
)