Explore our AI courses, practical training for non-technical teamsExplore courses Explore AI courses
AI AgentsClaude CodeWorkflow Design

Agents vs. Subagents: What's the Difference, and Best Practices for Both

Everyone says subagent now. Here's what the word actually means on the platforms that use it, and when reaching for one helps instead of just adding moving parts.

TLDR: A subagent is a separate agent instance with its own context and its own job, not just a second AI thrown at the problem. Reach for one when a task would flood your main conversation with material you won’t need again, or when you want an independently checkable piece of output. Skip it when you could answer the thing in a sentence.
15,000Token limit for a Claude Code session's combined subagent descriptions before it warns you at startup, per Anthropic's Claude Code documentation
20Default number of subagents the Claude Agent SDK allows to run at once within a single query, per Anthropic's Agent SDK documentation
3Default number of layers deep a subagent can spawn further subagents of its own before Claude Code stops the chain, per Anthropic's Agent SDK documentation

Share this article

The Short Version

An agent is any AI system running its own loop of reasoning and action toward a goal. A subagent, specifically in Claude Code and the Claude Agent SDK, is a separate agent instance that a main agent spawns for one bounded job, with its own context window and tool permissions, that returns a summary rather than its full working. This piece covers when a subagent actually earns its place, how to brief both the main agent and the subagents it dispatches, a real look at how Future Factors’ own blog pipeline uses research, writing and QA subagents, and the mistakes, vague briefs, unbounded nesting, redundant subagents, that turn a good idea into more moving parts than the job needed.

The core difference between an agent and a subagent

Say you’re running one long Claude Cowork conversation to put together a client proposal. You ask it to look into the client’s industry, draft the proposal, then check the numbers against what closed last quarter. Two hours in, the numbers check comes back referencing the wrong company, because thirty messages earlier you mentioned a competitor by name and the conversation never quite let go of it.

The cause is a context problem, not a prompting one. Everything that conversation has ever seen, every search result, every draft, every correction, sits in the same window competing for attention. The fix a lot of teams reach for is a second agent. But “agent” and “subagent” get used almost interchangeably in casual conversation, and the difference is worth being precise about, because getting it wrong is how you end up with five agents doing the job of one confused agent.

An agent, in the general sense, is any AI system running its own loop of reasoning, acting, and observing results, usually toward a goal you gave it in one sitting. A subagent is something narrower and platform-specific. In Claude Code and the Claude Agent SDK, a subagent is a separate agent instance that a main agent spawns to do one piece of work: it gets its own context window, its own system prompt, and its own tool permissions, and when it finishes, only its final summary comes back to the parent conversation, not the searches and drafts it generated along the way. [1] Claude Cowork runs on the same underlying pattern: the agent working with you can dispatch a piece of work to a subagent, wait on or set aside the result, and keep its own conversation free of the raw material that subagent produced.

That’s the Claude-specific meaning, and it isn’t the only one. In the broader multi-agent-systems world, people use “subagent,” “worker agent,” and “specialist agent” fairly loosely for any agent that a coordinating agent hands a narrower task to, regardless of which company’s tooling is involved. There’s no single industry standard here. If you’re reading about subagents outside Anthropic’s own documentation, check which meaning the author is using before assuming it matches what Claude Code or Cowork actually does.

The Subagent Rule

A subagent earns its place when a piece of work needs its own clean context and a clearly bounded job, not because splitting things up sounds more sophisticated.

If you’re still getting oriented to what Cowork actually is before any of this, this plain-English guide is a reasonable place to start. Everything past this point assumes you already have one agent working for you and are deciding whether it needs help.

Why you would use a subagent at all instead of one agent doing everything

Priya runs operations for a 40-person agency, and last spring she built herself a single Cowork workflow to handle client onboarding: pull the signed contract, look up the client’s competitors, draft a kickoff brief, then quality-check the brief against the contract terms. One agent, one long conversation, four jobs.

It worked for the first two clients. By the fifth, the kickoff briefs had started repeating material from a different client’s competitor set, and the QA step kept passing briefs that didn’t actually match the contract. Nothing had broken in any obvious way. The conversation had simply accumulated four jobs’ worth of context, and the agent was doing what agents tend to do once a conversation gets crowded: quietly favoring whatever was most recent over whatever was actually relevant.

Here’s the decision rule worth applying before you reach for a subagent at all. Ask whether the sub-task would flood the main conversation with material nobody needs to see again once the useful part is pulled out, or whether you want a clean, reviewable unit of output you can check on its own. Fact-finding is the clearest case: fifteen searches and a pile of half-relevant pages are useful for producing one paragraph of findings, and clutter as permanent residents of your main conversation. Anthropic’s own description of subagent benefits names this directly: context isolation so exploration doesn’t spill into the main thread, and parallelization so independent pieces of work finish in roughly the time of the slowest one instead of stacking up one after another. [2]

Priya’s fix, once she saw the pattern, was to split the one workflow into three: a fact-finding subagent scoped to a single client at a time, a drafting step that stayed in her main conversation because it needed her judgment throughout, and a QA subagent whose only job was comparing the draft against the signed contract line by line. The operator-style approach to Cowork goes into this kind of restructuring in more depth, including what should stay with you rather than get delegated at all.

Give this to a subagent, or keep it in the main agent?

SignalGive it to a subagentKeep it in the main agent
Volume of raw materialProduces many searches, logs, or draft pages you won’t rereadProduces one short, direct answer
IndependenceDoesn’t need the last ten messages of context to make senseDepends heavily on decisions made earlier in the conversation
Judgment requiredFollows a checklist or comparison you can describe in two sentencesRequires weighing tradeoffs specific to this situation
ReviewabilityYou can check the output without redoing the workYou’d have to redo it yourself to know if it’s right

Run through this before creating a new subagent. Two or more “give it to a subagent” answers is a reasonable signal. One on its own often isn’t enough.

Best practices for the main, orchestrating agent

Once Priya had three pieces instead of one, the harder problem showed up: her main agent still had to decide when to call the fact-finding subagent, what to hand it, and what to do with what came back. That’s the orchestrating agent’s actual job, and it’s easy to get backwards. The instinct is to treat the main agent as a dispatcher that fires off subagents and assembles whatever returns. The better model is a main agent that keeps the judgment calls for itself and uses subagents only for the parts that don’t need them.

A few habits make the main agent’s side of this work in practice.

  • Write the brief before you dispatch it. A subagent only sees what you put in its prompt, not your conversation history. “Research this client” produces generic material. “Find this client’s three biggest competitors and how each one positions itself, using only sources from the last two years” produces something usable.
  • Decide up front what comes back verbatim. A subagent’s summary is what your main conversation sees by default. If you need the sources it checked, ask for them explicitly, because otherwise they stay inside the subagent and disappear with it.
  • Treat the returned summary as a draft, not a verdict. The main agent, and you, still decide whether the work is good enough to act on.
  • Don’t dispatch a subagent for something you could answer in one sentence yourself. Writing a clear brief only pays off when the task actually needs the isolation.

The genuinely hard part, and the one most teams skip, is deciding what stays a human call no matter how good the subagent’s output looks. This is where most of the actual review time should go, whether the work is client onboarding, a background summary, or a piece of published content.

Who owns what, when a subagent is involved

What the subagent doesWhat the human still ownsHow it gets checked
Gathers and summarizes research from a defined set of sourcesDeciding which findings actually matter for this client or decisionSpot-check two or three of the cited sources before the summary gets used
Drafts a first pass of a document against a template or briefTone, judgment calls, and anything client-specific that wasn’t in the briefA human reads the full draft, not just a summary of it
Checks a draft against a checklist: facts, links, formatting, banned phrasesDeciding what to do when the QA subagent flags something borderlineA second read on anything flagged, before it ships

The subagent produces material. A person still decides whether it’s right. Skipping the “how it gets checked” column is the most common way delegation quietly turns into abdication.

The Brief Rule

A subagent is only as good as the two or three sentences you hand it, so put your effort there, not into picking a clever name for it.

Best practices for subagents

Here’s what a vague brief actually produces. Say a subagent gets the instruction “look up subagent trends for our blog.” It comes back with three paragraphs about the general growth of AI agents, no named sources, and nothing you couldn’t have written yourself from memory. Nothing went wrong technically. The subagent did exactly what an open-ended, undefined brief invites: it produced something plausible-sounding instead of something checkable, because “look up subagent trends” isn’t a job. It’s a direction.

Compare that to: “Find the current definition of ‘subagent’ in Anthropic’s own Claude Code and Agent SDK documentation. Quote the exact wording. Note the last-updated date if it’s visible. Don’t summarize from memory, only state what’s actually on the page.” That version has a finish line. The subagent knows what done looks like, and so do you, when you check it.

A few habits keep subagents useful rather than decorative:

  1. Give it one job, not a checklist of unrelated ones. A subagent asked to research, write, and format in a single pass tends to do all three adequately rather than any one well.
  2. Restrict what it can touch. A subagent that only needs to read and compare shouldn’t also have the ability to publish or send. Narrower access keeps it from wandering into work nobody asked for, on top of being safer.
  3. Ask for a reviewable output, not a transcript. A short summary with sources or specifics beats a long narration of everything the subagent tried along the way.
  4. Give it a way to say it couldn’t finish. A subagent that can report “I found two of the three things you asked for, and here’s what’s missing” is more useful than one that pads the gap with something invented.

A filled-in subagent brief, ready to copy

FieldExample
Job in one sentenceVerify the three statistics in this draft against their original sources and flag anything that doesn’t match.
What “done” looks likeEach stat marked confirmed, doesn’t match, or source not found, with a one-line reason.
What it can accessWeb search and the draft document. Nothing else.
What it should not doRewrite the draft, add new statistics, or decide whether to keep a flagged stat.
What comes backA short table, one row per statistic, not a narrative of the search process.

This is the level of specificity that separates a subagent producing something checkable from one producing something merely plausible. Swap the top row for whatever you’re delegating.

The Finish Line Rule

Give a subagent a way to know it’s done, or it will keep going until it runs out of turns, not until the job is actually finished.

The level of detail in that brief is worth keeping somewhere reusable rather than reinventing each time. A shared prompt library is a natural home for the handful of subagent briefs your team ends up reusing.

How much detail a brief needs also depends on who’s writing it and what the subagent touches. Someone using subagents for content work can scope a QA subagent tightly around facts, links, and formatting. Someone automating fact-finding can scope theirs around source freshness and verification instead. Someone building a subagent into a customer-facing workflow is working under a stricter bar, because “good enough to check later” isn’t good enough when the output might reach a customer before a person ever sees it.

A real example: how Future Factors' own content pipeline uses subagents

Future Factors runs its own blog through a daily pipeline, and it uses this exact pattern rather than one long editorial conversation. When an article like this one gets written, the work is split across a small number of subagents dispatched for specific jobs: one focused on fact-finding and source verification, one focused on drafting sections against a brief, and one focused on quality assurance, checking the draft against a fixed checklist for factual claims, broken or irrelevant links, banned phrasing, and template requirements before anything gets published.

Nothing about that setup is exotic. It’s the same decision rule from earlier in this piece, applied to one recurring job. Fact-finding generates a pile of search results nobody needs to keep. Drafting benefits from a subagent that can focus purely on the brief in front of it, without the accumulated back-and-forth of a long editorial chat. QA works better as an independent check that isn’t shaped by having watched the piece get written. Keeping those three separate is what lets each one stay narrow enough to actually check.

What doesn’t change, regardless of how many subagents are involved, is who owns the call on whether an article is accurate and ready to go out. The QA subagent can catch a broken link or a banned phrase reliably. It can’t decide whether a genuinely borderline claim is worth including, and it isn’t asked to. That decision routes back to a person, the same principle from the ownership table earlier in this piece, just applied to publishing instead of client onboarding.

The specifics of how each subagent is configured, which tools it gets, exactly how its output gets passed along, aren’t the interesting part here. The interesting part is that splitting the job this way is what makes daily publishing checkable at all, rather than one long conversation that gets harder to audit the longer it runs.

Common mistakes that make a multi-agent setup harder to manage, not easier

Say a small team gets excited about subagents after their first success and starts creating one for everything: a subagent to check grammar, a subagent to check tone, a subagent to check grammar again in a slightly different voice. Three weeks in, nobody can say which subagent is responsible for what, two of them are doing overlapping checks, and a simple typo fix now involves reading three separate summaries to figure out which one should have caught it.

That’s the most common failure, and it’s rarely about the technology. It’s scope creep dressed up as sophistication. A few other patterns show up often enough to name directly.

Common subagent failure modes, and what actually fixes them

What you seeLikely causeWhat to fix
Generic, unusable outputThe brief described a topic, not a job with a finish lineRewrite the brief around one sentence of “done”
Two subagents overlapBoth were scoped around the same kind of check instead of a distinct oneMerge them, or redraw the boundary between their jobs
Costs climb without a clear reasonSubagents are spawning subagents of their own, unmonitoredSet an explicit limit on how many layers deep a chain can go and how many can run at once
Nobody catches a mistake until it shipsThe output was treated as final rather than reviewedReintroduce a specific human check before anything downstream uses the result

Most of these trace back to an unclear brief or a missing limit, not to the subagent doing something unexpected.

The costs-without-explanation row is worth taking seriously if you’re working in Claude Code or the Agent SDK directly rather than through a simpler interface. Subagents can spawn subagents of their own, and by default the Agent SDK allows a chain three layers deep and up to 20 running at once within a single query. [3] That’s a reasonable default for a lot of work. It’s also exactly the kind of setting that turns one ambitious prompt into a much larger bill than expected, if nobody sets a tighter limit for the job at hand.

The Depth Rule

More subagents is not the same as more sophistication. It’s more places for a small mistake to hide before anyone reviews it.

The pattern underneath most of these mistakes is the one from the start of this article: subagents are a tool for isolating a specific, bounded job, not a general sign of a more advanced setup. A team running one well-scoped subagent for the single task that actually needs it is doing this better than a team running six that nobody can describe individually.

If you want to try this on something real this week, pick one recurring task you currently run inside a single long agent conversation. Take just the fact-finding or the QA piece of it, write a two-sentence brief for it using the finish-line test from earlier, and hand that one piece to a separate subagent. Don’t restructure the whole workflow yet. See what a properly scoped subagent produces before deciding whether the rest of the job needs the same treatment.

Sana Mian
Sana Mian, Co-Founder of Future Factors AI

Sana is an AI educator and learning designer specialising in making complex ideas stick for non-technical professionals. She has trained 2,000+ learners across corporate teams, bootcamps, and keynote stages. Future Factors offers AI Bootcamps, Corporate Workshops, and Speaking & Consulting for businesses ready to adopt AI without the overwhelm.

More about Sana →

Frequently Asked Questions

What is the difference between an agent and a subagent?

An agent is any AI system running its own loop of reasoning and action toward a goal. A subagent, in Claude Code and the Claude Agent SDK specifically, is a separate agent instance that a main agent spawns for one bounded piece of work, with its own context window, tool permissions, and system prompt; only its final summary returns to the parent conversation. Outside Anthropic’s own tools, “subagent” is also used more loosely across the multi-agent-systems world for any narrower worker agent a coordinator delegates to, so the exact meaning shifts depending on which platform or paper you’re reading.

Do I need subagents, or is one agent enough?

For most single-step or short tasks, one agent is enough, and adding subagents adds overhead without adding value. Reach for a subagent when a task would flood your main conversation with material you won’t need again, like dozens of search results or long logs, or when you want an independent, reviewable check on something, like QA on a draft. If your current agent conversation is short and focused, it doesn’t need subagents yet.

Can a subagent have its own subagents?

Yes. In Claude Code and the Claude Agent SDK, a subagent can spawn subagents of its own, and by default that nesting is allowed three layers deep with up to 20 subagents running at once in a single query, both of which are configurable. In practice, most non-technical use cases don’t need more than one layer: a main agent dispatching a handful of subagents directly. Deeper nesting adds real value for large, genuinely parallel jobs and adds real risk of runaway cost and confusion for everything else.

What is the biggest mistake people make when first using subagents?

Writing the brief too vaguely and expecting the subagent to fill the gap with judgment. A subagent only sees what’s in its prompt, not your reasoning or your conversation history, so a vague instruction like “research this” produces something plausible rather than something useful. The fix is describing the job in a sentence or two with a clear definition of “done,” the same way you’d brief a contractor who has never spoken to you before.

Does using subagents cost more or take longer than using one agent?

It depends on how they’re used. Running subagents in parallel for independent pieces of work can finish faster than doing everything sequentially in one conversation, since each one works in its own context and doesn’t wait on the others to finish unrelated steps. But every subagent makes its own set of requests, so cost scales with how many you spawn, not just with how much total work gets done. An unscoped setup where subagents spawn further subagents can get expensive quickly, which is why setting a limit on depth and concurrency matters once you’re doing this beyond a single well-defined task.

About This Article

Sana writes Future Factors’ guides on making AI agents actually usable inside a normal workday. The Claude Code and Agent SDK documentation referenced in this piece was read directly on docs.claude.com on 31 August 2026, not taken from secondhand summaries of it. If you want to work through scoping subagents for your own team’s workflows in person, that’s exactly the kind of thing covered in Future Factors’ practical AI courses.

Sources

  1. Anthropic. “Create custom subagents.” Claude Code documentation, docs.claude.com. Describes subagents as specialized AI assistants that run in their own context window, with a custom system prompt, specific tool access, and independent permissions, and notes the 15,000-token warning threshold for combined subagent descriptions. Accessed August 31, 2026. https://docs.claude.com/en/docs/claude-code/sub-agents
  2. Anthropic. “Subagents in the SDK.” Claude Agent SDK documentation, docs.claude.com. Describes the context-isolation and parallelization benefits of subagents, and states the default limits of 20 concurrently running subagents and 3 layers of subagent nesting depth per query. Accessed August 31, 2026. https://docs.claude.com/en/docs/agent-sdk/subagents

Psst, Hey You!

(Yeah, You!)

Want helpful AI tips flying Into your inbox?

Weekly tips. Real examples. Practical help for busy professionals.

We care about your data, check out our privacy policy.