AgentTeam only accepts tasks=None (auto-generate one per agent) or a list / tuple of Task instances — anything else raises a clear TypeError at construct time.
Quick Start
1
Let the team auto-generate tasks
tasks=None generates one task per agent — the shortest working run.2
Pass explicit Task instances
Task instances when you need per-task control.Common Mistake
tasks= is not a prompt string — passing one raises a TypeError.
start(), or wrapping it in a Task.
Accepted and Rejected Inputs
Everytasks= value resolves to one of these outcomes.
Error Reference
Grep these exact messages when you hit a failure.Best Practices
Prefer tasks=None for simple runs
Prefer tasks=None for simple runs
Pass the prompt to
start() and let the team auto-generate one task per agent — often all you need.Use Task(...) when you need per-task control
Use Task(...) when you need per-task control
Task(description=..., expected_output=..., agent=...) gives you templating with {{placeholder}}, custom expected_output, and a specific agent=.A tuple of Task works too
A tuple of Task works too
tasks=(t1, t2) is accepted — the sequence is coerced to a list internally, useful when the task list is static.Empty list is a ValueError, not a TypeError
Empty list is a ValueError, not a TypeError
tasks=[] has always raised ValueError — that check pre-dates the strict type validation.Related
AgentTeam
The team class and its full parameter list.
AgentTeam Params
Which params apply at the team level.
Batch Runs
Run the same team once per input.
Tasks
Task configuration and templating.
Validation added in PraisonAI PR #5738 (fixes #5736).

