A separate agent spawned by another to do one scoped piece of work in its own context, returning only the result.
The main reason to spawn one is context, not parallelism. A subagent that reads forty files and returns a three-line answer keeps thirty-nine files out of the parent's context window. The parent keeps its own reasoning intact and gets a conclusion instead of a pile of evidence.
The cost is isolation: the subagent cannot see what the parent knows unless you tell it, so a vague instruction produces confidently irrelevant work. Subagent prompts need to be more self-contained than anything you would say to the agent in front of you.