Explain the two ways CrewAI passes one Task's output to a later Task, the implicit default and the explicit override, and when you would reach for the explicit form.
CrewAI threads outputs implicitly via the Sequential Process, previous task output flows into the next, and explicitly via `context=[task_a, task_c]` on a Task to pick exact upstream sources.
Imagine a paper being passed around a table. By default, each person reads only what the previous person handed them and writes their part on top. That works fine for a one-line story. But suppose the fifth person needs the second person's notes plus the third person's diagram, not the fourth person's draft. The fifth person says 'pass me what number two and number three wrote'. That is the explicit form. The default keeps the table moving; the explicit override picks the right sources when the conversation is not a single line.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
CrewAI's design ergonomics live and die on how Task outputs travel into downstream Tasks. The implicit default makes a quickstart demo work in 30 lines. The explicit override is what production crews actually rely on.
A candidate who only knows the implicit default has built a tutorial. A candidate who can articulate when to override, why, and what it does to cost and quality has shipped a crew. The question separates the two.
Implicit threading. Sequential Process default
With Process.sequential and a Tasks list, CrewAI runs the Tasks in order. After each Task runs, its output string is prepended to the next Task's prompt under a header like Previous task output:. The downstream agent sees the previous result without any explicit wiring.
crew = Crew(
agents=[researcher, writer, editor],
tasks=[research_task, draft_task, edit_task],
process=Process.sequential,
)
In this shape, draft_task sees research_task's output, and edit_task sees draft_task's output. The chain is implicit in the list order. For three-Task linear pipelines this is the right default. The boilerplate is gone and the dependency is obvious from the code.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
from crewai import Agent, Task, Crew, Process
research = Task(description="Research topic X", agent=researcher)
search_b = Task(description="Search angle B", agent=researcher, async_execution=True)
search_c = Task(description="Search angle C", agent=researcher, async_execution=True)
# Explicit fan-in: synth only sees the three searches, not random previous output
synth = Task(
description="Synthesise findings into a brief",
agent=writer,
context=[research, search_b, search_c],
)
crew = Crew(
agents=[researcher, writer],
tasks=[research, search_b, search_c, synth],
process=Process.sequential,
)
print(crew.kickoff())
Real products, models, and research that use this idea.
- Marketing-content crews routinely use a 'research → draft → editor' sequential chain on the implicit default for prototypes
- Production research crews use explicit `context=[search_task, summarise_task]` to fan-in into a synthesis Task after parallel retrieval
What an interviewer would ask next. Try answering before peeking at the approach.
QHow does CrewAI's Hierarchical Process change the default threading?
Walk through how the manager LLM delegates Tasks and which Task outputs are visible to which delegated agents, and how explicit context tames the manager's prompt size.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Leaving every downstream Task on the implicit default. Long pipelines accumulate every previous output in the prompt, blowing up tokens and triggering lost-in-the-middle effects on long contexts.
60 second bullets to scan on the way to the call.
Default threading behaviour under Sequential Process
Signature and shape of the context list parameter
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.