Eazler AI Lab AI Engineering Journal
Skip to article
Skills◷ 21 min read

Subagents vs agent skills — subagents helped only when skills had input-output contracts

Running agent skills as subagents helped only when the skills had input-output contracts, and total tokens rose 1.3–1.7× (7 models, 64 tasks).

On this page

An agent skill usually works by loading SKILL.md into the main context and having the model follow its instructions. A paper from Cornell and Microsoft Research Cambridge, published on September 7, 2026, compared that approach with running the same skill package as a subagent that opens a fresh context window. It tested 7 models on 64 tasks. Subagents came out ahead only when the skill description stated what the skill takes in and what it returns (what the paper calls an input-output contract), and even then the two modes performed the same on the top models. Existing skills without that information gained nothing, and even where it was present, total tokens went up. [1]

Korean original: 한국어 원문 (2026-09-11)Scope: how skill packages are executedSources checked: arXiv LaTeX source · 2026-09-11

1. Executive summary

7 × 64
models compared × tasks
64 of SkillsBench's 87 [1]
95.3%
share of tasks where subagents reduced
peak context on gpt-5.3-codex [1]
~1.7×
total tokens per task, same model
subagent vs. skill, read from the figure [1]
The key conclusion: Running a skill as a subagent is not a better way to use skills in general; it fits only a particular kind of skill. Skills that spell out a procedure and state their inputs and outputs gained substantial accuracy on small models when run in a fresh context, and the gap widened as the context grew. On the top two models, the two modes were equal or the subagent was slightly lower. Skills that hold only norms or reference knowledge, and skills whose job is to choose other skills, had to stay in the main context.

An agent skill is a reusable knowledge package: instructions (SKILL.md) bundled in one folder with scripts and reference documents. A subagent is a separate context window that the main agent opens to hand off a subtask. The paper treats these not as two separate features but as two ways to execute the same skill package, and compares them. [1]

The accuracy figures in this article are approximate values we read from the paper's figures. The paper gives no accuracy tables; the only printed numbers are in the peak-context-ratio figure. Treat the readings as accurate to about ±0.02. Each section states which values are printed and which we read.

2. How the two execution modes differ

Anthropic's skills documentation says a skill enters the context in three stages. The name and description are always in the system prompt (about 100 tokens per skill); once the skill is selected, the SKILL.md body is loaded (recommended to stay under 5,000 tokens); and reference files enter only when they are read. [5] In this mode, the main agent itself carries out the skill's procedure. After it reads the instructions, every step it takes to follow them accumulates in the main context.

This is where the paper sees a problem. In reinforcement learning, a "skill" is a policy that, once a higher-level controller invokes it, runs several steps on its own and then terminates. Agent skills use the same word, but in practice invoking one only adds instructions to the context. Even when the instructions are useful, a longer context lowers the model's reasoning quality, so the longer the task, the more invoking a skill becomes a burden in itself. [1] We covered performance loss with context length separately in our report on context degradation.

AspectRun as an agent skillRun as a subagent
What happens when the skill is invokedThe SKILL.md body is added to the main contextA new context, initialized with the instructions, is opened
Who carries out the procedureThe main agentA subagent running as a separate policy
What stays in the main contextThe instructions · every tool call and result · intermediate reasoningOnly the subagent's final response
What the subagent seesNot applicableOnly the instructions and the input the main agent passes. It cannot see the main conversation
Combining knowledge from several skills in one stepPossibleNot possible. A drawback the paper states explicitly
Cost structureA single context grows longerExtra communication tokens to pass input information again

The paper rests on two hypotheses. First, splitting a task across several context windows reduces the maximum length any single window has to process, and what drives performance is this peak length, not total tokens. As support, the paper cites earlier work showing a limit on how much information a model can carry across a long input. [6] Second, because a subagent cannot see the main context, the main agent must be able to decide, from the skill description alone, which subagent to call and what to pass it. This second condition is what drives the paper's conclusion.

3. What was measured, and how

The testbed is SkillsBench, a benchmark built to measure how much agent skills help. It has 87 long-horizon tasks across 8 domains, and each task comes with human-written skill packages and a verifier that grades results by the same criteria every time. The SkillsBench paper reported that these skills raised the average pass rate across 18 combinations of model and execution environment (harness) from 33.9% to 50.5%. [2]

The subagent paper uses only 64 of those 87 tasks. When the authors reviewed the existing skills, they found almost none stated their inputs and outputs, so they built a separate skill set. The procedure: run an OpenHands agent with GPT-5.3 Codex three times on every task, collect the successful trajectories, and hand them to GitHub Copilot CLI to synthesize 3–5 procedural skills per task. The experiments cover the 64 tasks for which synthesis succeeded. The paper calls this set the synthesized set and the existing skills the curated set. [1]

ItemSettingWhy it matters here
HarnessModified OpenHands SDK. Default system prompt replaced with a short prompt telling the agent to "always use tools"; OpenHands' own skills feature and automatic skill retrieval removedNot the behavior of products such as Claude Code or Codex
Subagent implementationRegistered as MCP tools. The SDK's 5-minute tool timeout extended to 2 hoursNot a direct measurement of any product's subagent feature
7 modelsMinistral-8B · Gemma-4-12B · Qwen3.5-9B · Mistral-Large-3.1 · gpt-5.4-mini · Kimi-K2.6 · gpt-5.3-codexSpans small open models to top-tier models
2 skill setsCurated (no input-output contracts) · synthesized (procedure + input-output contracts)Separates execution mode from skill content
2 execution modesAgent skill · subagentThe same skill files run both ways

The synthesized skills' descriptions follow a fixed format: a one-line summary followed by Expected input and Output items. To take one example from the paper's appendix, a skill that turns a vulnerability scanner's JSON report into normalized records takes as input "the scanner JSON report path from the scan step" and "the required severity filter and CSV columns from the audit plan," and returns as output "a JSON list of normalized records with Package, Version, CVE_ID, Severity, CVSS_Score, Fixed_Version, Title, and Url fields." [1] This format is what the paper means by an input-output contract.

The synthesized skills came from successful runs of the same tasks. That means their content is close to each task's correct procedure. The paper itself says the accuracy difference between the curated and synthesized sets "is not a controlled comparison, since the two sets differ in content." What this article cites are comparisons within one set, changing only the execution mode.

4. Result 1: only with input-output contracts

Here is what the paper's text says. On the curated set, "agent skills match or outperform subagents across all models." On the synthesized set, "subagents outperform agent skills, with the gain being largest for smaller models that are more bandwidth limited," that is, models with a more limited ability to handle the information they need from a long input all at once. [1] Below is the average task accuracy we read from Figure 2.

ModelNo skillsCurated · skillCurated · subagentSynthesized · skillSynthesized · subagent
Ministral-8B0.020.000.010.030.10
Gemma-4-12B0.050.070.090.170.40
Qwen3.5-9B0.070.090.110.220.46
Mistral-Large-3.10.080.120.160.260.55
gpt-5.4-mini0.450.550.510.550.71
Kimi-K2.60.440.520.530.800.77
gpt-5.3-codex0.540.710.610.850.85

Approximate values read from Figure 2 (±0.02); the paper does not print these numbers. The condition is a flat library that exposes every synthesized skill at once (see Section 5).

Setting the table next to the paper's text shows two things.

  • On the synthesized set, the large gaps are on the small models. Switching to subagent execution more than doubled accuracy for Gemma-4-12B and Qwen3.5-9B, and nearly doubled it for Mistral-Large-3.1. The top two models, by contrast, scored almost the same either way: gpt-5.3-codex tied, and Kimi-K2.6 was actually slightly higher with agent skills. This matches the paper's statement that the gain is "largest for smaller models."
  • The paper's statement about the curated set differs slightly from its figure. The text says agent skills "match or outperform subagents across all models," but in the figure the subagent reads 0.02–0.04 higher on the four small models. That difference overlaps with our reading error, so it does not amount to a refutation. What the figure does show clearly is gpt-5.3-codex, where the subagent fell well behind: 0.71 for the skill versus 0.61 for the subagent. In other words, running skills without contracts as subagents cost the most on the strongest model.

The paper's interpretation: when a skill is designed as a unit of work with a procedure and a clear input and output format, subagent execution has the advantage; when it holds only loosely structured knowledge, putting it directly into the main context works better. This interpretation points back to the second condition in Section 2. Without a contract, the main agent does not know what to pass, and the subagent has to finish the job with only what it received. [1]

5. Result 2: as the context grows

The second experiment raises context pressure artificially. It adds the descriptions of distractor skills, which are not needed to solve the task, to the system prompt (0, 100, 200 and up to 263 of them) and measures accuracy again. The setup mimics real environments with many tools available. The paper's conclusion is that "subagent execution degrades more gracefully." [1] The values below are read from Figure 3 in the main text.

Model · execution mode0 distractors100200263
Qwen3.5-9B · skill0.480.230.160.22
Qwen3.5-9B · subagent0.620.450.410.46
gpt-5.4-mini · skill0.820.640.550.56
gpt-5.4-mini · subagent0.820.750.720.71
gpt-5.3-codex · skill0.870.850.840.85
gpt-5.3-codex · subagent0.850.860.870.85

Approximate values read from Figure 3 (±0.02). Synthesized set. The main-text figure shows only three models; the other four are in an appendix figure, and the paper says the interpretation is the same.

The key column is 0 distractors. With no distractor skills, gpt-5.4-mini scores 0.82 in both modes. The gap appeared as distractors were added. So on this model, subagents do better not because the skill runs in a fresh context as such, but because they avoid piling more instructions onto a context that is already large. The paper says the same: "keeping skill instructions out of an already-large context matters even more as that context grows." [1]

This table is also the key to reading the one in Section 4. The values in the 263-distractor column (Qwen3.5-9B 0.22 and 0.46, gpt-5.4-mini 0.56 and 0.71) match the synthesized-set values in the Section 4 table. The paper's appendix says the baseline for Section 4 is a flat library in which "all leaf skills are exposed to the agent simultaneously" (leaf skills are the executable skills at the bottom of the hierarchy), so the Section 4 gaps should be read as measured with every synthesized skill exposed. This is our inference from comparing the two figures; the paper does not state it in words. For an environment with only a few skills, the paper gives no grounds to expect gaps as large as those in Section 4.

No gap appeared on the strongest model. gpt-5.3-codex stayed around 0.85 in both modes, even with 263 distractor skills. Within the scope of this paper's experiments, if you are using a top-tier model, no accuracy gain from switching execution modes was measured.

6. Result 3: total tokens rose; peak context fell only on strong models

The trade-off the paper predicts is that subagent execution "trades a higher total token count for reduced peak context length." Here, peak context length is the longest context any single window processed at one time while solving one task. When several subagents are opened, the largest of their peaks is used. This is the only metric for which the figure prints its numbers. [1]

ModelShare of tasks where the subagent's peak context was shorter (printed)Total tokens per task · skill (read from figure)Total tokens per task · subagent (read from figure)
Ministral-8B28.1%~120k~160k
Gemma-4-12B45.2%~110k~170k
Qwen3.5-9B59.4%~140k~200k
Mistral-Large-3.132.8%~110k~190k
gpt-5.4-mini70.3%~140k~180k
Kimi-K2.679.7%~120k~180k
gpt-5.3-codex95.3%~100k~170k

The shares are the values printed on the left of Figure 4. Token counts are approximate readings from the right of Figure 4, rounded to the nearest 10,000. Synthesized set. The "~1.7×" in the executive summary is our derived value, from dividing the two gpt-5.3-codex values.

Total tokens were higher with subagents on every model: 1.3–1.7× the agent-skill figure, by our readings of the figure. The paper states the reason plainly. A skill keeps the information in a single context, but with a subagent, information the main agent already holds has to be passed on again, which creates duplication. [1] In its conclusion the paper suggests designing contracts to be minimal to cut this cost, but leaves how to minimize them as an open problem.

The share of tasks where the subagent's peak context was shorter varied widely by model. On gpt-5.3-codex the subagent's was shorter on 95.3% of tasks, but on Ministral-8B the share was only 28.1%, so more tasks had a shorter peak context under agent-skill execution. The paper's explanation: under agent-skill execution, a small model's reasoning breaks down and it ends the task early, so its context stays short; under subagent execution, each subagent spends the tokens its subtask needs all the way to the end, so the context ends up longer. The paper therefore limits the peak-context comparison itself: it is "only comparable across models whose success rates are similar under both execution modes," and only the stronger models meet that condition. [1]

The same pattern shows up in the number of skill calls. According to an appendix figure, subagent execution led to more skill calls per task on every model. gpt-5.4-mini called a skill only about 0.7 times per task with agent-skill execution, versus about 2.5 times with subagent execution (read from the figure). The paper's interpretation is that as the context grows, the model no longer goes through enough reasoning steps, so it calls skills less often. [1] If you share the common complaint that the model does not use the skills you have installed, this figure offers one explanation.

In one place, the text and the figure disagree. The text says that "for the stronger models, such as GPT 5.3 Codex and Kimi K2.6, subagents lower peak context length on over 80% of tasks," but the value printed in the figure for Kimi-K2.6 is 79.7%. The difference is at the level of rounding, but when citing, the printed value is the safer choice.

7. Run everything as subagents and accuracy collapses

The appendix has one result that bears on practice more directly than anything in the main text. It tests, on a single model (Qwen3.5-9B), whether organizing a large skill library into a hierarchy helps. Skills are grouped into a tree or a graph with routing nodes: selecting a higher-level node reveals the list of nodes under it. Execution was then split three ways: every node run as an agent skill; every node run as a subagent; and a hybrid in which routing nodes stay agent skills and only leaf skills run as subagents. [1]

Library structureFully agent skillFully subagentHybrid
Flat (no hierarchy)0.220.460.46
Tree · height 20.450.030.42
Tree · height 30.280.060.32
Graph · height 20.490.040.61
Graph · height 30.430.060.45
Two-level task tree0.510.070.64

Approximate values read from the appendix figure (±0.02). Qwen3.5-9B only. The flat structure has no routing nodes, so "fully subagent" and "hybrid" are the same setting there.

Once there is a hierarchy, the setting that also ran the routing nodes as subagents fell to 0.03–0.07 accuracy. That loses almost all of the flat structure's 0.46. The hybrid mode, by contrast, was best in every structure, and on the two-level task tree it reached 0.64, above the flat structure's 0.46. The paper explains this with the same logic as its main hypothesis: routing nodes only make a selection and carry neither a procedure nor an input-output contract, so they should run in the main context, and only leaf skills, which have contracts, are worth isolating. [1]

This experiment used only one model, and the paper itself leaves "a systematic study of deeper hierarchies and tree-vs-graph structure to future work." The direction is still clear. If you generalize Section 4's finding that subagents did better into "run every skill as a subagent," accuracy can collapse.

8. Claude Code offers the same choice

In Claude Code, frontmatter options (the settings block at the top of the file) let you choose between the paper's two execution modes. This is based on the official documentation as checked on 2026-09-11. [3] [4]

Concept in the paperClaude Code settingWhat the docs say
Run as an agent skillDefaultWhen the skill is selected, the SKILL.md body enters the context of the current conversation
Run the skill as a subagentSkill frontmatter context: fork"The skill content becomes the prompt that drives the subagent. It won’t have access to your conversation history." However, according to the subagents docs, CLAUDE.md and git status are loaded by default, and only the Explore and Plan agents skip them
Choosing the subagent's policySkill frontmatter agent:Explore · Plan · general-purpose, or a custom agent in .claude/agents/
Injecting skill knowledge into a subagentAgent frontmatter skills:"The full content of each listed skill is injected into the subagent’s context at startup."

A warning in the docs says the same thing as the paper's conclusion: "context: fork only makes sense for skills with explicit instructions. If your skill contains guidelines like 'use these API conventions' without a task, the subagent receives the guidelines but no actionable prompt, and returns without meaningful output." [3] That is exactly the situation the paper saw with the curated set. The docs describe behavior, though, while the paper measured accuracy, so the two point the same way on different kinds of evidence.

The subagents docs also describe the cost. They say a regular subagent, one not using context: fork, "starts fresh and may need time to gather context," and advise using the main conversation when latency matters. [4] Anthropic's post on using subagents says the same: "Each one spins up its own context, consumes tokens, and adds a layer of indirection between the developer and the work." [7] This points the same way as the increase in total tokens the paper measured.

A recent debate among developers sits at exactly this point. On September 8, 2026, a skill that forces concise answers got more than 500 points on Hacker News, and commenters repeatedly reported that the skill's effect wears off after a few turns. [8] These are community anecdotes, not measurements. The complaint that a norm-type skill gets diluted in the main context connects to the context buildup the paper identifies as the problem, but the paper did not measure how conversational norm skills lose their effect. And if the paper's results hold, norm-type skills like this are not the kind of problem you solve by moving them into a subagent. An output-format norm has to apply to the main agent's own responses, so it cannot be isolated.

9. Checklist to apply today

  • Split your skills into two kinds: procedural skills, for which you can write down "what it takes and what it produces," and norm-type skills that hold conventions, terminology and cautions. The paper's results apply only to the first kind.
  • Write inputs and outputs into each procedural skill's description. Follow the paper's appendix format with Expected input and Output items, and describe the output so the main agent can use it as-is in its next step, for example "a file at this path" or "a result with these fields." The description is the part that is always in context, so watch its length too. [5]
  • Try switching one procedural skill to context: fork. The subagent cannot see the conversation history, so first check that the skill body can run to completion from its inputs alone. If the body refers back to the conversation, as in "as discussed above," it cannot be forked.
  • Measure three things together: task success, total tokens per task, and the peak context length of the main conversation. Based on the paper, expect total tokens to rise to 1.3–1.7×, and check whether that cost is recovered in success rate or in how long the main conversation lasts.
  • Do not fork skills whose job is to choose other skills. Keep router-style skills that guide the agent through a list of skills, and skills that decide which procedure to use, in the main context. This is where the Section 7 result applies.
  • The stronger the model, the lower your expectations. In the paper, the top model had the same accuracy in both modes. In that case the purpose of forking is preserving the main context, not accuracy, and the cost is only worth paying in long sessions that need it.
  • With only a few skills, there is no rush. In the 0-distractor column in Section 5, gpt-5.4-mini scored the same in both modes. The gap appeared as the number of exposed skills and tools grew.

10. What this is not yet

  • This is a preprint that has not been peer-reviewed. It is the first version, posted to arXiv on September 7, 2026, in the NeurIPS 2026 template. Whether it has been accepted could not be confirmed.
  • The accuracy figures are our readings from the figures. The paper provides no accuracy tables. The only printed numbers are the seven peak-context ratios in Section 6. Read the other values as carrying a reading error of about ±0.02; any interpretation of a 0.02–0.04 difference falls within that error.
  • The experiments cover 64 of the 87 tasks. Only tasks for which synthesized skills could be built remained, and the criterion was whether GPT-5.3 Codex had a successful run among its three attempts. Harder tasks may have been left out.
  • The synthesized skills were built from successful runs of the same tasks. Skills that people write in advance in real projects do not come from the correct solution to the task at hand. Whether ordinary skills with contracts deliver the same gain is not something this paper measured.
  • The harness is a modified OpenHands. The authors replaced the system prompt with one telling the agent to "always use tools," implemented subagents as MCP tools, and raised the tool timeout to 2 hours. Whether Claude Code's context: fork produces the same gap has to be measured separately. The mapping table in Section 8 only shows how the concepts correspond; it does not mean the paper's measurements can be carried over to Claude Code as they are.
  • That Section 4's baseline is "all skills exposed" is our inference. We drew it from the match between the 263 column in Section 5's table and the values in Section 4's table, and from the appendix naming the flat library as the baseline. The paper does not state it in words.
  • The paper itself limits the peak-context comparison to the strong models. The low shares on small models may reflect agent-skill runs ending early, rather than subagents failing to reduce context.
  • The hierarchical-library experiment used one model, Qwen3.5-9B. Whether the "fully subagent" collapse is as large on other models has not been verified.
  • There are small inconsistencies between the text and the figures: "over 80%" in the text against a printed 79.7%, and the statement that agent skills "match or outperform subagents across all models" against a figure that reads slightly the other way on the small models. Neither is large enough to change the conclusions.
  • Latency was not measured. The paper covers only tokens and context length. The time cost of calling subagents in sequence appears only as a caution in the Claude Code docs.

11. Sources

All checked on 2026-09-11. For [1], we downloaded the arXiv LaTeX source and checked the body, appendix and figure files directly. Product documentation is the vendor's description of behavior, not an independent experiment. [8] is a community discussion and a secondary source.

SourceWhat we checkedScope of the evidence
[1] Piriyakulkij, Lawrence, Curth, Karmalkar, Prasad · Subagents vs Agent Skills: Executing Reusable Knowledge for Long-Horizon Agentic TasksDefinitions of the two execution modes, the 64-task × 7-model comparison, the distractor-skill experiment, peak context and total tokens, the hierarchical-library appendix, the OpenHands modifications, the procedure for authoring the synthesized skillsPreprint published 2026-09-07. Cornell · Microsoft Research Cambridge. Not yet peer-reviewed
[2] Li et al. · SkillsBench: Benchmarking How Well Agent Skills Work Across Diverse Tasks87 tasks across 8 domains, curated skills and deterministic verifiers, average across 18 combinations 33.9%→50.5%Benchmark paper. v4, 2026-06-14
[3] Claude Code docs · SkillsThe context: fork and agent: frontmatter, forked skills not seeing the conversation history, the warning about guideline-only skillsVendor documentation. Describes behavior
[4] Claude Code docs · SubagentsIsolated context window, only a summary returned, full skill content injected via the skills: frontmatter, the latency cautionVendor documentation. Describes behavior
[5] Anthropic · Agent Skills overviewThree-stage loading, about 100 tokens of metadata per skill, recommended body length under 5,000 tokensVendor documentation
[6] Schnabel et al. · Lost in Transmission: When and Why LLMs Fail to Reason GloballyLimits on how much information a model can carry across a long input. Cited by [1] as the basis for the peak-context hypothesisPublished 2025-05, NeurIPS 2025. We checked only that [1] cites it
[7] Anthropic · How and when to use subagents in Claude CodeSubagents' uses for isolation and parallelism, the warning about token and indirection costsVendor blog. 2026-04-07
[8] Hacker News · I-have-ADHD: A skill to stop coding agents from burying the answerUser reports that a norm-type skill loses its effect after a few turnsSecondary source. Community discussion, 2026-09-08. Not a measurement

Editorial standard: every value the paper does not give in a table is marked each time as an approximate reading from a figure, and where the text and a figure disagree, we gave priority to the printed value. Where the product docs and the paper point the same way, we still noted that the evidence is of a different kind.

Newsletter

The week’s new reports, every Sunday

One email a week with that week’s reports, skipped when nothing new came out. Nothing but report news.

Used only to announce new reports. Unsubscribe any time. Privacy Policy
Publisher

Eazler AI Lab is the AI engineering journal of Eazler Inc. We read primary sources in full, and say so when something is unverified.

Editorial standards and method →

We also post report summaries on Threads: @eazler.inc.

Building or adopting AI agents? hello@eazler.com