Agent skill vs subagent
The difference between a skill's instructions and a subagent's isolated context, with a worked delegation example.
- Published
- Sep 27, 2026
- Checked
- Sep 27, 2026
- Words
- 743
How far we checked this page
Signed by Arun Kumar, Sep 27, 2026. Passing one check says nothing about the next.
- FormatNot checkedThe file format was not checked for this page.
- InstallsNot checkedInstallation was not checked for this page.
- LoadsNot checkedLive loading was not checked for this page.
- HelpsNot checkedA with/without task comparison was not run.
A skill gives an agent reusable instructions for a task, and usually runs inside the current conversation, though Claude Code documents a way to run one in a forked subagent context instead. A subagent is a separate agent run with its own working context, handed a delegated task, that returns a result to whoever asked for it. They aren’t competing options for the same job: a subagent can use a skill, and on some hosts a skill can even run inside a forked subagent context. Reach for a skill when you want the current agent to follow a procedure. Reach for a subagent when you want a bounded piece of work done in an isolated context, then reported back, as of September 2026.
Choose a skill when
- You want the current agent, in the current conversation, to follow a specific procedure, with no separate context needed.
- The task doesn’t need isolation from the rest of the conversation; the instructions just need to be there when relevant.
Choose a subagent when
- The task should run with its own working context, for example exploring a large codebase without filling the main conversation with every file it reads.
- You want a named, reusable role with its own tool access and, on some hosts, its own model choice, for example a read-only reviewer.
- You’re delegating and expect a summary back, not a running commentary in the main thread.
Worked example
A repository-review task needs a three-file summary. Handled as a skill, the current agent just follows the skill’s instructions directly: read the three files, summarize, done. Everything it reads stays in the same conversation.
Handled as a subagent, the same task is defined once as a Markdown file. In Claude Code, that’s at .claude/agents/reviewer.md, with frontmatter naming it, describing when to use it, and listing which tools it may call. Asked to delegate, the host starts that subagent in its own context; the subagent reads the three files and returns only its summary, so the files themselves never enter the parent conversation’s context. Claude Code subagents.
The two aren’t mutually exclusive: a subagent’s definition can preload a skill (Claude Code’s skills: field), and a skill can itself ask to run in a forked agent context via context: fork. Preloading isn’t the same as restricting: the docs are explicit that a subagent with a skill preloaded can still act outside that skill. Claude Code skill forking. We haven’t built or run this combination ourselves; it’s what the docs describe, not a test result.
At a glance
| Skill | Subagent | |
|---|---|---|
| What it is | Reusable instructions for a task | A separately run agent with its own context |
| Runs in | Usually the current conversation (Claude Code also documents a forked-context option) | Its own working context or thread |
| Defined at (Claude Code) | .claude/skills/<name>/SKILL.md | .claude/agents/<name>.md |
| Defined at (Codex) | .agents/skills/<name>/SKILL.md (also .codex/skills/ on current versions) | .codex/agents/*.toml |
| Format | Markdown with YAML frontmatter | Markdown with YAML frontmatter (Claude Code), or TOML (Codex) |
| Returns | Nothing separate; its instructions shape the current turn | A result handed back to the parent |
| Token effect | Loads into the current context on activation | Runs in a separate context; more agents can raise total tokens even if the parent’s own context stays smaller |
What we checked
The subagent facts above (file formats, frontmatter fields, the skills: preload field, forked-skill contexts) come from Claude Code’s subagent docs, its skill-forking docs, and Codex’s subagent docs, all checked September 27, 2026. We did not define or run a subagent in any host for this page.
What we did test hands-on, on the same date, was a plain skill’s discovery and invocation: our explain-error skill, on Codex CLI 0.157.1, at both .agents/skills/explain-error/ and .codex/skills/explain-error/. It was discovered, correctly triggered on a matching prompt, and left alone on an unrelated one. That confirms the skill side of this page’s general behavior; it says nothing about subagent delegation, which we haven’t tested.
What we didn’t check: no subagent, in any host: no delegation trace, no token comparison between a single-agent and a delegated run. We also didn’t test skill loading in Claude Code (auth blocker) or Cursor (not installed).