TinkerHoodSubscribe

Agent skill vs subagent

The difference between a skill's instructions and a subagent's isolated context, with a worked delegation example.

Arun KumarMember of Technical Staff
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.

  1. FormatNot checkedThe file format was not checked for this page.
  2. InstallsNot checkedInstallation was not checked for this page.
  3. LoadsNot checkedLive loading was not checked for this page.
  4. 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

SkillSubagent
What it isReusable instructions for a taskA separately run agent with its own context
Runs inUsually 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
FormatMarkdown with YAML frontmatterMarkdown with YAML frontmatter (Claude Code), or TOML (Codex)
ReturnsNothing separate; its instructions shape the current turnA result handed back to the parent
Token effectLoads into the current context on activationRuns 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).

Sources

Field Notes. One email a week.

One tested workflow, one ecosystem change that matters, and one honest failure. Nothing on this site sits behind the signup.