Crew's full_output attribute is not generating output of all tasks

I am trying to use the full_output attribute of crew to include output from all my tasks in the final output but I am only receiving the last task output.

from crewai import Agent,Crew,Process,Task,LLM
from crewai.project import CrewBase, agent, crew, task

from src.types import Summaries, ActionItems, FollowUps, Ideas

@CrewBase
class Insights:

    agents_config = 'config/agents.yaml'
    tasks_config = 'config/tasks.yaml'

    @agent
    def meeting_summarizer(self) -> Agent:
        return Agent(
            config=self.agents_config['meeting_summarizer'],
            verbose=True
        )

    @agent
    def meeting_note_taker(self ) -> Agent:
        return Agent(
            config=self.agents_config['meeting_note_taker'],
            verbose=True
        )

    @agent
    def meeting_analyzer(self ) -> Agent:
        return Agent(
            config=self.agents_config['meeting_analyzer'],
            verbose=True,
        )

    @agent
    def meeting_follower(self ) -> Agent:
        return Agent(
            config=self.agents_config['meeting_follower'],
            verbose=True
        )

    @agent
    def meeting_ideas(self) -> Agent:
        return Agent(
            config=self.agents_config['meeting_ideas'],
            verbose=True
        )

    @task
    def summarize_meeting(self) -> Task:
        return Task(
            config=self.tasks_config['summarize_meeting'],
            output_json=Summaries,
        )

    @task
    def analyze_notes(self) -> Task:
        return Task(
            config=self.tasks_config['analyze_notes'],
        )

    @task
    def analyze_action_items(self) -> Task:
        return Task(
            config=self.tasks_config['analyze_action_items'],
            output_json=ActionItems,
        )

    @task
    def analyze_followup(self) -> Task:
        return Task(
            config=self.tasks_config['analyze_followup'],
            output_json=FollowUps,
        )

    @task
    def analyze_ideas(self) -> Task:
        return Task(
            config=self.tasks_config['analyze_ideas'],
            output_json=Ideas,
        )

    @crew
    def crew(self) -> Crew:
        return Crew(
            agents=self.agents,
            tasks=self.tasks,
            process=Process.sequential,
            full_output=True,
            memory=True,
            verbose=True,
            output_log_file="log.txt",
            embedder={
                "provider": "ollama",
                "config": {
                    "model": "nomic-embed-text"
                }
            },
            cache=False
        )

Please find attached screenshot which shows full_output as unexpected argument

1 Like

I was able to get this resolved. I was checking at the final raw output instead of tasks_output to check the final result. I used the following code to access all the task outputs.

crew_output = (
                Insights()
                .crew()
                .kickoff(inputs={
                    "transcript": self.transcript,
                    "subject": self.subject,
                    "meeting_id": self.meeting_id,
                    "meeting_start_time": self.meeting_start_time,
                    "meeting_end_time": self.meeting_end_time,
                })
            )
            # Print the type of tasks_output and its content
            if crew_output.tasks_output:
                print(f"Type of tasks_output: {type(crew_output.tasks_output)}")
                print(f"Value of tasks_output: {crew_output.tasks_output}")
1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.