A subagent is a separately running agent delegated a bounded task by a primary agent. It normally returns a distilled result rather than its entire working context.
Use multiple agents when tasks are genuinely independent, large context can be partitioned, specialists require different instructions, or independent review adds valuable challenge. Prefer one agent when work is tightly coupled, small, write-heavy in the same files, or difficult to decompose without repeated coordination.